feat(ui): complete ABox app experience redesign #10
+6
-12
@@ -84,9 +84,6 @@ import com.flagship.abox.manager.domain.SocketPowerState
|
|||||||
import com.flagship.abox.manager.domain.infrared.RemoteKeyBinding
|
import com.flagship.abox.manager.domain.infrared.RemoteKeyBinding
|
||||||
import com.flagship.abox.manager.domain.infrared.VirtualRemote
|
import com.flagship.abox.manager.domain.infrared.VirtualRemote
|
||||||
|
|
||||||
private const val DEFAULT_SOCKET_DEVICE_NAME = "Zigbee插座控制器"
|
|
||||||
private const val DEFAULT_TH_DEVICE_NAME = "温湿度传感器"
|
|
||||||
private const val DEFAULT_IR_DEVICE_NAME = "红外控制器"
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -774,7 +771,7 @@ private fun AddTriggerDialog(
|
|||||||
onAdd: (type: Int, deviceName: String, time: String, temp: Double, hum: Double, op: ComparisonOperator) -> Unit,
|
onAdd: (type: Int, deviceName: String, time: String, temp: Double, hum: Double, op: ComparisonOperator) -> Unit,
|
||||||
) {
|
) {
|
||||||
var selectedType by remember { mutableIntStateOf(0) }
|
var selectedType by remember { mutableIntStateOf(0) }
|
||||||
var deviceName by remember { mutableStateOf(DEFAULT_TH_DEVICE_NAME) }
|
var deviceName by remember { mutableStateOf("") }
|
||||||
var timeInput by remember { mutableStateOf("07:30") }
|
var timeInput by remember { mutableStateOf("07:30") }
|
||||||
var tempThreshold by remember { mutableDoubleStateOf(28.0) }
|
var tempThreshold by remember { mutableDoubleStateOf(28.0) }
|
||||||
var humThreshold by remember { mutableDoubleStateOf(40.0) }
|
var humThreshold by remember { mutableDoubleStateOf(40.0) }
|
||||||
@@ -855,9 +852,9 @@ private fun AddConditionDialog(
|
|||||||
onAddTimeRange: (String, String) -> Unit,
|
onAddTimeRange: (String, String) -> Unit,
|
||||||
) {
|
) {
|
||||||
var selectedType by remember { mutableIntStateOf(0) }
|
var selectedType by remember { mutableIntStateOf(0) }
|
||||||
var tempDeviceName by remember { mutableStateOf(DEFAULT_TH_DEVICE_NAME) }
|
var tempDeviceName by remember { mutableStateOf("") }
|
||||||
var humDeviceName by remember { mutableStateOf(DEFAULT_TH_DEVICE_NAME) }
|
var humDeviceName by remember { mutableStateOf("") }
|
||||||
var socketDeviceName by remember { mutableStateOf(DEFAULT_SOCKET_DEVICE_NAME) }
|
var socketDeviceName by remember { mutableStateOf("") }
|
||||||
var operator by remember { mutableStateOf(ComparisonOperator.GREATER_THAN) }
|
var operator by remember { mutableStateOf(ComparisonOperator.GREATER_THAN) }
|
||||||
var tempVal by remember { mutableDoubleStateOf(26.0) }
|
var tempVal by remember { mutableDoubleStateOf(26.0) }
|
||||||
var humVal by remember { mutableDoubleStateOf(50.0) }
|
var humVal by remember { mutableDoubleStateOf(50.0) }
|
||||||
@@ -997,7 +994,7 @@ private fun AddActionDialog(
|
|||||||
val defaultNotifyTitle = stringResource(R.string.scene_default_notify_title)
|
val defaultNotifyTitle = stringResource(R.string.scene_default_notify_title)
|
||||||
val defaultNotifyMsg = stringResource(R.string.scene_default_notify_msg)
|
val defaultNotifyMsg = stringResource(R.string.scene_default_notify_msg)
|
||||||
|
|
||||||
var socketName by remember { mutableStateOf(DEFAULT_SOCKET_DEVICE_NAME) }
|
var socketName by remember { mutableStateOf("") }
|
||||||
var socketPower by remember { mutableStateOf(SocketPowerState.ON) }
|
var socketPower by remember { mutableStateOf(SocketPowerState.ON) }
|
||||||
|
|
||||||
var selectedRemoteIndex by remember { mutableIntStateOf(0) }
|
var selectedRemoteIndex by remember { mutableIntStateOf(0) }
|
||||||
@@ -1056,7 +1053,6 @@ private fun AddActionDialog(
|
|||||||
1 -> {
|
1 -> {
|
||||||
if (availableRemotes.isEmpty()) {
|
if (availableRemotes.isEmpty()) {
|
||||||
Text(stringResource(R.string.scene_no_virtual_remotes))
|
Text(stringResource(R.string.scene_no_virtual_remotes))
|
||||||
OutlinedTextField(value = selectedButtonId, onValueChange = { selectedButtonId = it }, label = { Text(stringResource(R.string.scene_remote_button_slot_label)) }, singleLine = true)
|
|
||||||
} else {
|
} else {
|
||||||
Text(stringResource(R.string.scene_select_virtual_remote))
|
Text(stringResource(R.string.scene_select_virtual_remote))
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||||
@@ -1107,7 +1103,7 @@ private fun AddActionDialog(
|
|||||||
confirmButton = {
|
confirmButton = {
|
||||||
val canConfirm = when (actionType) {
|
val canConfirm = when (actionType) {
|
||||||
0 -> socketName.isNotBlank()
|
0 -> socketName.isNotBlank()
|
||||||
1 -> selectedButtonId.isNotBlank()
|
1 -> availableRemotes.isNotEmpty() && selectedButtonId.isNotBlank()
|
||||||
3 -> notifyTitle.isNotBlank()
|
3 -> notifyTitle.isNotBlank()
|
||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
@@ -1119,8 +1115,6 @@ private fun AddActionDialog(
|
|||||||
val remote = availableRemotes.getOrNull(selectedRemoteIndex)
|
val remote = availableRemotes.getOrNull(selectedRemoteIndex)
|
||||||
if (remote != null) {
|
if (remote != null) {
|
||||||
onAddRemote(remote.id.value, remote.displayName, selectedButtonId, selectedButtonName)
|
onAddRemote(remote.id.value, remote.displayName, selectedButtonId, selectedButtonName)
|
||||||
} else {
|
|
||||||
onAddRemote("default-ir", DEFAULT_IR_DEVICE_NAME, selectedButtonId, selectedButtonName)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2 -> onAddDelay(delaySeconds)
|
2 -> onAddDelay(delaySeconds)
|
||||||
|
|||||||
Reference in New Issue
Block a user