68 lines
2.7 KiB
Kotlin

package com.simplemobiletools.flashlight.helpers
import android.content.Context
import android.graphics.Color
import com.simplemobiletools.commons.extensions.sharedPreferencesCallback
import com.simplemobiletools.commons.helpers.BaseConfig
import kotlinx.coroutines.flow.filterNotNull
class Config(context: Context) : BaseConfig(context) {
companion object {
fun newInstance(context: Context) = Config(context)
}
var brightDisplay: Boolean
get() = prefs.getBoolean(BRIGHT_DISPLAY, true)
set(brightDisplay) = prefs.edit().putBoolean(BRIGHT_DISPLAY, brightDisplay).apply()
val brightDisplayFlow = prefs.run { sharedPreferencesCallback { brightDisplay } }.filterNotNull()
var stroboscope: Boolean
get() = prefs.getBoolean(STROBOSCOPE, true)
set(stroboscope) = prefs.edit().putBoolean(STROBOSCOPE, stroboscope).apply()
val stroboscopeFlow = ::stroboscope.asFlow()
var sos: Boolean
get() = prefs.getBoolean(SOS, true)
set(sos) = prefs.edit().putBoolean(SOS, sos).apply()
val sosFlow = ::sos.asFlow()
var turnFlashlightOn: Boolean
get() = prefs.getBoolean(TURN_FLASHLIGHT_ON, false)
set(turnFlashlightOn) = prefs.edit().putBoolean(TURN_FLASHLIGHT_ON, turnFlashlightOn).apply()
val turnFlashlightOnFlow = ::turnFlashlightOn.asFlow()
var stroboscopeProgress: Int
get() = prefs.getInt(STROBOSCOPE_PROGRESS, 1000)
set(stroboscopeProgress) = prefs.edit().putInt(STROBOSCOPE_PROGRESS, stroboscopeProgress).apply()
var stroboscopeFrequency: Long
get() = prefs.getLong(STROBOSCOPE_FREQUENCY, 1000L)
set(stroboscopeFrequency) = prefs.edit().putLong(STROBOSCOPE_FREQUENCY, stroboscopeFrequency).apply()
var brightDisplayColor: Int
get() = prefs.getInt(BRIGHT_DISPLAY_COLOR, Color.WHITE)
set(brightDisplayColor) = prefs.edit().putInt(BRIGHT_DISPLAY_COLOR, brightDisplayColor).apply()
var forcePortraitMode: Boolean
get() = prefs.getBoolean(FORCE_PORTRAIT_MODE, true)
set(forcePortraitMode) = prefs.edit().putBoolean(FORCE_PORTRAIT_MODE, forcePortraitMode).apply()
val forcePortraitModeFlow = ::forcePortraitMode.asFlow()
var brightnessLevel: Int
get() = prefs.getInt(BRIGHTNESS_LEVEL, DEFAULT_BRIGHTNESS_LEVEL)
set(brightnessLevel) = prefs.edit().putInt(BRIGHTNESS_LEVEL, brightnessLevel).apply()
var lastSleepTimerSeconds: Int
get() = prefs.getInt(LAST_SLEEP_TIMER_SECONDS, 30 * 60)
set(lastSleepTimerSeconds) = prefs.edit().putInt(LAST_SLEEP_TIMER_SECONDS, lastSleepTimerSeconds).apply()
var sleepInTS: Long
get() = prefs.getLong(SLEEP_IN_TS, 0)
set(sleepInTS) = prefs.edit().putLong(SLEEP_IN_TS, sleepInTS).apply()
}