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

Merge pull request #9421 from nextcloud/removeUnfavoritedFile

Remove unfavorited file from favorited search
Álvaro Brey 3 жил өмнө
parent
commit
532f06a9a5

+ 12 - 1
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -209,10 +209,15 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         return position;
     }
 
-    public void setFavoriteAttributeForItemID(String fileId, boolean favorite) {
+    public void setFavoriteAttributeForItemID(String fileId, boolean favorite, boolean removeFromList) {
         for (OCFile file : mFiles) {
             if (file.getRemoteId().equals(fileId)) {
                 file.setFavorite(favorite);
+
+                if (removeFromList) {
+                    mFiles.remove(file);
+                }
+                
                 break;
             }
         }
@@ -220,9 +225,15 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         for (OCFile file : mFilesAll) {
             if (file.getRemoteId().equals(fileId)) {
                 file.setFavorite(favorite);
+                
+                if (removeFromList) {
+                    mFiles.remove(file);
+                }
+                
                 break;
             }
         }
+        
 
         FileSortOrder sortOrder = preferences.getSortOrderByFolder(currentDirectory);
         mFiles = sortOrder.sortCloudFiles(mFiles);

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

@@ -1480,7 +1480,8 @@ public class OCFileListFragment extends ExtendedListFragment implements
             RemoteOperationResult remoteOperationResult = toggleFavoriteOperation.execute(client);
 
             if (remoteOperationResult.isSuccess()) {
-                mAdapter.setFavoriteAttributeForItemID(event.remoteId, event.shouldFavorite);
+                boolean removeFromList = currentSearchType == SearchType.FAVORITE_SEARCH && !event.shouldFavorite;
+                mAdapter.setFavoriteAttributeForItemID(event.remoteId, event.shouldFavorite, removeFromList);
             }
 
         } catch (ClientFactory.CreationException e) {