- persist settings for sort order
authortobiasKaminsky <tobias@kaminsky.me>
Sat, 4 Oct 2014 10:23:16 +0000 (12:23 +0200)
committertobiasKaminsky <tobias@kaminsky.me>
Sat, 4 Oct 2014 10:23:16 +0000 (12:23 +0200)
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

index 4878c66..378fe05 100644 (file)
@@ -24,6 +24,8 @@ import java.util.Vector;
 \r
 import android.accounts.Account;\r
 import android.content.Context;\r
 \r
 import android.accounts.Account;\r
 import android.content.Context;\r
+import android.content.SharedPreferences;\r
+import android.preference.PreferenceManager;\r
 import android.view.LayoutInflater;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
 import android.view.LayoutInflater;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
@@ -64,9 +66,9 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     private FileDataStorageManager mStorageManager;
     private Account mAccount;
     private ComponentsGetter mTransferServiceGetter;\r
     private FileDataStorageManager mStorageManager;
     private Account mAccount;
     private ComponentsGetter mTransferServiceGetter;\r
-    public enum sortOrders { NAME, DATE, SIZE }\r
-    private sortOrders sort = sortOrders.NAME;\r
-    private boolean sortAscending = true;\r
+    private String sortOrder;\r
+    private Boolean sortAscending;\r
+    private SharedPreferences appPreferences;\r
     \r
     public FileListListAdapter(\r
             boolean justFolders, \r
     \r
     public FileListListAdapter(\r
             boolean justFolders, \r
@@ -77,6 +79,15 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
         mTransferServiceGetter = transferServiceGetter;\r
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
         mTransferServiceGetter = transferServiceGetter;\r
+        \r
+        appPreferences = PreferenceManager\r
+                .getDefaultSharedPreferences(mContext);\r
+        \r
+        // Read sorting order, default to sort by name ascending\r
+        sortOrder = appPreferences\r
+                .getString("sortOrder", "name");\r
+        sortAscending = appPreferences.getBoolean("sortAscending", true);\r
+        \r
     }
 \r
     @Override\r
     }
 \r
     @Override\r
@@ -306,18 +317,12 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
      * Sorts all filenames, regarding last user decision \r
      */\r
     private void sortDirectory(){\r
      * Sorts all filenames, regarding last user decision \r
      */\r
     private void sortDirectory(){\r
-        switch (sort){\r
-        case NAME:\r
-            sortByName(sortAscending);\r
-            break;\r
-\r
-        case SIZE:\r
+        if (sortOrder.equals("name")){\r
+           sortByName(sortAscending);\r
+        } else if (sortOrder.equals("size")){\r
             sortBySize(sortAscending);\r
             sortBySize(sortAscending);\r
-            break;\r
-\r
-        case DATE:\r
+        } else if (sortOrder.equals("date")){\r
             sortByDate(sortAscending);\r
             sortByDate(sortAscending);\r
-            break;\r
         }\r
 \r
         notifyDataSetChanged();\r
         }\r
 \r
         notifyDataSetChanged();\r
@@ -441,10 +446,15 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         });\r
     }\r
 \r
         });\r
     }\r
 \r
-    public void setSortOrder(sortOrders order, boolean descending) {\r
-        sort = order;\r
-        sortAscending = descending;\r
-\r
+    public void setSortOrder(String order, boolean ascending) {\r
+        SharedPreferences.Editor editor = appPreferences.edit();\r
+        editor.putString("sortOrder", order);\r
+        editor.putBoolean("sortAscending", ascending);\r
+        editor.commit();\r
+        \r
+        sortOrder = order;\r
+        sortAscending = ascending;\r
+        \r
         sortDirectory();\r
     }    \r
 }\r
         sortDirectory();\r
     }    \r
 }\r
index 72d9fb4..1db98c0 100644 (file)
@@ -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.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;
 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){
     }
     
     public void sortByDate(boolean descending){
-        mAdapter.setSortOrder(sortOrders.DATE, descending);
+        mAdapter.setSortOrder("date", descending);
     }
 
     public void sortBySize(boolean descending){
     }
 
     public void sortBySize(boolean descending){
-        mAdapter.setSortOrder(sortOrders.SIZE, descending);
+        mAdapter.setSortOrder("size", descending);
     }
 
     public void sortByName(boolean descending){
     }
 
     public void sortByName(boolean descending){
-        mAdapter.setSortOrder(sortOrders.NAME, descending);
+        mAdapter.setSortOrder("name", descending);
     } 
 }
     } 
 }