Skip to content
This repository has been archived by the owner on Jul 2, 2024. It is now read-only.

Commit

Permalink
Optimize UserPreferencesRepository
Browse files Browse the repository at this point in the history
  • Loading branch information
SanmerDev committed May 19, 2024
1 parent ed04fb7 commit 2c40059
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,20 @@ package com.sanmer.geomag.repository
import com.sanmer.geomag.Compat
import com.sanmer.geomag.datastore.DarkMode
import com.sanmer.geomag.datastore.UserPreferencesDataSource
import com.sanmer.geomag.di.ApplicationScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject
import javax.inject.Singleton

@Singleton
class UserPreferencesRepository @Inject constructor(
private val userPreferencesDataSource: UserPreferencesDataSource,
@ApplicationScope private val applicationScope: CoroutineScope
private val userPreferencesDataSource: UserPreferencesDataSource
) {
val data get() = userPreferencesDataSource.data

fun setDarkTheme(value: DarkMode) = applicationScope.launch {
userPreferencesDataSource.setDarkTheme(value)
}
suspend fun setDarkTheme(value: DarkMode) = userPreferencesDataSource.setDarkTheme(value)

fun setThemeColor(value: Int) = applicationScope.launch {
userPreferencesDataSource.setThemeColor(value)
}
suspend fun setThemeColor(value: Int) = userPreferencesDataSource.setThemeColor(value)

fun setFieldModel(value: Compat.Models) = applicationScope.launch {
userPreferencesDataSource.setFieldModel(value.name)
}
suspend fun setFieldModel(value: Compat.Models) = userPreferencesDataSource.setFieldModel(value.name)

fun setEnableRecords(value: Boolean) = applicationScope.launch {
userPreferencesDataSource.setEnableRecords(value)
}
suspend fun setEnableRecords(value: Boolean) = userPreferencesDataSource.setEnableRecords(value)
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ import javax.inject.Inject

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
lateinit var userPreferencesRepository: UserPreferencesRepository
@Inject lateinit var userPreferencesRepository: UserPreferencesRepository

private var isLoading by mutableStateOf(true)

Expand Down
14 changes: 10 additions & 4 deletions app/src/main/kotlin/com/sanmer/geomag/viewmodel/HomeViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,15 @@ class HomeViewModel @Inject constructor(
}
}

fun setFieldModel(value: Compat.Models) =
userPreferencesRepository.setFieldModel(value)
fun setFieldModel(value: Compat.Models) {
viewModelScope.launch {
userPreferencesRepository.setFieldModel(value)
}
}

fun setEnableRecords(value: Boolean) =
userPreferencesRepository.setEnableRecords(value)
fun setEnableRecords(value: Boolean) {
viewModelScope.launch {
userPreferencesRepository.setEnableRecords(value)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.sanmer.geomag.viewmodel

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.sanmer.geomag.datastore.DarkMode
import com.sanmer.geomag.repository.UserPreferencesRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import timber.log.Timber
import javax.inject.Inject

Expand All @@ -15,9 +17,15 @@ class SettingsViewModel @Inject constructor(
Timber.d("SettingsViewModel init")
}

fun setDarkTheme(value: DarkMode) =
userPreferencesRepository.setDarkTheme(value)
fun setDarkTheme(value: DarkMode) {
viewModelScope.launch {
userPreferencesRepository.setDarkTheme(value)
}
}

fun setThemeColor(value: Int) =
userPreferencesRepository.setThemeColor(value)
fun setThemeColor(value: Int) {
viewModelScope.launch {
userPreferencesRepository.setThemeColor(value)
}
}
}

0 comments on commit 2c40059

Please sign in to comment.