forked from geode-sdk/android-launcher
implement autolaunch toggle
This commit is contained in:
2 files changed
+34
-5
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 = {
|
||||||
|
Column(
|
||||||
|
Modifier.fillMaxWidth(0.75f),
|
||||||
|
verticalArrangement = Arrangement.spacedBy(4.dp),
|
||||||
|
) {
|
||||||
Text(title)
|
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,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>
|
||||||
Reference in new issue
Block a user