ソースを参照

Merge pull request #11139 from nextcloud/doNotDeleteEncryptedFolder

Encrypted folder cannot be deleted, must first unset encryption
Álvaro Brey 2 年 前
コミット
c0788b11b0

+ 4 - 0
app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt

@@ -202,12 +202,14 @@ class FileMenuFilterIT : AbstractIT() {
                 // encrypted folder, with content
                 assertTrue(toHide.contains(R.id.action_unset_encrypted))
                 assertTrue(toHide.contains(R.id.action_encrypted))
+                assertTrue(toHide.contains(R.id.action_remove_file))
 
                 // encrypted, but empty folder
                 sut = filterFactory.newInstance(encryptedEmptyFolder, mockComponentsGetter, true, user)
                 toHide = sut.getToHide(false)
 
                 assertFalse(toHide.contains(R.id.action_unset_encrypted))
+                assertTrue(toHide.contains(R.id.action_remove_file))
                 assertTrue(toHide.contains(R.id.action_encrypted))
 
                 // regular folder, with content
@@ -216,6 +218,7 @@ class FileMenuFilterIT : AbstractIT() {
 
                 assertTrue(toHide.contains(R.id.action_unset_encrypted))
                 assertTrue(toHide.contains(R.id.action_encrypted))
+                assertFalse(toHide.contains(R.id.action_remove_file))
 
                 // regular folder, without content
                 sut = filterFactory.newInstance(normalEmptyFolder, mockComponentsGetter, true, user)
@@ -223,6 +226,7 @@ class FileMenuFilterIT : AbstractIT() {
 
                 assertTrue(toHide.contains(R.id.action_unset_encrypted))
                 assertFalse(toHide.contains(R.id.action_encrypted))
+                assertFalse(toHide.contains(R.id.action_remove_file))
             }
         }
     }

+ 2 - 1
app/src/main/java/com/owncloud/android/files/FileMenuFilter.java

@@ -340,7 +340,8 @@ public class FileMenuFilter {
     }
 
     private void filterRemove(List<Integer> toHide, boolean synchronizing) {
-        if (files.isEmpty() || synchronizing || containsLockedFile()) {
+        if (files.isEmpty() || synchronizing || containsLockedFile()
+            || containsEncryptedFolder() || containsEncryptedFile()) {
             toHide.add(R.id.action_remove_file);
         }
     }