From: tobiasKaminsky Date: Sat, 4 Oct 2014 10:40:35 +0000 (+0200) Subject: - sort dialog shows the right selected item X-Git-Tag: oc-android-1.7.0_signed~134^2~5^2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/be7eb6e932cd738d2ebaede935317fe1c71070fc?ds=inline - sort dialog shows the right selected item --- diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 58da14b9..2d10ab94 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -154,8 +154,6 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { private OCFile mWaitingToSend; - private Integer sortItemChecked = 0; - @Override protected void onCreate(Bundle savedInstanceState) { Log_OC.d(TAG, "onCreate() start"); @@ -494,12 +492,18 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { break; } case R.id.action_sort: { + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + // Read sorting order, default to sort by name ascending + Integer sortOrder = appPreferences + .getInt("sortOrder", 0); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.actionbar_sort_title) - .setSingleChoiceItems(R.array.actionbar_sortby, sortItemChecked , new DialogInterface.OnClickListener() { + .setSingleChoiceItems(R.array.actionbar_sortby, sortOrder , new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { - sortItemChecked = which; - + switch (which){ case 0: sortByName(true); diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 378fe05d..a90773ef 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -66,7 +66,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { private FileDataStorageManager mStorageManager; private Account mAccount; private ComponentsGetter mTransferServiceGetter; - private String sortOrder; + private Integer sortOrder; private Boolean sortAscending; private SharedPreferences appPreferences; @@ -85,7 +85,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { // Read sorting order, default to sort by name ascending sortOrder = appPreferences - .getString("sortOrder", "name"); + .getInt("sortOrder", 0); sortAscending = appPreferences.getBoolean("sortAscending", true); } @@ -317,14 +317,18 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { * Sorts all filenames, regarding last user decision */ private void sortDirectory(){ - if (sortOrder.equals("name")){ - sortByName(sortAscending); - } else if (sortOrder.equals("size")){ - sortBySize(sortAscending); - } else if (sortOrder.equals("date")){ + switch (sortOrder){ + case 0: + sortByName(sortAscending); + break; + case 1: sortByDate(sortAscending); + break; + case 2: + sortBySize(sortAscending); + break; } - + notifyDataSetChanged(); } @@ -446,9 +450,9 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { }); } - public void setSortOrder(String order, boolean ascending) { + public void setSortOrder(Integer order, boolean ascending) { SharedPreferences.Editor editor = appPreferences.edit(); - editor.putString("sortOrder", order); + editor.putInt("sortOrder", order); editor.putBoolean("sortAscending", ascending); editor.commit(); diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 1db98c0e..7cac16e7 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -386,15 +386,15 @@ public class OCFileListFragment extends ExtendedListFragment { } } + public void sortByName(boolean descending){ + mAdapter.setSortOrder(0, descending); + } + public void sortByDate(boolean descending){ - mAdapter.setSortOrder("date", descending); + mAdapter.setSortOrder(1, descending); } public void sortBySize(boolean descending){ - mAdapter.setSortOrder("size", descending); - } - - public void sortByName(boolean descending){ - mAdapter.setSortOrder("name", descending); - } + mAdapter.setSortOrder(2, descending); + } }