From: tobiasKaminsky Date: Sat, 4 Oct 2014 10:23:16 +0000 (+0200) Subject: - persist settings for sort order X-Git-Tag: oc-android-1.7.0_signed~134^2~5^2~1 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/703187ea0987aff8eb02cbc33251fa5b23d4a358?ds=inline;hp=--cc - persist settings for sort order --- 703187ea0987aff8eb02cbc33251fa5b23d4a358 diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 4878c66d..378fe05d 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -24,6 +24,8 @@ import java.util.Vector; import android.accounts.Account; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -64,9 +66,9 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { private FileDataStorageManager mStorageManager; private Account mAccount; private ComponentsGetter mTransferServiceGetter; - public enum sortOrders { NAME, DATE, SIZE } - private sortOrders sort = sortOrders.NAME; - private boolean sortAscending = true; + private String sortOrder; + private Boolean sortAscending; + private SharedPreferences appPreferences; public FileListListAdapter( boolean justFolders, @@ -77,6 +79,15 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { mContext = context; mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext); mTransferServiceGetter = transferServiceGetter; + + appPreferences = PreferenceManager + .getDefaultSharedPreferences(mContext); + + // Read sorting order, default to sort by name ascending + sortOrder = appPreferences + .getString("sortOrder", "name"); + sortAscending = appPreferences.getBoolean("sortAscending", true); + } @Override @@ -306,18 +317,12 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { * Sorts all filenames, regarding last user decision */ private void sortDirectory(){ - switch (sort){ - case NAME: - sortByName(sortAscending); - break; - - case SIZE: + if (sortOrder.equals("name")){ + sortByName(sortAscending); + } else if (sortOrder.equals("size")){ sortBySize(sortAscending); - break; - - case DATE: + } else if (sortOrder.equals("date")){ sortByDate(sortAscending); - break; } notifyDataSetChanged(); @@ -441,10 +446,15 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { }); } - public void setSortOrder(sortOrders order, boolean descending) { - sort = order; - sortAscending = descending; - + public void setSortOrder(String order, boolean ascending) { + SharedPreferences.Editor editor = appPreferences.edit(); + editor.putString("sortOrder", order); + editor.putBoolean("sortAscending", ascending); + editor.commit(); + + sortOrder = order; + sortAscending = ascending; + sortDirectory(); } } diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 72d9fb4c..1db98c0e 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -37,7 +37,6 @@ import com.owncloud.android.files.FileMenuFilter; import com.owncloud.android.ui.activity.FileDisplayActivity; import com.owncloud.android.ui.activity.MoveActivity; import com.owncloud.android.ui.adapter.FileListListAdapter; -import com.owncloud.android.ui.adapter.FileListListAdapter.sortOrders; import com.owncloud.android.ui.dialog.ConfirmationDialogFragment; import com.owncloud.android.ui.dialog.RemoveFileDialogFragment; import com.owncloud.android.ui.dialog.RenameFileDialogFragment; @@ -388,14 +387,14 @@ public class OCFileListFragment extends ExtendedListFragment { } public void sortByDate(boolean descending){ - mAdapter.setSortOrder(sortOrders.DATE, descending); + mAdapter.setSortOrder("date", descending); } public void sortBySize(boolean descending){ - mAdapter.setSortOrder(sortOrders.SIZE, descending); + mAdapter.setSortOrder("size", descending); } public void sortByName(boolean descending){ - mAdapter.setSortOrder(sortOrders.NAME, descending); + mAdapter.setSortOrder("name", descending); } }