|
@@ -1,40 +1,26 @@
|
|
|
package com.sirekanyan.knigopis.repository
|
|
package com.sirekanyan.knigopis.repository
|
|
|
|
|
|
|
|
import android.content.Context
|
|
import android.content.Context
|
|
|
|
|
+import android.content.Context.MODE_PRIVATE
|
|
|
|
|
+import com.sirekanyan.knigopis.repository.config.BooleanPreference
|
|
|
|
|
+import com.sirekanyan.knigopis.repository.config.InMemory
|
|
|
|
|
+import com.sirekanyan.knigopis.repository.config.IntPreference
|
|
|
|
|
|
|
|
-var isDarkConfiguration = false
|
|
|
|
|
-
|
|
|
|
|
-private const val PREFS_NAME = "knigopis-dev"
|
|
|
|
|
-private const val DARK_THEME_KEY = "dark-theme"
|
|
|
|
|
-private const val SORT_MODE_KEY = "sort-mode"
|
|
|
|
|
|
|
+private const val PREFS_NAME = "config"
|
|
|
|
|
|
|
|
interface Configuration {
|
|
interface Configuration {
|
|
|
-
|
|
|
|
|
var isDarkTheme: Boolean
|
|
var isDarkTheme: Boolean
|
|
|
-
|
|
|
|
|
var sortingMode: Int
|
|
var sortingMode: Int
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
class ConfigurationImpl(context: Context) : Configuration {
|
|
class ConfigurationImpl(context: Context) : Configuration {
|
|
|
|
|
|
|
|
- private val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
|
|
|
|
|
|
+ internal val prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE)
|
|
|
|
|
+ override var isDarkTheme by BooleanPreference(onUpdate = { InMemory.isDarkModeEnabled = it })
|
|
|
|
|
+ override var sortingMode by IntPreference()
|
|
|
|
|
|
|
|
init {
|
|
init {
|
|
|
- isDarkConfiguration = isDarkTheme
|
|
|
|
|
|
|
+ InMemory.isDarkModeEnabled = isDarkTheme
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- override var isDarkTheme: Boolean
|
|
|
|
|
- get() = prefs.getBoolean(DARK_THEME_KEY, false)
|
|
|
|
|
- set(enabled) {
|
|
|
|
|
- isDarkConfiguration = enabled
|
|
|
|
|
- prefs.edit().putBoolean(DARK_THEME_KEY, enabled).apply()
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- override var sortingMode: Int
|
|
|
|
|
- get() = prefs.getInt(SORT_MODE_KEY, 0)
|
|
|
|
|
- set(mode) {
|
|
|
|
|
- prefs.edit().putInt(SORT_MODE_KEY, mode).apply()
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|