Эх сурвалжийг харах

Detached permission request from DiskUtil (#10051)

Being an extension on the DiskUtil couples to a class at a different abstraction
 layer without really needing to. Created PermissionRequestHelper as a place to
 put similar requests if needed in the future.
Caleb Morris 1 жил өмнө
parent
commit
3b7ed9bc6d

+ 0 - 18
app/src/main/java/eu/kanade/presentation/extensions/DiskUtil.kt

@@ -1,18 +0,0 @@
-package eu.kanade.presentation.extensions
-
-import android.Manifest
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
-import com.google.accompanist.permissions.rememberPermissionState
-import eu.kanade.tachiyomi.util.storage.DiskUtil
-
-/**
- * Launches request for [Manifest.permission.WRITE_EXTERNAL_STORAGE] permission
- */
-@Composable
-fun DiskUtil.RequestStoragePermission() {
-    val permissionState = rememberPermissionState(permission = Manifest.permission.WRITE_EXTERNAL_STORAGE)
-    LaunchedEffect(Unit) {
-        permissionState.launchPermissionRequest()
-    }
-}

+ 2 - 3
app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt

@@ -33,15 +33,14 @@ import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import androidx.core.net.toUri
 import com.hippo.unifile.UniFile
-import eu.kanade.presentation.extensions.RequestStoragePermission
 import eu.kanade.presentation.more.settings.Preference
+import eu.kanade.presentation.permissions.PermissionRequestHelper
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.backup.BackupConst
 import eu.kanade.tachiyomi.data.backup.BackupCreateJob
 import eu.kanade.tachiyomi.data.backup.BackupFileValidator
 import eu.kanade.tachiyomi.data.backup.BackupRestoreJob
 import eu.kanade.tachiyomi.data.backup.models.Backup
-import eu.kanade.tachiyomi.util.storage.DiskUtil
 import eu.kanade.tachiyomi.util.system.DeviceUtil
 import eu.kanade.tachiyomi.util.system.copyToClipboard
 import eu.kanade.tachiyomi.util.system.toast
@@ -66,7 +65,7 @@ object SettingsBackupScreen : SearchableSettings {
     override fun getPreferences(): List<Preference> {
         val backupPreferences = Injekt.get<BackupPreferences>()
 
-        DiskUtil.RequestStoragePermission()
+        PermissionRequestHelper.requestStoragePermission()
 
         return listOf(
             getCreateBackupPref(),

+ 20 - 0
app/src/main/java/eu/kanade/presentation/permissions/PermissionRequestHelper.kt

@@ -0,0 +1,20 @@
+package eu.kanade.presentation.permissions
+
+import android.Manifest
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import com.google.accompanist.permissions.rememberPermissionState
+
+/**
+ * Launches request for [Manifest.permission.WRITE_EXTERNAL_STORAGE] permission
+ */
+object PermissionRequestHelper {
+
+    @Composable
+    fun requestStoragePermission() {
+        val permissionState = rememberPermissionState(permission = Manifest.permission.WRITE_EXTERNAL_STORAGE)
+        LaunchedEffect(Unit) {
+            permissionState.launchPermissionRequest()
+        }
+    }
+}

+ 2 - 3
app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt

@@ -14,7 +14,7 @@ import cafe.adriel.voyager.navigator.Navigator
 import cafe.adriel.voyager.navigator.tab.LocalTabNavigator
 import cafe.adriel.voyager.navigator.tab.TabOptions
 import eu.kanade.presentation.components.TabbedScreen
-import eu.kanade.presentation.extensions.RequestStoragePermission
+import eu.kanade.presentation.permissions.PermissionRequestHelper
 import eu.kanade.presentation.util.Tab
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.ui.browse.extension.ExtensionsScreenModel
@@ -23,7 +23,6 @@ import eu.kanade.tachiyomi.ui.browse.migration.sources.migrateSourceTab
 import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen
 import eu.kanade.tachiyomi.ui.browse.source.sourcesTab
 import eu.kanade.tachiyomi.ui.main.MainActivity
-import eu.kanade.tachiyomi.util.storage.DiskUtil
 
 data class BrowseTab(
     private val toExtensions: Boolean = false,
@@ -66,7 +65,7 @@ data class BrowseTab(
         )
 
         // For local source
-        DiskUtil.RequestStoragePermission()
+        PermissionRequestHelper.requestStoragePermission()
 
         LaunchedEffect(Unit) {
             (context as? MainActivity)?.ready = true