Skip to content

Commit 8a58791

Browse files
authored
Merge pull request #4270 from parneet-guraya/block-ui-when-remove
[FEATURE REQUEST] Block UI when deleting files
2 parents c4c2ac6 + b5338f0 commit 8a58791

3 files changed

Lines changed: 31 additions & 7 deletions

File tree

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -947,10 +947,11 @@ class FileDisplayActivity : FileActivity(),
947947
) {
948948
when (uiResult) {
949949
is UIResult.Loading -> {
950-
// Not blocking the UI
950+
showLoadingDialog(R.string.wait_a_moment)
951951
}
952952

953953
is UIResult.Success -> {
954+
dismissLoadingDialog()
954955
val listOfFilesRemoved = uiResult.data ?: return
955956
val lastRemovedFile = listOfFilesRemoved.last()
956957
val singleRemoval = listOfFilesRemoved.size == 1
@@ -974,6 +975,7 @@ class FileDisplayActivity : FileActivity(),
974975
}
975976

976977
is UIResult.Error -> {
978+
dismissLoadingDialog()
977979
showErrorInSnackbar(R.string.remove_fail_msg, uiResult.getThrowableOrNull())
978980

979981
if (uiResult.getThrowableOrNull() is SSLRecoverablePeerUnverifiedException) {

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ import com.owncloud.android.domain.files.model.OCFile
4343
import com.owncloud.android.domain.files.model.OCFile.Companion.ROOT_PARENT_ID
4444
import com.owncloud.android.domain.files.usecases.SortFilesUseCase
4545
import com.owncloud.android.domain.utils.Event
46+
import com.owncloud.android.extensions.showErrorInSnackbar
4647
import com.owncloud.android.presentation.authentication.AccountUtils
48+
import com.owncloud.android.presentation.common.UIResult
4749
import com.owncloud.android.presentation.files.SortOrder
4850
import com.owncloud.android.presentation.files.SortType
4951
import com.owncloud.android.presentation.files.operations.FileOperation
@@ -124,9 +126,18 @@ class PreviewImageActivity : FileActivity(),
124126
}
125127

126128
private fun startObservingFileOperations() {
127-
fileOperationsViewModel.removeFileLiveData.observe(this, Event.EventObserver {
128-
if (it.isSuccess) {
129-
finish()
129+
fileOperationsViewModel.removeFileLiveData.observe(this, Event.EventObserver { uiResult ->
130+
when (uiResult) {
131+
is UIResult.Error -> {
132+
dismissLoadingDialog()
133+
showErrorInSnackbar(R.string.remove_fail_msg, uiResult.getThrowableOrNull())
134+
}
135+
136+
is UIResult.Loading -> showLoadingDialog(R.string.wait_a_moment)
137+
is UIResult.Success -> {
138+
dismissLoadingDialog()
139+
finish()
140+
}
130141
}
131142
})
132143
}

owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ import com.owncloud.android.domain.files.model.OCFile
6161
import com.owncloud.android.domain.utils.Event
6262
import com.owncloud.android.extensions.filterMenuOptions
6363
import com.owncloud.android.extensions.sendDownloadedFilesByShareSheet
64+
import com.owncloud.android.extensions.showErrorInSnackbar
6465
import com.owncloud.android.presentation.authentication.AccountUtils
66+
import com.owncloud.android.presentation.common.UIResult
6567
import com.owncloud.android.presentation.files.operations.FileOperation.SetFilesAsAvailableOffline
6668
import com.owncloud.android.presentation.files.operations.FileOperation.UnsetFilesAsAvailableOffline
6769
import com.owncloud.android.presentation.files.operations.FileOperationsViewModel
@@ -180,9 +182,18 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay
180182
}
181183

182184
private fun startObservingFileOperations() {
183-
fileOperationsViewModel.removeFileLiveData.observe(this, Event.EventObserver {
184-
if (it.isSuccess) {
185-
finish()
185+
fileOperationsViewModel.removeFileLiveData.observe(this, Event.EventObserver { uiResult ->
186+
when (uiResult) {
187+
is UIResult.Error -> {
188+
dismissLoadingDialog()
189+
showErrorInSnackbar(R.string.remove_fail_msg, uiResult.getThrowableOrNull())
190+
}
191+
192+
is UIResult.Loading -> showLoadingDialog(R.string.wait_a_moment)
193+
is UIResult.Success -> {
194+
dismissLoadingDialog()
195+
finish()
196+
}
186197
}
187198
})
188199
}

0 commit comments

Comments
 (0)