Skip to content

Commit 174b8fc

Browse files
Merge pull request #14498 from nextcloud/bugfix/e2ee-delete-file
BugFix - E2EE Delete File
2 parents 98ee020 + e279256 commit 174b8fc

File tree

2 files changed

+34
-25
lines changed

2 files changed

+34
-25
lines changed

app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ import android.view.ActionMode
1717
import androidx.appcompat.app.AlertDialog
1818
import com.google.android.material.button.MaterialButton
1919
import com.nextcloud.client.di.Injectable
20+
import com.nextcloud.utils.extensions.getTypedActivity
2021
import com.owncloud.android.R
2122
import com.owncloud.android.datamodel.FileDataStorageManager
2223
import com.owncloud.android.datamodel.OCFile
23-
import com.owncloud.android.ui.activity.ComponentsGetter
24+
import com.owncloud.android.ui.activity.FileActivity
2425
import com.owncloud.android.ui.activity.FileDisplayActivity
2526
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener
27+
import com.owncloud.android.ui.preview.PreviewImageActivity
2628
import javax.inject.Inject
2729

2830
/**
@@ -90,38 +92,36 @@ class RemoveFilesDialogFragment : ConfirmationDialogFragment(), ConfirmationDial
9092
fileDataStorageManager.deleteOfflineOperation(it)
9193
}
9294

93-
if (requireActivity() is FileDisplayActivity) {
94-
val activity = requireActivity() as FileDisplayActivity
95-
activity.connectivityService.isNetworkAndServerAvailable { result ->
96-
if (result) {
97-
if (files.isNotEmpty()) {
98-
val cg = activity as ComponentsGetter?
99-
cg?.fileOperationsHelper?.removeFiles(files, onlyLocalCopy, false)
100-
}
95+
val fileActivity = getTypedActivity(FileActivity::class.java)
96+
val fda = getTypedActivity(FileDisplayActivity::class.java)
10197

102-
if (offlineFiles.isNotEmpty()) {
103-
activity.refreshCurrentDirectory()
104-
}
105-
} else {
106-
files.forEach { file ->
107-
fileDataStorageManager.addRemoveFileOfflineOperation(
108-
file.decryptedRemotePath,
109-
file.fileName,
110-
file.parentId
111-
)
112-
}
98+
fileActivity?.connectivityService?.isNetworkAndServerAvailable { result ->
99+
if (result) {
100+
if (files.isNotEmpty()) {
101+
getTypedActivity(PreviewImageActivity::class.java)?.showDirectoryWhenDeletionCompleted()
102+
fileActivity.fileOperationsHelper?.removeFiles(files, onlyLocalCopy, false)
103+
}
113104

114-
activity.refreshCurrentDirectory()
105+
if (offlineFiles.isNotEmpty()) {
106+
fda?.refreshCurrentDirectory()
107+
}
108+
} else {
109+
files.forEach { file ->
110+
fileDataStorageManager.addRemoveFileOfflineOperation(
111+
file.decryptedRemotePath,
112+
file.fileName,
113+
file.parentId
114+
)
115115
}
116116

117-
finishActionMode()
117+
fda?.refreshCurrentDirectory()
118118
}
119+
120+
finishActionMode()
119121
}
120122
}
121123

122-
override fun onNeutral(callerTag: String?) {
123-
// nothing to do here
124-
}
124+
override fun onNeutral(callerTag: String?) = Unit
125125

126126
private fun setActionMode(actionMode: ActionMode?) {
127127
this.actionMode = actionMode

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
8383
lateinit var localBroadcastManager: LocalBroadcastManager
8484

8585
private var actionBar: ActionBar? = null
86+
private var showDirectoryWhenDeletionCompleted = false
8687

8788
override fun onCreate(savedInstanceState: Bundle?) {
8889
super.onCreate(savedInstanceState)
@@ -123,6 +124,10 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
123124
observeWorkerState()
124125
}
125126

127+
fun showDirectoryWhenDeletionCompleted() {
128+
showDirectoryWhenDeletionCompleted = true
129+
}
130+
126131
fun toggleActionBarVisibility(hide: Boolean) {
127132
if (actionBar == null) {
128133
return
@@ -279,6 +284,10 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
279284

280285
viewPager?.setCurrentItem(nextPosition, true)
281286
previewImagePagerAdapter?.delete(deletePosition)
287+
288+
if (showDirectoryWhenDeletionCompleted) {
289+
backToDisplayActivity()
290+
}
282291
} else if (operation is SynchronizeFileOperation) {
283292
onSynchronizeFileOperationFinish(result)
284293
}

0 commit comments

Comments
 (0)