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.LightThemeColors
|
||||||
import com.sadellie.unitto.core.ui.theme.TypographySystem
|
import com.sadellie.unitto.core.ui.theme.TypographySystem
|
||||||
import com.sadellie.unitto.data.model.userprefs.AppPreferences
|
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.Themmo
|
||||||
import io.github.sadellie.themmo.ThemmoController
|
import io.github.sadellie.themmo.ThemmoController
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -74,11 +72,11 @@ internal fun UnittoApp(prefs: AppPreferences?) {
|
|||||||
ThemmoController(
|
ThemmoController(
|
||||||
lightColorScheme = LightThemeColors,
|
lightColorScheme = LightThemeColors,
|
||||||
darkColorScheme = DarkThemeColors,
|
darkColorScheme = DarkThemeColors,
|
||||||
themingMode = prefs.themingMode.toThemingMode(),
|
themingMode = prefs.themingMode,
|
||||||
dynamicThemeEnabled = prefs.enableDynamicTheme,
|
dynamicThemeEnabled = prefs.enableDynamicTheme,
|
||||||
amoledThemeEnabled = prefs.enableAmoledTheme,
|
amoledThemeEnabled = prefs.enableAmoledTheme,
|
||||||
customColor = prefs.customColor.toColor(),
|
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 {
|
private fun Long.toColor(): Color = try {
|
||||||
Color(this.toULong())
|
Color(this.toULong())
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
@ -28,6 +28,7 @@ android.namespace = "com.sadellie.unitto.data.backup"
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.androidx.datastore.datastore.preferences)
|
implementation(libs.androidx.datastore.datastore.preferences)
|
||||||
implementation(libs.com.squareup.moshi.moshi.kotlin)
|
implementation(libs.com.squareup.moshi.moshi.kotlin)
|
||||||
|
implementation(libs.com.github.sadellie.themmo.core)
|
||||||
ksp(libs.com.squareup.moshi.moshi.kotlin.codegen)
|
ksp(libs.com.squareup.moshi.moshi.kotlin.codegen)
|
||||||
|
|
||||||
implementation(project(":data:database"))
|
implementation(project(":data:database"))
|
||||||
|
@ -121,11 +121,11 @@ class BackupManager @Inject constructor(
|
|||||||
val timeZoneTableData = timeZoneDao.getFavorites().first()
|
val timeZoneTableData = timeZoneDao.getFavorites().first()
|
||||||
|
|
||||||
return UserData(
|
return UserData(
|
||||||
themingMode = data.getThemingMode(),
|
themingMode = data.getThemingMode().name,
|
||||||
enableDynamicTheme = data.getEnableDynamicTheme(),
|
enableDynamicTheme = data.getEnableDynamicTheme(),
|
||||||
enableAmoledTheme = data.getEnableAmoledTheme(),
|
enableAmoledTheme = data.getEnableAmoledTheme(),
|
||||||
customColor = data.getCustomColor(),
|
customColor = data.getCustomColor(),
|
||||||
monetMode = data.getMonetMode(),
|
monetMode = data.getMonetMode().name,
|
||||||
startingScreen = data.getStartingScreen(),
|
startingScreen = data.getStartingScreen(),
|
||||||
enableToolsExperiment = data.getEnableToolsExperiment(),
|
enableToolsExperiment = data.getEnableToolsExperiment(),
|
||||||
systemFont = data.getSystemFont(),
|
systemFont = data.getSystemFont(),
|
||||||
|
@ -24,6 +24,8 @@ plugins {
|
|||||||
android.namespace = "com.sadellie.unitto.data.model"
|
android.namespace = "com.sadellie.unitto.data.model"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(libs.com.github.sadellie.themmo.core)
|
||||||
|
|
||||||
implementation(project(":core:base"))
|
implementation(project(":core:base"))
|
||||||
implementation(project(":data:common"))
|
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.GeneralPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
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.Flow
|
||||||
|
|
||||||
interface UserPreferencesRepository {
|
interface UserPreferencesRepository {
|
||||||
@ -55,7 +57,7 @@ interface UserPreferencesRepository {
|
|||||||
|
|
||||||
suspend fun updateLatestPairOfUnits(unitFrom: AbstractUnit, unitTo: AbstractUnit)
|
suspend fun updateLatestPairOfUnits(unitFrom: AbstractUnit, unitTo: AbstractUnit)
|
||||||
|
|
||||||
suspend fun updateThemingMode(themingMode: String)
|
suspend fun updateThemingMode(themingMode: ThemingMode)
|
||||||
|
|
||||||
suspend fun updateDynamicTheme(enabled: Boolean)
|
suspend fun updateDynamicTheme(enabled: Boolean)
|
||||||
|
|
||||||
@ -63,7 +65,7 @@ interface UserPreferencesRepository {
|
|||||||
|
|
||||||
suspend fun updateCustomColor(color: Long)
|
suspend fun updateCustomColor(color: Long)
|
||||||
|
|
||||||
suspend fun updateMonetMode(monetMode: String)
|
suspend fun updateMonetMode(monetMode: MonetMode)
|
||||||
|
|
||||||
suspend fun updateStartingScreen(startingScreen: String)
|
suspend fun updateStartingScreen(startingScreen: String)
|
||||||
|
|
||||||
|
@ -18,12 +18,15 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.model.userprefs
|
package com.sadellie.unitto.data.model.userprefs
|
||||||
|
|
||||||
|
import io.github.sadellie.themmo.core.MonetMode
|
||||||
|
import io.github.sadellie.themmo.core.ThemingMode
|
||||||
|
|
||||||
interface AppPreferences {
|
interface AppPreferences {
|
||||||
val themingMode: String
|
val themingMode: ThemingMode
|
||||||
val enableDynamicTheme: Boolean
|
val enableDynamicTheme: Boolean
|
||||||
val enableAmoledTheme: Boolean
|
val enableAmoledTheme: Boolean
|
||||||
val customColor: Long
|
val customColor: Long
|
||||||
val monetMode: String
|
val monetMode: MonetMode
|
||||||
val startingScreen: String
|
val startingScreen: String
|
||||||
val enableToolsExperiment: Boolean
|
val enableToolsExperiment: Boolean
|
||||||
val systemFont: Boolean
|
val systemFont: Boolean
|
||||||
|
@ -26,7 +26,7 @@ android.namespace = "com.sadellie.unitto.data.userprefs"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.androidx.datastore.datastore.preferences)
|
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(":core:base"))
|
||||||
implementation(project(":data:model"))
|
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.ALL_UNIT_GROUPS
|
||||||
import com.sadellie.unitto.data.model.UnitGroup
|
import com.sadellie.unitto.data.model.UnitGroup
|
||||||
import com.sadellie.unitto.data.model.UnitsListSorting
|
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 {
|
fun Preferences.getEnableDynamicTheme(): Boolean {
|
||||||
return this[PrefsKeys.ENABLE_DYNAMIC_THEME] ?: true
|
return this[PrefsKeys.ENABLE_DYNAMIC_THEME] ?: true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Preferences.getThemingMode(): String {
|
fun Preferences.getThemingMode(): ThemingMode {
|
||||||
return this[PrefsKeys.THEMING_MODE] ?: ""
|
return this[PrefsKeys.THEMING_MODE]
|
||||||
|
?.letTryOrNull { ThemingMode.valueOf(it) }
|
||||||
|
?: ThemingMode.AUTO
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Preferences.getEnableAmoledTheme(): Boolean {
|
fun Preferences.getEnableAmoledTheme(): Boolean {
|
||||||
@ -43,8 +47,10 @@ fun Preferences.getCustomColor(): Long {
|
|||||||
return this[PrefsKeys.CUSTOM_COLOR] ?: 16L // From Color.Unspecified
|
return this[PrefsKeys.CUSTOM_COLOR] ?: 16L // From Color.Unspecified
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Preferences.getMonetMode(): String {
|
fun Preferences.getMonetMode(): MonetMode {
|
||||||
return this[PrefsKeys.MONET_MODE] ?: ""
|
return this[PrefsKeys.MONET_MODE]
|
||||||
|
?.letTryOrNull { MonetMode.valueOf(it) }
|
||||||
|
?: MonetMode.TonalSpot
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Preferences.getStartingScreen(): String {
|
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.GeneralPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
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(
|
data class AppPreferencesImpl(
|
||||||
override val themingMode: String,
|
override val themingMode: ThemingMode,
|
||||||
override val enableDynamicTheme: Boolean,
|
override val enableDynamicTheme: Boolean,
|
||||||
override val enableAmoledTheme: Boolean,
|
override val enableAmoledTheme: Boolean,
|
||||||
override val customColor: Long,
|
override val customColor: Long,
|
||||||
override val monetMode: String,
|
override val monetMode: MonetMode,
|
||||||
override val startingScreen: String,
|
override val startingScreen: String,
|
||||||
override val enableToolsExperiment: Boolean,
|
override val enableToolsExperiment: Boolean,
|
||||||
override val systemFont: 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.GeneralPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
import com.sadellie.unitto.data.model.userprefs.StartingScreenPreferences
|
||||||
import com.sadellie.unitto.data.model.userprefs.UnitGroupsPreferences
|
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.Flow
|
||||||
import kotlinx.coroutines.flow.catch
|
import kotlinx.coroutines.flow.catch
|
||||||
import kotlinx.coroutines.flow.map
|
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 ->
|
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 ->
|
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.draw.clip
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
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.Themmo
|
||||||
import io.github.sadellie.themmo.ThemmoController
|
import io.github.sadellie.themmo.ThemmoController
|
||||||
|
import io.github.sadellie.themmo.core.MonetMode
|
||||||
|
import io.github.sadellie.themmo.core.ThemingMode
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun MonetModeSelector(
|
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.core.ui.common.key.unittoicons.Clear
|
||||||
import com.sadellie.unitto.feature.settings.components.ColorSelector
|
import com.sadellie.unitto.feature.settings.components.ColorSelector
|
||||||
import com.sadellie.unitto.feature.settings.components.MonetModeSelector
|
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.Themmo
|
||||||
import io.github.sadellie.themmo.ThemmoController
|
import io.github.sadellie.themmo.ThemmoController
|
||||||
|
import io.github.sadellie.themmo.core.MonetMode
|
||||||
|
import io.github.sadellie.themmo.core.ThemingMode
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun DisplayRoute(
|
internal fun DisplayRoute(
|
||||||
|
@ -24,8 +24,8 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import com.sadellie.unitto.data.common.stateIn
|
import com.sadellie.unitto.data.common.stateIn
|
||||||
import com.sadellie.unitto.data.model.repository.UserPreferencesRepository
|
import com.sadellie.unitto.data.model.repository.UserPreferencesRepository
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import io.github.sadellie.themmo.MonetMode
|
import io.github.sadellie.themmo.core.MonetMode
|
||||||
import io.github.sadellie.themmo.ThemingMode
|
import io.github.sadellie.themmo.core.ThemingMode
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ class DisplayViewModel @Inject constructor(
|
|||||||
|
|
||||||
fun updateThemingMode(themingMode: ThemingMode) {
|
fun updateThemingMode(themingMode: ThemingMode) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
userPrefsRepository.updateThemingMode(themingMode.name)
|
userPrefsRepository.updateThemingMode(themingMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ class DisplayViewModel @Inject constructor(
|
|||||||
|
|
||||||
fun updateMonetMode(monetMode: MonetMode) {
|
fun updateMonetMode(monetMode: MonetMode) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
userPrefsRepository.updateMonetMode(monetMode.name)
|
userPrefsRepository.updateMonetMode(monetMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ androidxUiAutomator = "2.2.0"
|
|||||||
androidxWindowWindow = "1.2.0"
|
androidxWindowWindow = "1.2.0"
|
||||||
androidxWorkWorkRuntimeKtx = "2.9.0"
|
androidxWorkWorkRuntimeKtx = "2.9.0"
|
||||||
comAndroidToolsDesugarJdkLibs = "2.0.4"
|
comAndroidToolsDesugarJdkLibs = "2.0.4"
|
||||||
comGithubSadellieThemmo = "1.2.0"
|
comGithubSadellieThemmo = "1.3.0"
|
||||||
comGoogleAccompanistAccompanistSystemuicontroller = "0.30.1"
|
comGoogleAccompanistAccompanistSystemuicontroller = "0.30.1"
|
||||||
comGoogleDagger = "2.48.1"
|
comGoogleDagger = "2.48.1"
|
||||||
comSquareupMoshiMoshiKotlin = "1.15.0"
|
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-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" }
|
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-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-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-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" }
|
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