mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-18 16:25:27 +02:00
Themmo update
This commit is contained in:
parent
bd5cce157d
commit
80e858e1ed
@ -43,8 +43,6 @@ import com.sadellie.unitto.core.ui.theme.DarkThemeColors
|
||||
import com.sadellie.unitto.core.ui.theme.LightThemeColors
|
||||
import com.sadellie.unitto.core.ui.theme.TypographySystem
|
||||
import com.sadellie.unitto.data.model.userprefs.AppPreferences
|
||||
import io.github.sadellie.themmo.MonetMode
|
||||
import io.github.sadellie.themmo.ThemingMode
|
||||
import io.github.sadellie.themmo.Themmo
|
||||
import io.github.sadellie.themmo.ThemmoController
|
||||
import kotlinx.coroutines.launch
|
||||
@ -74,11 +72,11 @@ internal fun UnittoApp(prefs: AppPreferences?) {
|
||||
ThemmoController(
|
||||
lightColorScheme = LightThemeColors,
|
||||
darkColorScheme = DarkThemeColors,
|
||||
themingMode = prefs.themingMode.toThemingMode(),
|
||||
themingMode = prefs.themingMode,
|
||||
dynamicThemeEnabled = prefs.enableDynamicTheme,
|
||||
amoledThemeEnabled = prefs.enableAmoledTheme,
|
||||
customColor = prefs.customColor.toColor(),
|
||||
monetMode = prefs.monetMode.toMonetMode()
|
||||
monetMode = prefs.monetMode
|
||||
)
|
||||
}
|
||||
|
||||
@ -132,18 +130,6 @@ internal fun UnittoApp(prefs: AppPreferences?) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun String.toThemingMode(): ThemingMode = try {
|
||||
ThemingMode.valueOf(this)
|
||||
} catch (e: Exception) {
|
||||
ThemingMode.AUTO
|
||||
}
|
||||
|
||||
private fun String.toMonetMode(): MonetMode = try {
|
||||
MonetMode.valueOf(this)
|
||||
} catch (e: Exception) {
|
||||
MonetMode.TonalSpot
|
||||
}
|
||||
|
||||
private fun Long.toColor(): Color = try {
|
||||
Color(this.toULong())
|
||||
} catch (e: Exception) {
|
||||
|
@ -28,6 +28,7 @@ android.namespace = "com.sadellie.unitto.data.backup"
|
||||
dependencies {
|
||||
implementation(libs.androidx.datastore.datastore.preferences)
|
||||
implementation(libs.com.squareup.moshi.moshi.kotlin)
|
||||
implementation(libs.com.github.sadellie.themmo.core)
|
||||
ksp(libs.com.squareup.moshi.moshi.kotlin.codegen)
|
||||
|
||||
implementation(project(":data:database"))
|
||||
|
@ -121,11 +121,11 @@ class BackupManager @Inject constructor(
|
||||
val timeZoneTableData = timeZoneDao.getFavorites().first()
|
||||
|
||||
return UserData(
|
||||
themingMode = data.getThemingMode(),
|
||||
themingMode = data.getThemingMode().name,
|
||||
enableDynamicTheme = data.getEnableDynamicTheme(),
|
||||
enableAmoledTheme = data.getEnableAmoledTheme(),
|
||||
customColor = data.getCustomColor(),
|
||||
monetMode = data.getMonetMode(),
|
||||
monetMode = data.getMonetMode().name,
|
||||
startingScreen = data.getStartingScreen(),
|
||||
enableToolsExperiment = data.getEnableToolsExperiment(),
|
||||
systemFont = data.getSystemFont(),
|
||||
|
@ -24,6 +24,8 @@ plugins {
|
||||
android.namespace = "com.sadellie.unitto.data.model"
|
||||
|
||||
dependencies {
|
||||
implementation(libs.com.github.sadellie.themmo.core)
|
||||
|
||||
implementation(project(":core:base"))
|
||||
implementation(project(":data:common"))
|
||||
}
|
@ -32,6 +32,8 @@ import com.sadellie.unitto.data.model.userprefs.FormattingPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.GeneralPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface UserPreferencesRepository {
|
||||
@ -55,7 +57,7 @@ interface UserPreferencesRepository {
|
||||
|
||||
suspend fun updateLatestPairOfUnits(unitFrom: AbstractUnit, unitTo: AbstractUnit)
|
||||
|
||||
suspend fun updateThemingMode(themingMode: String)
|
||||
suspend fun updateThemingMode(themingMode: ThemingMode)
|
||||
|
||||
suspend fun updateDynamicTheme(enabled: Boolean)
|
||||
|
||||
@ -63,7 +65,7 @@ interface UserPreferencesRepository {
|
||||
|
||||
suspend fun updateCustomColor(color: Long)
|
||||
|
||||
suspend fun updateMonetMode(monetMode: String)
|
||||
suspend fun updateMonetMode(monetMode: MonetMode)
|
||||
|
||||
suspend fun updateStartingScreen(startingScreen: String)
|
||||
|
||||
|
@ -18,12 +18,15 @@
|
||||
|
||||
package com.sadellie.unitto.data.model.userprefs
|
||||
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
|
||||
interface AppPreferences {
|
||||
val themingMode: String
|
||||
val themingMode: ThemingMode
|
||||
val enableDynamicTheme: Boolean
|
||||
val enableAmoledTheme: Boolean
|
||||
val customColor: Long
|
||||
val monetMode: String
|
||||
val monetMode: MonetMode
|
||||
val startingScreen: String
|
||||
val enableToolsExperiment: Boolean
|
||||
val systemFont: Boolean
|
||||
|
@ -26,7 +26,7 @@ android.namespace = "com.sadellie.unitto.data.userprefs"
|
||||
|
||||
dependencies {
|
||||
implementation(libs.androidx.datastore.datastore.preferences)
|
||||
implementation(libs.com.github.sadellie.themmo)
|
||||
implementation(libs.com.github.sadellie.themmo.core)
|
||||
|
||||
implementation(project(":core:base"))
|
||||
implementation(project(":data:model"))
|
||||
|
@ -26,13 +26,17 @@ import com.sadellie.unitto.data.converter.MyUnitIDS
|
||||
import com.sadellie.unitto.data.model.ALL_UNIT_GROUPS
|
||||
import com.sadellie.unitto.data.model.UnitGroup
|
||||
import com.sadellie.unitto.data.model.UnitsListSorting
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
|
||||
fun Preferences.getEnableDynamicTheme(): Boolean {
|
||||
return this[PrefsKeys.ENABLE_DYNAMIC_THEME] ?: true
|
||||
}
|
||||
|
||||
fun Preferences.getThemingMode(): String {
|
||||
return this[PrefsKeys.THEMING_MODE] ?: ""
|
||||
fun Preferences.getThemingMode(): ThemingMode {
|
||||
return this[PrefsKeys.THEMING_MODE]
|
||||
?.letTryOrNull { ThemingMode.valueOf(it) }
|
||||
?: ThemingMode.AUTO
|
||||
}
|
||||
|
||||
fun Preferences.getEnableAmoledTheme(): Boolean {
|
||||
@ -43,8 +47,10 @@ fun Preferences.getCustomColor(): Long {
|
||||
return this[PrefsKeys.CUSTOM_COLOR] ?: 16L // From Color.Unspecified
|
||||
}
|
||||
|
||||
fun Preferences.getMonetMode(): String {
|
||||
return this[PrefsKeys.MONET_MODE] ?: ""
|
||||
fun Preferences.getMonetMode(): MonetMode {
|
||||
return this[PrefsKeys.MONET_MODE]
|
||||
?.letTryOrNull { MonetMode.valueOf(it) }
|
||||
?: MonetMode.TonalSpot
|
||||
}
|
||||
|
||||
fun Preferences.getStartingScreen(): String {
|
||||
|
@ -32,13 +32,15 @@ import com.sadellie.unitto.data.model.userprefs.FormattingPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.GeneralPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
|
||||
data class AppPreferencesImpl(
|
||||
override val themingMode: String,
|
||||
override val themingMode: ThemingMode,
|
||||
override val enableDynamicTheme: Boolean,
|
||||
override val enableAmoledTheme: Boolean,
|
||||
override val customColor: Long,
|
||||
override val monetMode: String,
|
||||
override val monetMode: MonetMode,
|
||||
override val startingScreen: String,
|
||||
override val enableToolsExperiment: Boolean,
|
||||
override val systemFont: Boolean,
|
||||
|
@ -37,6 +37,8 @@ import com.sadellie.unitto.data.model.userprefs.FormattingPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.GeneralPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.catch
|
||||
import kotlinx.coroutines.flow.map
|
||||
@ -185,9 +187,9 @@ class UserPreferencesRepositoryImpl @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun updateThemingMode(themingMode: String) {
|
||||
override suspend fun updateThemingMode(themingMode: ThemingMode) {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[PrefsKeys.THEMING_MODE] = themingMode
|
||||
preferences[PrefsKeys.THEMING_MODE] = themingMode.name
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,9 +211,9 @@ class UserPreferencesRepositoryImpl @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun updateMonetMode(monetMode: String) {
|
||||
override suspend fun updateMonetMode(monetMode: MonetMode) {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[PrefsKeys.MONET_MODE] = monetMode
|
||||
preferences[PrefsKeys.MONET_MODE] = monetMode.name
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,10 +55,10 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.github.sadellie.themmo.MonetMode
|
||||
import io.github.sadellie.themmo.ThemingMode
|
||||
import io.github.sadellie.themmo.Themmo
|
||||
import io.github.sadellie.themmo.ThemmoController
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
|
||||
@Composable
|
||||
internal fun MonetModeSelector(
|
||||
|
@ -67,10 +67,10 @@ import com.sadellie.unitto.core.ui.common.key.UnittoIcons
|
||||
import com.sadellie.unitto.core.ui.common.key.unittoicons.Clear
|
||||
import com.sadellie.unitto.feature.settings.components.ColorSelector
|
||||
import com.sadellie.unitto.feature.settings.components.MonetModeSelector
|
||||
import io.github.sadellie.themmo.MonetMode
|
||||
import io.github.sadellie.themmo.ThemingMode
|
||||
import io.github.sadellie.themmo.Themmo
|
||||
import io.github.sadellie.themmo.ThemmoController
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
|
||||
@Composable
|
||||
internal fun DisplayRoute(
|
||||
|
@ -24,8 +24,8 @@ import androidx.lifecycle.viewModelScope
|
||||
import com.sadellie.unitto.data.common.stateIn
|
||||
import com.sadellie.unitto.data.model.repository.UserPreferencesRepository
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.github.sadellie.themmo.MonetMode
|
||||
import io.github.sadellie.themmo.ThemingMode
|
||||
import io.github.sadellie.themmo.core.MonetMode
|
||||
import io.github.sadellie.themmo.core.ThemingMode
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -39,7 +39,7 @@ class DisplayViewModel @Inject constructor(
|
||||
|
||||
fun updateThemingMode(themingMode: ThemingMode) {
|
||||
viewModelScope.launch {
|
||||
userPrefsRepository.updateThemingMode(themingMode.name)
|
||||
userPrefsRepository.updateThemingMode(themingMode)
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ class DisplayViewModel @Inject constructor(
|
||||
|
||||
fun updateMonetMode(monetMode: MonetMode) {
|
||||
viewModelScope.launch {
|
||||
userPrefsRepository.updateMonetMode(monetMode.name)
|
||||
userPrefsRepository.updateMonetMode(monetMode)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ androidxUiAutomator = "2.2.0"
|
||||
androidxWindowWindow = "1.2.0"
|
||||
androidxWorkWorkRuntimeKtx = "2.9.0"
|
||||
comAndroidToolsDesugarJdkLibs = "2.0.4"
|
||||
comGithubSadellieThemmo = "1.2.0"
|
||||
comGithubSadellieThemmo = "1.3.0"
|
||||
comGoogleAccompanistAccompanistSystemuicontroller = "0.30.1"
|
||||
comGoogleDagger = "2.48.1"
|
||||
comSquareupMoshiMoshiKotlin = "1.15.0"
|
||||
@ -69,7 +69,8 @@ androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiaut
|
||||
androidx-window-window = { group = "androidx.window", name = "window", version.ref = "androidxWindowWindow" }
|
||||
androidx-work-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWorkWorkRuntimeKtx" }
|
||||
com-android-tools-desugar-jdk-libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "comAndroidToolsDesugarJdkLibs" }
|
||||
com-github-sadellie-themmo = { group = "com.github.sadellie", name = "themmo", version.ref = "comGithubSadellieThemmo" }
|
||||
com-github-sadellie-themmo = { group = "com.github.sadellie.themmo", name = "themmo", version.ref = "comGithubSadellieThemmo" }
|
||||
com-github-sadellie-themmo-core = { group = "com.github.sadellie.themmo", name = "themmo-core", version.ref = "comGithubSadellieThemmo" }
|
||||
com-google-accompanist-accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version.ref = "comGoogleAccompanistAccompanistSystemuicontroller" }
|
||||
com-google-dagger-android-hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "comGoogleDagger" }
|
||||
com-google-dagger-dagger-android-processor = { group = "com.google.dagger", name = "dagger-android-processor", version.ref = "comGoogleDagger" }
|
||||
|
Loading…
x
Reference in New Issue
Block a user