Simple-Flashlight/app/src/main/kotlin/com/simplemobiletools/flashlight/activities/viewmodel/WidgetConfigureViewModel.kt

46 lines
1.4 KiB
Kotlin

package com.simplemobiletools.flashlight.activities.viewmodel
import android.app.Application
import android.graphics.Color
import androidx.lifecycle.AndroidViewModel
import com.simplemobiletools.flashlight.R
import com.simplemobiletools.flashlight.extensions.config
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
internal class WidgetConfigureViewModel(
application: Application
) : AndroidViewModel(application) {
private val _widgetAlpha = MutableStateFlow(0f)
val widgetAlpha = _widgetAlpha.asStateFlow()
private val _widgetId = MutableStateFlow(0)
val widgetId = _widgetId.asStateFlow()
private val _widgetColor = MutableStateFlow(0)
val widgetColor = _widgetColor.asStateFlow()
fun changeAlpha(newAlpha: Float) {
_widgetAlpha.value = newAlpha
}
fun updateColor(newColor: Int) {
_widgetColor.value = newColor
}
fun setWidgetId(widgetId: Int) {
_widgetId.value = widgetId
}
init {
_widgetColor.value = application.config.widgetBgColor
if (_widgetColor.value == application.resources.getColor(R.color.default_widget_bg_color, null) && application.config.isUsingSystemTheme) {
_widgetColor.value = application.resources.getColor(com.simplemobiletools.commons.R.color.you_primary_color, application.theme)
}
_widgetAlpha.value = Color.alpha(_widgetColor.value) / 255f
}
}