@@ -20,6 +20,7 @@ import androidx.appcompat.content.res.AppCompatResources
2020import androidx.core.content.ContextCompat
2121import androidx.core.view.isEmpty
2222import androidx.core.view.isNotEmpty
23+ import androidx.lifecycle.lifecycleScope
2324import com.google.android.material.bottomsheet.BottomSheetDialog
2425import com.google.android.material.button.MaterialButton
2526import com.google.gson.Gson
@@ -30,6 +31,7 @@ import com.nextcloud.client.di.Injectable
3031import com.nextcloud.client.documentscan.AppScanOptionalFeature
3132import com.nextcloud.utils.BuildHelper.isFlavourGPlay
3233import com.nextcloud.utils.EditorUtils
34+ import com.nextcloud.utils.extensions.isNetworkAndServerAvailableSuspended
3335import com.nextcloud.utils.extensions.isTemplateAvailable
3436import com.nextcloud.utils.extensions.setVisibleIf
3537import com.owncloud.android.MainApp
@@ -44,6 +46,9 @@ import com.owncloud.android.utils.MimeTypeUtil
4446import com.owncloud.android.utils.PermissionUtil
4547import com.owncloud.android.utils.theme.ThemeUtils
4648import 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" )
4954class OCFileListBottomSheetDialog (
@@ -419,20 +424,20 @@ class OCFileListBottomSheetDialog(
419424 }
420425
421426 private fun filterActionsForOfflineOperations () {
422- fileActivity.connectivityService.isNetworkAndServerAvailable { result: Boolean? ->
423- if (file.isRootDirectory) {
424- return @isNetworkAndServerAvailable
427+ lifecycleScope.launch {
428+ val available = fileActivity.connectivityService.isNetworkAndServerAvailableSuspended()
429+ if (available && (! file.isOfflineOperation || file.isRootDirectory)) {
430+ return @launch
425431 }
432+ hideCreationOptions()
433+ }
434+ }
426435
427- if (! result!! || file.isOfflineOperation) {
428- binding.run {
429- menuCreateRichWorkspace.visibility = View .GONE
430- menuUploadFromApp.visibility = View .GONE
431- menuDirectCameraUpload.visibility = View .GONE
432- menuScanDocUpload.visibility = View .GONE
433- creatorsOverviewContainer.visibility = View .GONE
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
436441 }
437442 }
438443
0 commit comments