Skip to content

Commit

Permalink
Merge pull request #14498 from nextcloud/bugfix/e2ee-delete-file
Browse files Browse the repository at this point in the history
BugFix - E2EE Delete File
  • Loading branch information
tobiasKaminsky authored Feb 10, 2025
2 parents 98ee020 + e279256 commit 174b8fc
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ import android.view.ActionMode
import androidx.appcompat.app.AlertDialog
import com.google.android.material.button.MaterialButton
import com.nextcloud.client.di.Injectable
import com.nextcloud.utils.extensions.getTypedActivity
import com.owncloud.android.R
import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.ui.activity.ComponentsGetter
import com.owncloud.android.ui.activity.FileActivity
import com.owncloud.android.ui.activity.FileDisplayActivity
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener
import com.owncloud.android.ui.preview.PreviewImageActivity
import javax.inject.Inject

/**
Expand Down Expand Up @@ -90,38 +92,36 @@ class RemoveFilesDialogFragment : ConfirmationDialogFragment(), ConfirmationDial
fileDataStorageManager.deleteOfflineOperation(it)
}

if (requireActivity() is FileDisplayActivity) {
val activity = requireActivity() as FileDisplayActivity
activity.connectivityService.isNetworkAndServerAvailable { result ->
if (result) {
if (files.isNotEmpty()) {
val cg = activity as ComponentsGetter?
cg?.fileOperationsHelper?.removeFiles(files, onlyLocalCopy, false)
}
val fileActivity = getTypedActivity(FileActivity::class.java)
val fda = getTypedActivity(FileDisplayActivity::class.java)

if (offlineFiles.isNotEmpty()) {
activity.refreshCurrentDirectory()
}
} else {
files.forEach { file ->
fileDataStorageManager.addRemoveFileOfflineOperation(
file.decryptedRemotePath,
file.fileName,
file.parentId
)
}
fileActivity?.connectivityService?.isNetworkAndServerAvailable { result ->
if (result) {
if (files.isNotEmpty()) {
getTypedActivity(PreviewImageActivity::class.java)?.showDirectoryWhenDeletionCompleted()
fileActivity.fileOperationsHelper?.removeFiles(files, onlyLocalCopy, false)
}

activity.refreshCurrentDirectory()
if (offlineFiles.isNotEmpty()) {
fda?.refreshCurrentDirectory()
}
} else {
files.forEach { file ->
fileDataStorageManager.addRemoveFileOfflineOperation(
file.decryptedRemotePath,
file.fileName,
file.parentId
)
}

finishActionMode()
fda?.refreshCurrentDirectory()
}

finishActionMode()
}
}

override fun onNeutral(callerTag: String?) {
// nothing to do here
}
override fun onNeutral(callerTag: String?) = Unit

private fun setActionMode(actionMode: ActionMode?) {
this.actionMode = actionMode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
lateinit var localBroadcastManager: LocalBroadcastManager

private var actionBar: ActionBar? = null
private var showDirectoryWhenDeletionCompleted = false

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -123,6 +124,10 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
observeWorkerState()
}

fun showDirectoryWhenDeletionCompleted() {
showDirectoryWhenDeletionCompleted = true
}

fun toggleActionBarVisibility(hide: Boolean) {
if (actionBar == null) {
return
Expand Down Expand Up @@ -279,6 +284,10 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR

viewPager?.setCurrentItem(nextPosition, true)
previewImagePagerAdapter?.delete(deletePosition)

if (showDirectoryWhenDeletionCompleted) {
backToDisplayActivity()
}
} else if (operation is SynchronizeFileOperation) {
onSynchronizeFileOperationFinish(result)
}
Expand Down

0 comments on commit 174b8fc

Please sign in to comment.