Skip to content

Commit c2238cd

Browse files
Merge pull request #17045 from nextcloud/backport/17039/stable-33.1.x
[stable-33.1.x] fix(file-details): refresh from fda
2 parents 5fcb52e + 6fdebf3 commit c2238cd

1 file changed

Lines changed: 51 additions & 40 deletions

File tree

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 51 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -833,54 +833,65 @@ class FileDisplayActivity :
833833
downloadedRemotePath: String,
834834
success: Boolean
835835
) {
836-
val leftFragment = this.leftFragment
837-
if (leftFragment is FileDetailFragment) {
838-
val waitedPreview = mWaitingToPreview != null && mWaitingToPreview?.remotePath == downloadedRemotePath
839-
val fileInFragment = leftFragment.file
840-
if (fileInFragment != null && downloadedRemotePath != fileInFragment.remotePath) {
841-
// the user browsed to other file ; forget the automatic preview
842-
mWaitingToPreview = null
843-
} else if (downloadEvent == FileDownloadEventBroadcaster.ACTION_DOWNLOAD_ENQUEUED) {
844-
// grant that the details fragment updates the progress bar
836+
val leftFragment = this.leftFragment as? FileDetailFragment ?: return
837+
val fileInFragment = leftFragment.file
838+
839+
if (fileInFragment != null && downloadedRemotePath != fileInFragment.remotePath) {
840+
mWaitingToPreview = null
841+
return
842+
}
843+
844+
when (downloadEvent) {
845+
FileDownloadEventBroadcaster.ACTION_DOWNLOAD_ENQUEUED -> {
845846
leftFragment.listenForTransferProgress()
846847
leftFragment.updateFileDetails(true, false)
847-
} else if (downloadEvent == FileDownloadEventBroadcaster.ACTION_DOWNLOAD_COMPLETED) {
848-
// update the details panel
849-
var detailsFragmentChanged = false
850-
if (waitedPreview) {
851-
if (success) {
852-
// update the file from database, for the local storage path
853-
mWaitingToPreview = mWaitingToPreview?.fileId?.let { storageManager.getFileById(it) }
854-
855-
if (PreviewMediaActivity.Companion.canBePreviewed(mWaitingToPreview)) {
856-
mWaitingToPreview?.let {
857-
startMediaPreview(it, 0, true, true, true, true)
858-
detailsFragmentChanged = true
859-
}
860-
} else if (MimeTypeUtil.isVCard(mWaitingToPreview?.mimeType)) {
861-
startContactListFragment(mWaitingToPreview)
862-
detailsFragmentChanged = true
863-
} else if (PreviewTextFileFragment.canBePreviewed(mWaitingToPreview)) {
864-
startTextPreview(mWaitingToPreview, true)
865-
detailsFragmentChanged = true
866-
} else if (MimeTypeUtil.isPDF(mWaitingToPreview)) {
867-
mWaitingToPreview?.let {
868-
startPdfPreview(it)
869-
detailsFragmentChanged = true
870-
}
871-
} else {
872-
fileOperationsHelper.openFile(mWaitingToPreview)
873-
}
874-
}
875-
mWaitingToPreview = null
876-
}
877-
if (!detailsFragmentChanged) {
848+
}
849+
850+
FileDownloadEventBroadcaster.ACTION_DOWNLOAD_COMPLETED -> {
851+
val waitedPreview = mWaitingToPreview?.remotePath == downloadedRemotePath
852+
val previewStarted = waitedPreview && tryStartWaitingPreview(success)
853+
mWaitingToPreview = null
854+
if (!previewStarted) {
878855
leftFragment.updateFileDetails(false, success)
879856
}
880857
}
881858
}
882859
}
883860

861+
private fun tryStartWaitingPreview(success: Boolean): Boolean {
862+
if (!success) return false
863+
864+
mWaitingToPreview = mWaitingToPreview?.fileId?.let { storageManager.getFileById(it) }
865+
val file = mWaitingToPreview ?: return false
866+
867+
return when {
868+
PreviewMediaActivity.canBePreviewed(file) -> {
869+
startMediaPreview(file, 0, true, true, true, true)
870+
true
871+
}
872+
873+
MimeTypeUtil.isVCard(file.mimeType) -> {
874+
startContactListFragment(file)
875+
true
876+
}
877+
878+
PreviewTextFileFragment.canBePreviewed(file) -> {
879+
startTextPreview(file, true)
880+
true
881+
}
882+
883+
MimeTypeUtil.isPDF(file) -> {
884+
startPdfPreview(file)
885+
true
886+
}
887+
888+
else -> {
889+
fileOperationsHelper.openFile(file)
890+
false
891+
}
892+
}
893+
}
894+
884895
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
885896
if (mDrawerMenuItemstoShowHideList != null) {
886897
val drawerOpen = isDrawerOpen

0 commit comments

Comments
 (0)