diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt index 1d049bd71c45..6f9eb6e22a85 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt @@ -20,6 +20,7 @@ import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat import androidx.core.view.isEmpty import androidx.core.view.isNotEmpty +import androidx.lifecycle.lifecycleScope import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.button.MaterialButton import com.google.gson.Gson @@ -30,6 +31,7 @@ import com.nextcloud.client.di.Injectable import com.nextcloud.client.documentscan.AppScanOptionalFeature import com.nextcloud.utils.BuildHelper.isFlavourGPlay import com.nextcloud.utils.EditorUtils +import com.nextcloud.utils.extensions.isNetworkAndServerAvailableSuspended import com.nextcloud.utils.extensions.isTemplateAvailable import com.nextcloud.utils.extensions.setVisibleIf import com.owncloud.android.MainApp @@ -44,6 +46,9 @@ import com.owncloud.android.utils.MimeTypeUtil import com.owncloud.android.utils.PermissionUtil import com.owncloud.android.utils.theme.ThemeUtils import com.owncloud.android.utils.theme.ViewThemeUtils +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext @Suppress("LongParameterList") class OCFileListBottomSheetDialog( @@ -419,20 +424,20 @@ class OCFileListBottomSheetDialog( } private fun filterActionsForOfflineOperations() { - fileActivity.connectivityService.isNetworkAndServerAvailable { result: Boolean? -> - if (file.isRootDirectory) { - return@isNetworkAndServerAvailable + lifecycleScope.launch { + val available = fileActivity.connectivityService.isNetworkAndServerAvailableSuspended() + if (available && (!file.isOfflineOperation || file.isRootDirectory)) { + return@launch } + hideCreationOptions() + } + } - if (!result!! || file.isOfflineOperation) { - binding.run { - menuCreateRichWorkspace.visibility = View.GONE - menuUploadFromApp.visibility = View.GONE - menuDirectCameraUpload.visibility = View.GONE - menuScanDocUpload.visibility = View.GONE - creatorsOverviewContainer.visibility = View.GONE - } - } + private suspend fun hideCreationOptions() = withContext(Dispatchers.Main) { + binding.run { + menuCreateRichWorkspace.visibility = View.GONE + creatorsOverviewContainer.visibility = View.GONE + menuEncryptedMkdir.visibility = View.GONE } }