Эх сурвалжийг харах

finished folder-based sort order

- base getSortOrder on getFolderPreference
- base setSortOrder on setFolderPreference
- added folder parameter to all call-sites of getSortOrder and getSortOrder
Sven R. Kunze 7 жил өмнө
parent
commit
0105b19e79

+ 6 - 7
src/main/java/com/owncloud/android/db/PreferenceManager.java

@@ -195,24 +195,23 @@ public abstract class PreferenceManager {
     }
 
     /**
-     * Gets the sort order which the user has set last.
+     * Get preferred folder sort order.
      *
      * @param context Caller {@link Context}, used to access to shared preferences manager.
      * @return sort order     the sort order, default is {@link FileSortOrder#sort_a_to_z} (sort by name)
      */
-    public static FileSortOrder getSortOrder(Context context) {
-        String name = getDefaultSharedPreferences(context).getString(AUTO_PREF__SORT_ORDER_NAME, FileSortOrder.sort_a_to_z.mName);
-        return FileSortOrder.sortOrders.get(name);
+    public static FileSortOrder getSortOrder(Context context, OCFile folder) {
+        return FileSortOrder.sortOrders.get(getFolderPreference(context, AUTO_PREF__SORT_ORDER_NAME, folder, FileSortOrder.sort_a_to_z.mName));
     }
 
     /**
-     * Save the sort order which the user has set last.
+     * Set preferred folder sort order.
      *
      * @param context Caller {@link Context}, used to access to shared preferences manager.
      * @param sortOrder   the sort order
      */
-    public static void setSortOrder(Context context, FileSortOrder sortOrder) {
-        saveStringPreference(context, AUTO_PREF__SORT_ORDER_NAME, sortOrder.mName);
+    public static void setSortOrder(Context context, OCFile folder, FileSortOrder sortOrder) {
+        setFolderPreference(context, AUTO_PREF__SORT_ORDER_NAME, folder, sortOrder.mName);
     }
 
     /**

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -778,7 +778,7 @@ public class FileDisplayActivity extends HookActivity
                 ft.addToBackStack(null);
 
                 SortingOrderDialogFragment mSortingOrderDialogFragment = SortingOrderDialogFragment.newInstance(
-                        getSortOrder(this)
+                        getSortOrder(this, getListOfFilesFragment().getCurrentFile())
                 );
                 mSortingOrderDialogFragment.show(ft, SORT_ORDER_DIALOG_TAG);
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -823,7 +823,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
 
     private Vector<OCFile> sortFileList(Vector<OCFile> files) {
-        FileSortOrder sortOrder = PreferenceManager.getSortOrder(this);
+        FileSortOrder sortOrder = PreferenceManager.getSortOrder(this, null);
         return sortOrder.sortCloudFiles(files);
     }
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -241,7 +241,7 @@ public class UploadFilesActivity extends FileActivity implements
                 ft.addToBackStack(null);
 
                 SortingOrderDialogFragment mSortingOrderDialogFragment = SortingOrderDialogFragment.newInstance(
-                        getSortOrder(this)
+                        getSortOrder(this, null)
                 );
                 mSortingOrderDialogFragment.show(ft, SORT_ORDER_DIALOG_TAG);
 

+ 6 - 6
src/main/java/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -479,7 +479,7 @@ public class FileListListAdapter extends BaseAdapter {
             if (!PreferenceManager.showHiddenFilesEnabled(mContext)) {
                 mFiles = filterHiddenFiles(mFiles);
             }
-            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext);
+            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext, directory);
             mFiles = sortOrder.sortCloudFiles(mFiles);
             mFilesAll.clear();
             mFilesAll.addAll(mFiles);
@@ -503,7 +503,7 @@ public class FileListListAdapter extends BaseAdapter {
         }
     }
 
-    public void setData(ArrayList<Object> objects, ExtendedListFragment.SearchType searchType, FileDataStorageManager storageManager) {
+    public void setData(ArrayList<Object> objects, ExtendedListFragment.SearchType searchType, FileDataStorageManager storageManager, OCFile folder) {
         if (storageManager != null && mStorageManager == null) {
             mStorageManager = storageManager;
         }
@@ -522,7 +522,7 @@ public class FileListListAdapter extends BaseAdapter {
                 !searchType.equals(ExtendedListFragment.SearchType.PHOTOS_SEARCH_FILTER) &&
                 !searchType.equals(ExtendedListFragment.SearchType.RECENTLY_MODIFIED_SEARCH) &&
                 !searchType.equals(ExtendedListFragment.SearchType.RECENTLY_MODIFIED_SEARCH_FILTER)) {
-            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext);
+            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext, folder);
             mFiles = sortOrder.sortCloudFiles(mFiles);
         } else {
             mFiles = FileStorageUtils.sortOcFolderDescDateModified(mFiles);
@@ -641,8 +641,8 @@ public class FileListListAdapter extends BaseAdapter {
     }
 
 
-    public void setSortOrder(FileSortOrder sortOrder) {
-        PreferenceManager.setSortOrder(mContext, sortOrder);
+    public void setSortOrder(OCFile folder, FileSortOrder sortOrder) {
+        PreferenceManager.setSortOrder(mContext, folder, sortOrder);
         mFiles = sortOrder.sortCloudFiles(mFiles);
         notifyDataSetChanged();
     }
@@ -707,7 +707,7 @@ public class FileListListAdapter extends BaseAdapter {
                 if (!PreferenceManager.showHiddenFilesEnabled(mContext)) {
                     mFiles = filterHiddenFiles(mFiles);
                 }
-                FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext);
+                FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext, null);
                 mFiles = sortOrder.sortCloudFiles(mFiles);
             }
 

+ 2 - 2
src/main/java/com/owncloud/android/ui/adapter/LocalFileListAdapter.java

@@ -293,7 +293,7 @@ public class LocalFileListAdapter extends BaseAdapter implements FilterableListA
                 }
             });
 
-            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext);
+            FileSortOrder sortOrder = PreferenceManager.getSortOrder(mContext, null);
             mFiles = sortOrder.sortLocalFiles(mFiles);
 
             // Fetch preferences for showing hidden files
@@ -310,7 +310,7 @@ public class LocalFileListAdapter extends BaseAdapter implements FilterableListA
     }
 
     public void setSortOrder(FileSortOrder sortOrder) {
-        PreferenceManager.setSortOrder(mContext, sortOrder);
+        PreferenceManager.setSortOrder(mContext, null, sortOrder);
         mFiles = sortOrder.sortLocalFiles(mFiles);
         notifyDataSetChanged();
     }

+ 3 - 3
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -1193,7 +1193,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     }
 
     public void sortFiles(FileSortOrder sortOrder) {
-        mAdapter.setSortOrder(sortOrder);
+        mAdapter.setSortOrder(mFile, sortOrder);
     }
 
     /**
@@ -1392,7 +1392,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     public void onMessageEvent(final SearchEvent event) {
         searchFragment = true;
         setEmptyListLoadingMessage();
-        mAdapter.setData(new ArrayList<>(), SearchType.NO_SEARCH, mContainerActivity.getStorageManager());
+        mAdapter.setData(new ArrayList<>(), SearchType.NO_SEARCH, mContainerActivity.getStorageManager(), mFile);
 
         setFabEnabled(false);
 
@@ -1468,7 +1468,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
                         if (remoteOperationResult.getData() == null || remoteOperationResult.getData().size() == 0) {
                             setEmptyView(event);
                         } else {
-                            mAdapter.setData(remoteOperationResult.getData(), currentSearchType, storageManager);
+                            mAdapter.setData(remoteOperationResult.getData(), currentSearchType, storageManager, mFile);
                         }
 
                         final FileDisplayActivity fileDisplayActivity = (FileDisplayActivity) getActivity();