Skip to content

Commit 23ca7e8

Browse files
daniele-verduccibackportbot[bot]
authored andcommitted
Use suspend functions
Signed-off-by: daniele-verducci <daniele.verducci@nextcloud.com>
1 parent 2ff752c commit 23ca7e8

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import androidx.appcompat.content.res.AppCompatResources
2020
import androidx.core.content.ContextCompat
2121
import androidx.core.view.isEmpty
2222
import androidx.core.view.isNotEmpty
23+
import androidx.lifecycle.lifecycleScope
2324
import com.google.android.material.bottomsheet.BottomSheetDialog
2425
import com.google.android.material.button.MaterialButton
2526
import com.google.gson.Gson
@@ -30,6 +31,7 @@ import com.nextcloud.client.di.Injectable
3031
import com.nextcloud.client.documentscan.AppScanOptionalFeature
3132
import com.nextcloud.utils.BuildHelper.isFlavourGPlay
3233
import com.nextcloud.utils.EditorUtils
34+
import com.nextcloud.utils.extensions.isNetworkAndServerAvailableSuspended
3335
import com.nextcloud.utils.extensions.isTemplateAvailable
3436
import com.nextcloud.utils.extensions.setVisibleIf
3537
import com.owncloud.android.MainApp
@@ -44,6 +46,9 @@ import com.owncloud.android.utils.MimeTypeUtil
4446
import com.owncloud.android.utils.PermissionUtil
4547
import com.owncloud.android.utils.theme.ThemeUtils
4648
import com.owncloud.android.utils.theme.ViewThemeUtils
49+
import kotlinx.coroutines.Dispatchers
50+
import kotlinx.coroutines.launch
51+
import kotlinx.coroutines.withContext
4752

4853
@Suppress("LongParameterList")
4954
class OCFileListBottomSheetDialog(
@@ -419,16 +424,20 @@ class OCFileListBottomSheetDialog(
419424
}
420425

421426
private fun filterActionsForOfflineOperations() {
422-
fileActivity.connectivityService.isNetworkAndServerAvailable { available: Boolean? ->
423-
// root directory doesn't have a remote_id and thus always reports as offlineOperation
424-
val isOfflineOperation = file.isOfflineOperation && !file.isRootDirectory
425-
if (available != true || isOfflineOperation) {
426-
binding.run {
427-
menuCreateRichWorkspace.visibility = View.GONE
428-
creatorsOverviewContainer.visibility = View.GONE
429-
menuEncryptedMkdir.visibility = View.GONE
430-
}
427+
lifecycleScope.launch {
428+
val available = fileActivity.connectivityService.isNetworkAndServerAvailableSuspended()
429+
if (available && (!file.isOfflineOperation || file.isRootDirectory)) {
430+
return@launch
431431
}
432+
hideCreationOptions()
433+
}
434+
}
435+
436+
private suspend fun hideCreationOptions() = withContext(Dispatchers.Main) {
437+
binding.run {
438+
menuCreateRichWorkspace.visibility = View.GONE
439+
creatorsOverviewContainer.visibility = View.GONE
440+
menuEncryptedMkdir.visibility = View.GONE
432441
}
433442
}
434443

0 commit comments

Comments
 (0)