mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor: Move storageLocationText
to PreferenceCommon.kt
This commit is contained in:
parent
f6c2dd9573
commit
b2b93d6d50
3 changed files with 30 additions and 22 deletions
|
@ -0,0 +1,28 @@
|
|||
package dev.yokai.presentation.component.preference
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
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.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.preference.collectAsState
|
||||
|
||||
@Composable
|
||||
fun storageLocationText(
|
||||
storageDirPref: eu.kanade.tachiyomi.core.preference.Preference<String>,
|
||||
): String {
|
||||
val context = LocalContext.current
|
||||
val storageDir by storageDirPref.collectAsState()
|
||||
|
||||
if (storageDir == storageDirPref.defaultValue()) {
|
||||
return stringResource(R.string.no_location_set)
|
||||
}
|
||||
|
||||
return remember(storageDir) {
|
||||
val file = UniFile.fromUri(context, storageDir.toUri())
|
||||
file?.filePath
|
||||
} ?: stringResource(R.string.invalid_location, storageDir)
|
||||
}
|
|
@ -25,7 +25,7 @@ import androidx.compose.ui.platform.LocalUriHandler
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import com.hippo.unifile.UniFile
|
||||
import dev.yokai.domain.storage.StoragePreferences
|
||||
import dev.yokai.presentation.settings.storageLocationText
|
||||
import dev.yokai.presentation.component.preference.storageLocationText
|
||||
import dev.yokai.presentation.theme.Size
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.preference.Preference
|
||||
|
|
|
@ -16,20 +16,17 @@ import androidx.compose.material3.SegmentedButton
|
|||
import androidx.compose.material3.SegmentedButtonDefaults
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.core.net.toUri
|
||||
import com.google.common.collect.ImmutableList
|
||||
import com.hippo.unifile.UniFile
|
||||
import dev.yokai.domain.storage.StoragePreferences
|
||||
import dev.yokai.presentation.component.preference.Preference
|
||||
import dev.yokai.presentation.component.preference.storageLocationText
|
||||
import dev.yokai.presentation.component.preference.widget.BasePreferenceWidget
|
||||
import dev.yokai.presentation.component.preference.widget.PrefsHorizontalPadding
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.preference.collectAsState
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.system.tryTakePersistableUriPermission
|
||||
|
@ -127,20 +124,3 @@ object SettingsDataScreen : ComposableSettings {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun storageLocationText(
|
||||
storageDirPref: eu.kanade.tachiyomi.core.preference.Preference<String>,
|
||||
): String {
|
||||
val context = LocalContext.current
|
||||
val storageDir by storageDirPref.collectAsState()
|
||||
|
||||
if (storageDir == storageDirPref.defaultValue()) {
|
||||
return stringResource(R.string.no_location_set)
|
||||
}
|
||||
|
||||
return remember(storageDir) {
|
||||
val file = UniFile.fromUri(context, storageDir.toUri())
|
||||
file?.filePath
|
||||
} ?: stringResource(R.string.invalid_location, storageDir)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue