소스 검색

Fix recently modified sort

Mario Danic 8 년 전
부모
커밋
3579c02cee

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

@@ -501,15 +501,9 @@ 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)) {
-            Integer tempSortOrder = FileStorageUtils.mSortOrder;
-            Boolean tempSortAsc = FileStorageUtils.mSortAscending;
-            FileStorageUtils.mSortOrder = 1;
-            FileStorageUtils.mSortAscending = false;
             mFiles = FileStorageUtils.sortOcFolder(mFiles);
-            FileStorageUtils.mSortOrder = tempSortOrder;
-            FileStorageUtils.mSortAscending = tempSortAsc;
         } else {
-            mFiles = FileStorageUtils.sortOcFolder(mFiles);
+            mFiles = FileStorageUtils.sortOcFolderDescDateModified(mFiles);
         }
 
         mFilesAll = new Vector<>();

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

@@ -1220,6 +1220,23 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
             unsetAllMenuItems(true);
         }
 
+        if (event.getSearchType().equals(SearchOperation.SearchType.FILE_SEARCH)) {
+            currentSearchType = SearchType.FILE_SEARCH;
+
+        } else if (event.getSearchType().equals(SearchOperation.SearchType.CONTENT_TYPE_SEARCH)) {
+            if (event.getSearchQuery().equals("image/%")) {
+                currentSearchType = SearchType.PHOTO_SEARCH;
+            } else if (event.getSearchQuery().equals("video/%")) {
+                currentSearchType = SearchType.VIDEO_SEARCH;
+            }
+        } else if (event.getSearchType().equals(SearchOperation.SearchType.FAVORITE_SEARCH)) {
+            currentSearchType = SearchType.FAVORITE_SEARCH;
+        } else if (event.getSearchType().equals(SearchOperation.SearchType.RECENTLY_ADDED_SEARCH)) {
+            currentSearchType = SearchType.RECENTLY_ADDED_SEARCH;
+        } else if (event.getSearchType().equals(SearchOperation.SearchType.RECENTLY_MODIFIED_SEARCH)) {
+            currentSearchType = SearchType.RECENTLY_MODIFIED_SEARCH;
+        }
+
         Runnable switchViewsRunnable = new Runnable() {
             @Override
             public void run() {
@@ -1251,34 +1268,24 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
 
             if (event.getSearchType().equals(SearchOperation.SearchType.FILE_SEARCH)) {
                 setEmptyListMessage(SearchType.FILE_SEARCH);
-                currentSearchType = SearchType.FILE_SEARCH;
 
             } else if (event.getSearchType().equals(SearchOperation.SearchType.CONTENT_TYPE_SEARCH)) {
                 if (event.getSearchQuery().equals("image/%")) {
                     setEmptyListMessage(SearchType.PHOTO_SEARCH);
-                    currentSearchType = SearchType.PHOTO_SEARCH;
-
                     menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_GRID_AND_SORT;
                 } else if (event.getSearchQuery().equals("video/%")) {
                     setEmptyListMessage(SearchType.VIDEO_SEARCH);
-                    currentSearchType = SearchType.VIDEO_SEARCH;
-
                     menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_SEARCH;
                 }
             } else if (event.getSearchType().equals(SearchOperation.SearchType.FAVORITE_SEARCH)) {
                 setEmptyListMessage(SearchType.FAVORITE_SEARCH);
-                currentSearchType = SearchType.FAVORITE_SEARCH;
-
                 menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_SORT;
             } else if (event.getSearchType().equals(SearchOperation.SearchType.RECENTLY_ADDED_SEARCH)) {
                 setEmptyListMessage(SearchType.RECENTLY_ADDED_SEARCH);
-                currentSearchType = SearchType.RECENTLY_ADDED_SEARCH;
                 menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_SORT;
             } else if (event.getSearchType().equals(SearchOperation.SearchType.RECENTLY_MODIFIED_SEARCH)) {
                 setEmptyListMessage(SearchType.RECENTLY_MODIFIED_SEARCH);
-                currentSearchType = SearchType.RECENTLY_MODIFIED_SEARCH;
                 menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_SORT;
-
             }
 
             if (!currentSearchType.equals(SearchType.FILE_SEARCH) && getActivity() != null) {

+ 14 - 1
src/main/java/com/owncloud/android/utils/FileStorageUtils.java

@@ -250,7 +250,20 @@ public class FileStorageUtils {
         file.setFavorite(ocFile.getIsFavorite());
         return file;
     }
-    
+
+    public static Vector<OCFile> sortOcFolderDescDateModified(Vector<OCFile> files) {
+        final int multiplier = -1;
+        Collections.sort(files, new Comparator<OCFile>() {
+            @SuppressFBWarnings(value = "Bx", justification = "Would require stepping up API level")
+            public int compare(OCFile o1, OCFile o2) {
+                Long obj1 = o1.getModificationTimestamp();
+                return multiplier * obj1.compareTo(o2.getModificationTimestamp());
+            }
+        });
+
+        return sortOCFilesByFavourite(files);
+    }
+
     /**
      * Sorts all filenames, regarding last user decision 
      */