Skip to content

Commit 50b8438

Browse files
Merge pull request #17604 from nextcloud/internal-104930
Show only offline-available actions when offline in the "create new" menu
2 parents bbf71f8 + 5c294f5 commit 50b8438

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

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

Lines changed: 17 additions & 12 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,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

Comments
 (0)