small UI touchups

This commit is contained in:
Egor 2026-02-03 03:17:43 -08:00
parent 56ec5058d4
commit f8d5d2eb0d
3 changed files with 19 additions and 9 deletions

View file

@ -23,6 +23,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
@ -114,7 +115,7 @@ fun App(
FloatingActionButton( FloatingActionButton(
onClick = { mainViewModel.showAddAppDialog() } onClick = { mainViewModel.showAddAppDialog() }
) { ) {
Icon(Icons.Default.Add, contentDescription = "Add Manual App") Icon(Icons.Default.Add, contentDescription = stringResource(R.string.add_manual_app_content_description))
} }
} }
}, },

View file

@ -6,12 +6,14 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import app.lonecloud.prism.R
import app.lonecloud.prism.activities.DistribMigrationViewModel import app.lonecloud.prism.activities.DistribMigrationViewModel
import app.lonecloud.prism.activities.PreviewFactory import app.lonecloud.prism.activities.PreviewFactory
import app.lonecloud.prism.activities.SettingsViewModel import app.lonecloud.prism.activities.SettingsViewModel
@ -25,7 +27,6 @@ fun SettingsScreen(
themeViewModel: ThemeViewModel, themeViewModel: ThemeViewModel,
migrationViewModel: DistribMigrationViewModel migrationViewModel: DistribMigrationViewModel
) { ) {
val state = viewModel.state
val lifecycleOwner = LocalLifecycleOwner.current val lifecycleOwner = LocalLifecycleOwner.current
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) { lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
@ -45,14 +46,13 @@ fun SettingsScreen(
) )
PrismTogglePreference( PrismTogglePreference(
title = "Show Toasts", title = stringResource(R.string.app_dropdown_show_toasts),
description = "Display toast notifications for registration and unregistration events",
checked = viewModel.state.showToasts, checked = viewModel.state.showToasts,
onCheckedChange = { viewModel.toggleShowToasts() } onCheckedChange = { viewModel.toggleShowToasts() }
) )
PrismTogglePreference( PrismTogglePreference(
title = "Dynamic Colors", title = stringResource(R.string.dynamic_colors_title),
checked = themeViewModel.dynamicColors, checked = themeViewModel.dynamicColors,
onCheckedChange = { themeViewModel.toggleDynamicColors() } onCheckedChange = { themeViewModel.toggleDynamicColors() }
) )

View file

@ -20,13 +20,22 @@
<string name="testing_connection">Testing connection…</string> <string name="testing_connection">Testing connection…</string>
<string name="connection_successful">Connection successful!</string> <string name="connection_successful">Connection successful!</string>
<string name="connection_failed">Connection failed: %s</string> <string name="connection_failed">Connection failed: %s</string>
<string name="save_button">Save</string>
<string name="test_and_save_button">Test &amp; Save</string> <string name="test_and_save_button">Test &amp; Save</string>
<string name="target_app_label">Target App</string> <string name="target_app_label">Target App</string>
<string name="select_an_app">Select an app</string> <string name="select_an_app">Select an app</string>
<string name="app_dropdown_show_toasts">Show Toasts</string> <string name="app_dropdown_show_toasts">Notify about new registrations</string>
<string name="bar_unregister_title">Unregister</string> <string name="dynamic_colors_title">Dynamic Colors</string>
<string name="dialog_unregistering_content">Unregistering…</string> <string name="add_manual_app_content_description">Add Manual App</string>
<!-- UnifiedPush library strings (required for translations) -->
<plurals name="bar_unregister_title">
<item quantity="one">%d selected</item>
<item quantity="other">%d selected</item>
</plurals>
<plurals name="dialog_unregistering_content">
<item quantity="one">Are you sure to delete this registration?</item>
<item quantity="other">Are you sure to delete %d registrations?</item>
</plurals>
<string name="foreground_notif_ticker">Foreground Service</string> <string name="foreground_notif_ticker">Foreground Service</string>
<string name="warning_notif_ticker">Warning</string> <string name="warning_notif_ticker">Warning</string>
</resources> </resources>