From 2e80af1c9c1c88095cb9be183e1bc55b27f64db5 Mon Sep 17 00:00:00 2001 From: Vladimir Zdravkovic Date: Fri, 5 Jul 2024 14:42:09 +0200 Subject: [PATCH 1/4] feat: added a settings screen to enable the user to change the default theme --- .../de/berlindroid/zeapp/ZeMainActivity.kt | 1 + .../zeapp/zeservices/ZePreferencesService.kt | 13 +++ .../zeapp/zeui/zehome/ZeDrawerContent.kt | 9 ++ .../berlindroid/zeapp/zeui/zehome/ZeScreen.kt | 25 +++++ .../zeapp/zeui/zesettings/ZeSettings.kt | 91 +++++++++++++++++++ .../berlindroid/zeapp/zeui/zetheme/ZeTheme.kt | 14 ++- .../zeapp/zevm/ZeBadgeViewModel.kt | 18 +++- .../src/main/res/drawable/ic_settings.xml | 5 + zeapp/android/src/main/res/values/strings.xml | 1 + 9 files changed, 172 insertions(+), 5 deletions(-) create mode 100644 zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt create mode 100644 zeapp/android/src/main/res/drawable/ic_settings.xml diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/ZeMainActivity.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/ZeMainActivity.kt index aa523647..0852a480 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/ZeMainActivity.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/ZeMainActivity.kt @@ -103,3 +103,4 @@ class ZeMainActivity : ComponentActivity() { const val ROUTE_HOME = "home" const val ROUTE_ABOUT = "about" const val ROUTE_OPENSOURCE = "opensource" +const val ROUTE_SETTINGS = "settings" diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt index f7129af2..d885e6a4 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt @@ -5,6 +5,7 @@ import androidx.datastore.core.DataStore import androidx.datastore.preferences.SharedPreferencesMigration import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore import dagger.hilt.android.qualifiers.ApplicationContext @@ -40,6 +41,7 @@ class ZePreferencesService @Inject constructor( val OPEN_API_PREFERENCES_KEY = stringPreferencesKey("openapi") const val TYPE_KEY = "type" const val IMAGE_KEY = "bitmap" + val THEME_KEY = intPreferencesKey("theme") } private val dataStore = context.dataStore @@ -116,6 +118,17 @@ class ZePreferencesService @Inject constructor( } } + suspend fun getThemeSettings(): Int { + return dataStore.data.map { preferences -> preferences[THEME_KEY] ?: 0 } + .first() + } + + suspend fun setThemeSettings(themeSettings: Int) { + dataStore.edit { preferences -> + preferences[THEME_KEY] = themeSettings + } + } + suspend fun getSlotConfiguration(slot: ZeSlot): ZeConfiguration? { return dataStore.data.mapNotNull { preferences -> diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeDrawerContent.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeDrawerContent.kt index 8f25d740..b713130e 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeDrawerContent.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeDrawerContent.kt @@ -39,6 +39,7 @@ internal fun ZeDrawerContent( onGotoReleaseClick: () -> Unit = {}, onGotoContributors: () -> Unit = {}, onGotoOpenSourceClick: () -> Unit = {}, + onGoToSettings: () -> Unit = {}, onUpdateConfig: () -> Unit = {}, onCloseDrawer: () -> Unit = {}, onTitleClick: () -> Unit = {}, @@ -131,6 +132,14 @@ internal fun ZeDrawerContent( ) } + item { + NavDrawerItem( + painter = painterResource(id = R.drawable.ic_settings), + text = stringResource(id = R.string.ze_navdrawer_settings), + onClick = onGoToSettings, + ) + } + item { HorizontalDivider( thickness = 0.dp, diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt index 046f00d2..4a49f30a 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt @@ -22,9 +22,11 @@ import androidx.navigation.compose.rememberNavController import de.berlindroid.zeapp.ROUTE_ABOUT import de.berlindroid.zeapp.ROUTE_HOME import de.berlindroid.zeapp.ROUTE_OPENSOURCE +import de.berlindroid.zeapp.ROUTE_SETTINGS import de.berlindroid.zeapp.zeui.ZeNavigationPad import de.berlindroid.zeapp.zeui.zeabout.ZeAbout import de.berlindroid.zeapp.zeui.zeopensource.ZeOpenSource +import de.berlindroid.zeapp.zeui.zesettings.ZeSettings import de.berlindroid.zeapp.zeui.zetheme.ZeBadgeAppTheme import de.berlindroid.zeapp.zevm.ZeBadgeViewModel import kotlinx.coroutines.CoroutineScope @@ -65,6 +67,7 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { val currentRoute = currentNavBackStackEntry?.destination?.route ?: ROUTE_HOME ZeBadgeAppTheme( + themeSettings = vm.uiState.value.themeSettings ?: 0, content = { ModalNavigationDrawer( drawerState = drawerState, @@ -92,6 +95,15 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { ) } }, + onGoToSettings = { + if(currentRoute == ROUTE_SETTINGS) { + navController.navigateUp() + } else { + navController.navigate( + ROUTE_SETTINGS, + ) + } + }, onUpdateConfig = vm::listConfiguration, onCloseDrawer = { scope.launch { @@ -147,6 +159,19 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { ) ZeOpenSource(paddingValues) } + composable(ROUTE_SETTINGS) { + DrawerBackHandler( + drawerState = drawerState, + scope = scope, + ) + ZeSettings( + paddingValues = paddingValues, + themeSettings = vm.uiState.value.themeSettings ?: 0, + onThemeChange = { + vm.setThemeSettings(it) + } + ) + } } } } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt new file mode 100644 index 00000000..4f8d8d18 --- /dev/null +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt @@ -0,0 +1,91 @@ +package de.berlindroid.zeapp.zeui.zesettings + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExposedDropdownMenuBox +import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +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.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ZeSettings( + paddingValues: PaddingValues, + themeSettings: Int, + onThemeChange: (Int) -> Unit, +) { + val themes = listOf("System", "Dark", "Light") + var expanded by remember { mutableStateOf(false) } + var selectedTheme by remember { mutableStateOf(themes[themeSettings]) } + + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(horizontal = 16.dp) + ) { + ExposedDropdownMenuBox( + expanded = expanded, + onExpandedChange = { expanded = it } + ) { + OutlinedTextField( + value = selectedTheme, + onValueChange = {}, + readOnly = true, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) }, + modifier = Modifier + .fillMaxWidth() + .menuAnchor(), + label = { Text("Theme") } + ) + + ExposedDropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false } + ) { + themes.forEach { theme -> + DropdownMenuItem( + text = { Text(text = theme) }, + onClick = { + selectedTheme = theme + expanded = false + onThemeChange(themes.indexOf(selectedTheme)) + } + ) + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = "Restart the app to see the changes", + modifier = Modifier.fillMaxWidth(), + color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.5f), + ) + } +} + +@Preview +@Composable +fun ZeSettingsPreview() { + ZeSettings( + paddingValues = PaddingValues(16.dp), + themeSettings = 0, + onThemeChange = {} + ) +} diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt index 68f39e3d..99b21e2c 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt @@ -2,6 +2,7 @@ package de.berlindroid.zeapp.zeui.zetheme import android.app.Activity import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme import androidx.compose.material3.lightColorScheme @@ -34,16 +35,23 @@ private val LightColorScheme = lightColorScheme( @Composable fun ZeBadgeAppTheme( - darkTheme: Boolean = isSystemInDarkTheme(), + themeSettings: Int, content: @Composable () -> Unit, ) { - val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme + val colorScheme: ColorScheme + if (themeSettings == 0) { + colorScheme = if (isSystemInDarkTheme()) DarkColorScheme else LightColorScheme + } else { + colorScheme = if (themeSettings == 1) DarkColorScheme else LightColorScheme + } + + val isDarkTheme = colorScheme == DarkColorScheme val view = LocalView.current if (!view.isInEditMode) { SideEffect { val window = (view.context as Activity).window - WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !isDarkTheme } } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zevm/ZeBadgeViewModel.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zevm/ZeBadgeViewModel.kt index be66805d..d958c4dc 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zevm/ZeBadgeViewModel.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zevm/ZeBadgeViewModel.kt @@ -213,7 +213,7 @@ class ZeBadgeViewModel @Inject constructor( slot, slots[slot]!!, ) - newCurrentSlotEditor?.let { currentSlotEditor -> + newCurrentSlotEditor.let { currentSlotEditor -> _uiState.update { it.copy(currentSlotEditor = currentSlotEditor) } @@ -504,6 +504,16 @@ class ZeBadgeViewModel @Inject constructor( showMessage("Copied") } + fun setThemeSettings(themeSettings: Int) { + _uiState.update { + it.copy(themeSettings = themeSettings) + } + + viewModelScope.launch(Dispatchers.IO) { + preferencesService.setThemeSettings(themeSettings) + } + } + /** * Loads data from Datastore */ @@ -513,8 +523,10 @@ class ZeBadgeViewModel @Inject constructor( initialConfiguration(it) } + val themeSettings = preferencesService.getThemeSettings() + _uiState.update { - it.copy(slots = slots) + it.copy(slots = slots, themeSettings = themeSettings) } } } @@ -527,6 +539,7 @@ class ZeBadgeViewModel @Inject constructor( currentTemplateChooser = null, slots = emptyMap(), currentBadgeConfig = null, + themeSettings = null, ) } @@ -537,6 +550,7 @@ data class ZeBadgeUiState( val currentTemplateChooser: ZeTemplateChooser?, // if that is not null, we are currently configuring which editor / template to use val slots: Map, val currentBadgeConfig: Map?, + val themeSettings: Int?, ) // ยน https://www.reddit.com/r/ProgrammerHumor/comments/27yykv/indent_hadouken/ diff --git a/zeapp/android/src/main/res/drawable/ic_settings.xml b/zeapp/android/src/main/res/drawable/ic_settings.xml new file mode 100644 index 00000000..6593f3a4 --- /dev/null +++ b/zeapp/android/src/main/res/drawable/ic_settings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zeapp/android/src/main/res/values/strings.xml b/zeapp/android/src/main/res/values/strings.xml index 9544f45a..900968f8 100644 --- a/zeapp/android/src/main/res/values/strings.xml +++ b/zeapp/android/src/main/res/values/strings.xml @@ -60,6 +60,7 @@ Open release page Contributors Open Source + Settings Select Content Not added by you yet, please feel free to contribute this editor From 74fef368926a5b2499518337ba05a1cbc998022e Mon Sep 17 00:00:00 2001 From: Vladimir Zdravkovic Date: Fri, 5 Jul 2024 14:52:53 +0200 Subject: [PATCH 2/4] feat: added a settings screen to enable the user to change the default theme --- .../main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt index 1c5ab5fd..b3f24c93 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt @@ -95,6 +95,7 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { onGotoContributors = { routeTo(ROUTE_ABOUT) }, onGotoOpenSourceClick = { routeTo(ROUTE_OPENSOURCE) }, onGotoZePass = { routeTo(ROUTE_ZEPASS) }, + onGoToSettings = { routeTo(ROUTE_SETTINGS) }, onUpdateConfig = vm::listConfiguration, onCloseDrawer = { scope.launch { @@ -137,9 +138,7 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { ) } composable(ROUTE_ZEPASS) { - ZeUserProfile( - - ) + ZeUserProfile(paddingValues) } composable(ROUTE_ZEPASS) { ZeUserProfile(paddingValues) From 663cbb5e3573f6f1e9038d73ded751c4ec8d3486 Mon Sep 17 00:00:00 2001 From: Vladimir Zdravkovic Date: Fri, 5 Jul 2024 15:13:50 +0200 Subject: [PATCH 3/4] chore: fixed some linting errors --- .../main/java/de/berlindroid/zeapp/zedi/ApiModule.kt | 10 +++------- .../de/berlindroid/zeapp/zeservices/ZePassApi.kt | 1 - .../zeapp/zeservices/ZePreferencesService.kt | 6 +++--- .../de/berlindroid/zeapp/zeservices/ZeUserApi.kt | 2 +- .../de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt | 12 ++++++++---- .../berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt | 2 +- .../berlindroid/zeapp/zeui/zesettings/ZeSettings.kt | 12 ++++++------ .../de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt | 4 ++-- 8 files changed, 24 insertions(+), 25 deletions(-) diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zedi/ApiModule.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zedi/ApiModule.kt index 6e685f1c..780a8ccb 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zedi/ApiModule.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zedi/ApiModule.kt @@ -1,6 +1,5 @@ package de.berlindroid.zeapp.zedi -import android.util.Log import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -12,11 +11,8 @@ import de.berlindroid.zeapp.zeservices.ZeUserService import kotlinx.serialization.json.Json import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient -import okhttp3.Response -import retrofit2.HttpException import retrofit2.Retrofit import retrofit2.converter.kotlinx.serialization.asConverterFactory -import timber.log.Timber data class ZeServerBaseUrl( val value: String, @@ -58,7 +54,8 @@ object ApiModule { service: ZeUserService, baseUrl: ZeServerBaseUrl, ): ZeUserApi = ZeUserApi( - service, baseUrl, + service, + baseUrl, ) @Provides @@ -76,7 +73,6 @@ object ApiModule { .addConverterFactory(json.asConverterFactory("application/json".toMediaType())) .build() .create( - ZeUserService:: - class.java, + ZeUserService::class.java, ) } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePassApi.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePassApi.kt index f802cb8c..18a76610 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePassApi.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePassApi.kt @@ -1,6 +1,5 @@ package de.berlindroid.zeapp.zeservices -import de.berlindroid.zeapp.zedi.ZeServerBaseUrl import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import retrofit2.http.Body diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt index d885e6a4..d8572e2f 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZePreferencesService.kt @@ -118,9 +118,9 @@ class ZePreferencesService @Inject constructor( } } - suspend fun getThemeSettings(): Int { - return dataStore.data.map { preferences -> preferences[THEME_KEY] ?: 0 } - .first() + suspend fun getThemeSettings(): Int { + return dataStore.data.map { preferences -> preferences[THEME_KEY] ?: 0 } + .first() } suspend fun setThemeSettings(themeSettings: Int) { diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZeUserApi.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZeUserApi.kt index 44e17c07..1183357f 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZeUserApi.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeservices/ZeUserApi.kt @@ -25,7 +25,7 @@ class ZeUserApi private val service: ZeUserService, private val baseUrl: ZeServerBaseUrl, ) { - fun getUserProfilePng(uuid: String): String = "${baseUrl.value}/user/${uuid}/png" + fun getUserProfilePng(uuid: String): String = "${baseUrl.value}/user/$uuid/png" suspend fun getOneUser(uuid: String): User? = service.getOneUser(uuid) } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt index b3f24c93..2caa747e 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeScreen.kt @@ -69,9 +69,13 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { val currentRoute = currentNavBackStackEntry?.destination?.route ?: ROUTE_HOME fun routeTo(target: String) { - if (currentRoute == target) navController.navigateUp() else navController.navigate( - target, - ) + if (currentRoute == target) { + navController.navigateUp() + } else { + navController.navigate( + target, + ) + } } BackHandler(drawerState.isOpen || currentRoute != ROUTE_HOME) { @@ -167,7 +171,7 @@ internal fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier) { themeSettings = vm.uiState.value.themeSettings ?: 0, onThemeChange = { vm.setThemeSettings(it) - } + }, ) } } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt index 4162c3a9..714dd922 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt @@ -80,7 +80,7 @@ fun ZeUserProfile( Text( style = MaterialTheme.typography.bodyMedium, text = message.text, - ) + ) } } } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt index 4f8d8d18..27ecde22 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zesettings/ZeSettings.kt @@ -38,11 +38,11 @@ fun ZeSettings( modifier = Modifier .fillMaxSize() .padding(paddingValues) - .padding(horizontal = 16.dp) + .padding(horizontal = 16.dp), ) { ExposedDropdownMenuBox( expanded = expanded, - onExpandedChange = { expanded = it } + onExpandedChange = { expanded = it }, ) { OutlinedTextField( value = selectedTheme, @@ -52,12 +52,12 @@ fun ZeSettings( modifier = Modifier .fillMaxWidth() .menuAnchor(), - label = { Text("Theme") } + label = { Text("Theme") }, ) ExposedDropdownMenu( expanded = expanded, - onDismissRequest = { expanded = false } + onDismissRequest = { expanded = false }, ) { themes.forEach { theme -> DropdownMenuItem( @@ -66,7 +66,7 @@ fun ZeSettings( selectedTheme = theme expanded = false onThemeChange(themes.indexOf(selectedTheme)) - } + }, ) } } @@ -86,6 +86,6 @@ fun ZeSettingsPreview() { ZeSettings( paddingValues = PaddingValues(16.dp), themeSettings = 0, - onThemeChange = {} + onThemeChange = {}, ) } diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt index 99b21e2c..e3625b9a 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zetheme/ZeTheme.kt @@ -40,9 +40,9 @@ fun ZeBadgeAppTheme( ) { val colorScheme: ColorScheme if (themeSettings == 0) { - colorScheme = if (isSystemInDarkTheme()) DarkColorScheme else LightColorScheme + colorScheme = if (isSystemInDarkTheme()) DarkColorScheme else LightColorScheme } else { - colorScheme = if (themeSettings == 1) DarkColorScheme else LightColorScheme + colorScheme = if (themeSettings == 1) DarkColorScheme else LightColorScheme } val isDarkTheme = colorScheme == DarkColorScheme From af8f2e15fe5a667f214ce481bacebc913404b550 Mon Sep 17 00:00:00 2001 From: Vladimir Zdravkovic Date: Fri, 5 Jul 2024 15:23:51 +0200 Subject: [PATCH 4/4] chore: fixed some linting errors --- .../main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt index 27759807..9ff68a95 100644 --- a/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt +++ b/zeapp/android/src/main/java/de/berlindroid/zeapp/zeui/zehome/ZeUserProfile.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp