Stupid implementation of SwitchPreference
This commit is contained in:
1 parent
802db256c1
commit
140fac4f3b
3 files changed
+35
-1
No files matched your search
@@ -73,7 +73,7 @@ object Settings : DefaultPreferences() {
|
||||
var showTagTranslations by boolPref(KEY_SHOW_TAG_TRANSLATIONS, false)
|
||||
val meteredNetworkWarning by boolPref("cellular_network_warning", false)
|
||||
var appLinkVerifyTip by boolPref("app_link_verify_tip", false)
|
||||
val enabledSecurity by boolPref("enable_secure", false)
|
||||
var enabledSecurity by boolPref("enable_secure", false)
|
||||
val mediaScan by boolPref(KEY_MEDIA_SCAN, false)
|
||||
var hasDefaultDownloadLabel by boolPref("has_default_download_label", false)
|
||||
var qSSaveProgress by boolPref("qs_save_progress", true)
|
||||
|
||||
@@ -13,8 +13,13 @@ import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
@@ -28,6 +33,7 @@ import com.hippo.ehviewer.ui.openBrowser
|
||||
import com.hippo.ehviewer.ui.settings.PreferenceTokens.PreferenceMinHeight
|
||||
import com.hippo.ehviewer.ui.settings.PreferenceTokens.PreferencePadding
|
||||
import com.hippo.ehviewer.ui.settings.PreferenceTokens.PreferenceTextPadding
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
@Composable
|
||||
fun PreferenceHeader(icon: Painter, @StringRes title: Int, childRouteName: String) {
|
||||
@@ -62,6 +68,28 @@ fun Preference(title: String, summary: String? = null, onClick: () -> Unit = {})
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SwitchPreference(title: String, summary: String?, value: KMutableProperty0<Boolean>) {
|
||||
var v by remember { mutableStateOf(value.get()) }
|
||||
fun mutate() = value.set((!value.get()).also { v = it })
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth().defaultMinSize(minHeight = PreferenceMinHeight).padding(PreferencePadding).clickable { mutate() },
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.weight(1F),
|
||||
verticalArrangement = Arrangement.Center,
|
||||
) {
|
||||
Text(text = title, style = MaterialTheme.typography.bodyLarge)
|
||||
summary?.let {
|
||||
Spacer(modifier = Modifier.size(PreferenceTextPadding))
|
||||
Text(text = summary, style = MaterialTheme.typography.bodyMedium)
|
||||
}
|
||||
}
|
||||
Switch(checked = v, onCheckedChange = null)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun UrlPreference(title: String, url: String) {
|
||||
val context = LocalContext.current
|
||||
|
||||
@@ -15,6 +15,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.hippo.ehviewer.R
|
||||
import com.hippo.ehviewer.Settings
|
||||
import com.hippo.ehviewer.ui.login.LocalNavController
|
||||
|
||||
@Composable
|
||||
@@ -35,6 +36,11 @@ fun SecurityScreen() {
|
||||
},
|
||||
) {
|
||||
Column(modifier = Modifier.padding(it).nestedScroll(scrollBehavior.nestedScrollConnection)) {
|
||||
SwitchPreference(
|
||||
title = stringResource(id = R.string.settings_privacy_secure),
|
||||
summary = stringResource(id = R.string.settings_privacy_secure_summary),
|
||||
value = Settings::enabledSecurity,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user