ha-android/app/src/main/java/io/homeassistant/companion/android/settings/sensor/views/SensorUpdateFrequencyView.kt

60 lines
2.7 KiB
Kotlin
Executable File

package io.homeassistant.companion.android.settings.sensor.views
import android.os.Build
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Divider
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.homeassistant.companion.android.common.R
import io.homeassistant.companion.android.common.util.CHANNEL_SENSOR_WORKER
import io.homeassistant.companion.android.database.settings.SensorUpdateFrequencySetting
import io.homeassistant.companion.android.util.compose.InfoNotification
import io.homeassistant.companion.android.util.compose.RadioButtonRow
@Composable
fun SensorUpdateFrequencyView(
sensorUpdateFrequency: SensorUpdateFrequencySetting,
onSettingChanged: (SensorUpdateFrequencySetting) -> Unit
) {
val scrollState = rememberScrollState()
Box(modifier = Modifier.verticalScroll(scrollState)) {
Column(modifier = Modifier.padding(all = 16.dp)) {
Text(
text = stringResource(R.string.sensor_update_frequency_description),
modifier = Modifier.padding(bottom = 16.dp)
)
Divider()
RadioButtonRow(
text = stringResource(R.string.sensor_update_frequency_normal),
selected = sensorUpdateFrequency == SensorUpdateFrequencySetting.NORMAL,
onClick = { onSettingChanged(SensorUpdateFrequencySetting.NORMAL) }
)
RadioButtonRow(
text = stringResource(R.string.sensor_update_frequency_fast_charging),
selected = sensorUpdateFrequency == SensorUpdateFrequencySetting.FAST_WHILE_CHARGING,
onClick = { onSettingChanged(SensorUpdateFrequencySetting.FAST_WHILE_CHARGING) }
)
RadioButtonRow(
text = stringResource(R.string.sensor_update_frequency_fast_always),
selected = sensorUpdateFrequency == SensorUpdateFrequencySetting.FAST_ALWAYS,
onClick = { onSettingChanged(SensorUpdateFrequencySetting.FAST_ALWAYS) }
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
InfoNotification(
infoString = R.string.sensor_update_notification,
channelId = CHANNEL_SENSOR_WORKER,
buttonString = R.string.sensor_worker_notification_channel
)
}
}
}
}