Skip to content

Commit

Permalink
DigitalCampus#566: Added option to let the user choose the sorting of…
Browse files Browse the repository at this point in the history
… the list
  • Loading branch information
jjoseba committed Sep 6, 2016
1 parent 60623f9 commit d2d1a09
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 9 deletions.
Expand Up @@ -29,6 +29,8 @@
import org.digitalcampus.oppia.adapter.DownloadMediaListAdapter;
import org.digitalcampus.oppia.listener.DownloadMediaListener;
import org.digitalcampus.oppia.listener.ListInnerBtnOnClickListener;
import org.digitalcampus.oppia.model.Course;
import org.digitalcampus.oppia.model.CourseMetaPage;
import org.digitalcampus.oppia.model.Media;
import org.digitalcampus.oppia.service.DownloadBroadcastReceiver;
import org.digitalcampus.oppia.service.DownloadService;
Expand All @@ -45,6 +47,8 @@
import android.os.Environment;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
Expand Down Expand Up @@ -98,6 +102,7 @@ public void onResume(){
super.onResume();
if ((missingMedia != null) && missingMedia.size()>0) {
//We already have loaded media (coming from orientationchange)
dmla.sortByFilename();
dmla.notifyDataSetChanged();
}
receiver = new DownloadBroadcastReceiver();
Expand Down Expand Up @@ -127,7 +132,25 @@ protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putSerializable(TAG, missingMedia);
}


@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
getMenuInflater().inflate(R.menu.missing_media_sortby, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

int itemId = item.getItemId();
switch(itemId){
case R.id.menuSortCourseTitle: dmla.sortByCourse(); break;
case R.id.menuSortMediaTitle: dmla.sortByFilename(); break;
}
return true;
}

private void downloadViaPC(){
String filename = "oppia-media.html";
String strData = "<html>";
Expand Down
Expand Up @@ -18,6 +18,8 @@
package org.digitalcampus.oppia.adapter;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;

import org.digitalcampus.mobile.learning.R;
Expand Down Expand Up @@ -133,4 +135,31 @@ public void onClick(View v) {
public void setOnClickListener(ListInnerBtnOnClickListener onClickListener) {
this.onClickListener = onClickListener;
}

public void sortByCourse(){
//Sort the media list by filename
Collections.sort(this.mediaList, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
String titleCourse1 = ((Media) o1).getCourses().get(0).getTitle(prefs.getString(PrefsActivity.PREF_LANGUAGE, Locale.getDefault().getLanguage()));
String titleCourse2= ((Media) o2).getCourses().get(0).getTitle(prefs.getString(PrefsActivity.PREF_LANGUAGE, Locale.getDefault().getLanguage()));
return (titleCourse1.compareTo(titleCourse2));
}
});

notifyDataSetChanged();
}

public void sortByFilename(){
//Sort the media list by filename
Collections.sort(this.mediaList, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2){
return ((Media) o1).getFilename().compareTo(((Media) o2).getFilename());
}
});

notifyDataSetChanged();
}
}
Expand Up @@ -92,14 +92,6 @@ protected Payload doInBackground(Payload... params) {

}

//Sort the media list by filename
Collections.sort(payload.getResponseData(), new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2){
return ((Media) o1).getFilename().compareTo(((Media) o2).getFilename());
}
});

return payload;
}

Expand Down
Binary file added app/src/main/res/drawable-hdpi/ic_sort.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-mdpi/ic_sort.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-xhdpi/ic_sort.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions app/src/main/res/menu/missing_media_sortby.xml
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:oppiamobile="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/sort_by"
android:icon="@drawable/ic_sort"
oppiamobile:showAsAction="ifRoom"
android:title="@string/menu_sort_by">

<menu>
<item
android:id="@+id/menuSortCourseTitle"
android:title="@string/menu_sort_by_course" />
<item
android:id="@+id/menuSortMediaTitle"
android:title="@string/menu_sort_by_filename" />
</menu>
</item>
</menu>

0 comments on commit d2d1a09

Please sign in to comment.