implement autolaunch toggle

This commit is contained in:
qimiko committed 2022-11-05 11:32:44 -07:00
1 parent 59dce749b0
commit 97f31ebd8f
2 files changed
+35 -6

No files matched your search

@@ -12,7 +12,6 @@ import androidx.compose.foundation.layout.*
import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.selection.toggleable
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.List
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
@@ -91,6 +90,11 @@ fun SettingsScreen(onBackPressedDispatcher: OnBackPressedDispatcher?) {
title = context.getString(R.string.preference_load_testing_name), title = context.getString(R.string.preference_load_testing_name),
preferenceId = R.string.preference_load_testing preferenceId = R.string.preference_load_testing
) )
SettingsCard(
title = context.getString(R.string.preference_load_automatically_name),
description = context.getString(R.string.preference_load_automatically_description),
preferenceId = R.string.preference_load_automatically
)
} }
OptionsGroup("Data") { OptionsGroup("Data") {
OptionsButton(onClick = { onExportSaveData(context) }) { OptionsButton(onClick = { onExportSaveData(context) }) {
@@ -132,7 +136,7 @@ fun OptionsGroup(title: String, content: @Composable () -> Unit) {
Text( Text(
title, title,
style = Typography.titleMedium, style = Typography.titleMedium,
modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp) modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp),
) )
content() content()
} }
@@ -148,14 +152,26 @@ fun OptionsButton(onClick: () -> Unit, content: @Composable () -> Unit) {
} }
@Composable @Composable
fun SettingsCard(title: String, @StringRes preferenceId: Int) { fun SettingsCard(title: String, description: String? = null, @StringRes preferenceId: Int) {
val context = LocalContext.current val context = LocalContext.current
val settingEnabled = remember { val settingEnabled = remember {
mutableStateOf(getSetting(context, preferenceId)) } mutableStateOf(getSetting(context, preferenceId)) }
OptionsCard( OptionsCard(
title = { title = {
Text(title) Column(
Modifier.fillMaxWidth(0.75f),
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(title)
if (!description.isNullOrEmpty()) {
Text(
description,
style = Typography.labelMedium,
color = MaterialTheme.colorScheme.onSecondaryContainer
)
}
}
}, },
modifier = Modifier.toggleable( modifier = Modifier.toggleable(
value = settingEnabled.value, value = settingEnabled.value,
@@ -186,7 +202,17 @@ fun OptionsCard(modifier: Modifier = Modifier, title: @Composable () -> Unit, co
@Composable @Composable
fun OptionsCardPreview() { fun OptionsCardPreview() {
GeodeLauncherTheme { GeodeLauncherTheme {
SettingsCard("Load files from /test", R.string.preference_load_testing) OptionsGroup(title = "Preview Group") {
SettingsCard(
title = "Load files from /test",
description = "Very long testing description goes here. It is incredibly long, it should wrap onto a new line.",
preferenceId = R.string.preference_load_testing
)
SettingsCard(
title = "Testing option 2",
preferenceId = R.string.preference_load_testing
)
}
} }
} }
+4 -1
View File
@@ -4,8 +4,11 @@
<string name="failed_mod_core">Failed to load mod core.</string> <string name="failed_mod_core">Failed to load mod core.</string>
<string name="no_activity_found">No activity found for this action.</string> <string name="no_activity_found">No activity found for this action.</string>
<string name="preference_file_key">GeodeLauncherPreferencesFileKey</string> <string name="preference_file_key">GeodeLauncherPreferencesFileKey</string>
<string name="preference_category_testing">Testing</string> <string name="preference_category_testing">General</string>
<string name="preference_load_testing">PreferenceLoadTesting</string> <string name="preference_load_testing">PreferenceLoadTesting</string>
<string name="preference_load_testing_name">Load files from /test</string> <string name="preference_load_testing_name">Load files from /test</string>
<string name="preference_load_automatically">PreferenceLoadAutomatically</string>
<string name="preference_load_automatically_name">Automatically launch</string>
<string name="preference_load_automatically_description">Launches the game after a second-long delay.</string>
<string name="title_activity_settings">SettingsActivity</string> <string name="title_activity_settings">SettingsActivity</string>
</resources> </resources>