From be7eb6e932cd738d2ebaede935317fe1c71070fc Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Sat, 4 Oct 2014 12:40:35 +0200 Subject: [PATCH] - sort dialog shows the right selected item --- .../android/ui/activity/FileDisplayActivity.java | 14 ++++++++----- .../android/ui/adapter/FileListListAdapter.java | 24 +++++++++++++--------- .../android/ui/fragment/OCFileListFragment.java | 14 ++++++------- 3 files changed, 30 insertions(+), 22 deletions(-) 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); + } } -- 2.11.0