fix: remove legacy text icons and placeholders

This commit is contained in:
2026-08-26 21:14:09 +08:00
parent 7a107cc55a
commit d8d9eb4f28
12 changed files with 173 additions and 159 deletions
@@ -747,7 +747,7 @@ private fun ActionItemRow(
@Composable
private fun SceneTrigger.describe(): String = when (this) {
is SceneTrigger.Time -> "⏰ $timeOfDay"
is SceneTrigger.Time -> "定时 $timeOfDay"
is SceneTrigger.Temperature -> stringResource(R.string.scene_trigger_desc_temp, operator.symbol, thresholdCelsius.toInt().toString())
is SceneTrigger.Humidity -> stringResource(R.string.scene_trigger_desc_humidity, operator.symbol, thresholdPercent.toInt().toString())
is SceneTrigger.DeviceState -> stringResource(R.string.scene_trigger_desc_device, deviceName.value, expectedState)
@@ -68,6 +68,8 @@ import com.flagship.abox.manager.domain.Scene
import com.flagship.abox.manager.domain.SceneColor
import com.flagship.abox.manager.domain.SceneIcon
import com.flagship.abox.manager.domain.SceneId
import com.flagship.abox.manager.designsystem.icon.ABoxIcon
import com.flagship.abox.manager.designsystem.icon.ABoxIconKey
import kotlinx.coroutines.flow.collectLatest
@OptIn(ExperimentalMaterial3Api::class)
@@ -250,9 +252,10 @@ private fun SceneCard(
),
contentAlignment = Alignment.Center,
) {
Text(
text = scene.icon.displayEmoji(),
style = MaterialTheme.typography.titleMedium,
ABoxIcon(
key = scene.icon.toABoxIconKey(),
contentDescription = scene.name,
modifier = Modifier.size(28.dp),
)
}
Spacer(Modifier.width(12.dp))
@@ -375,10 +378,7 @@ private fun EmptySceneList(modifier: Modifier = Modifier) {
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Text(
text = "⚡",
style = MaterialTheme.typography.displayMedium,
)
ABoxIcon(ABoxIconKey.SCENES, contentDescription = "暂无情景", modifier = Modifier.size(48.dp))
Spacer(Modifier.size(8.dp))
Text(
text = stringResource(R.string.scene_empty_title),
@@ -396,19 +396,19 @@ private fun EmptySceneList(modifier: Modifier = Modifier) {
}
}
fun SceneIcon.displayEmoji(): String = when (this) {
SceneIcon.HOME -> "🏠"
SceneIcon.OFFICE -> "💼"
SceneIcon.NIGHT -> "🌙"
SceneIcon.MOVIE -> "🎬"
SceneIcon.AWAY -> "🚶"
SceneIcon.READING -> "📖"
SceneIcon.DINING -> "🍽️"
SceneIcon.GAMING -> "🎮"
SceneIcon.THERMOSTAT -> "🌡️"
SceneIcon.LIGHT -> "💡"
SceneIcon.CLEAN -> "🧹"
SceneIcon.CUSTOM -> "✨"
fun SceneIcon.toABoxIconKey(): ABoxIconKey = when (this) {
SceneIcon.HOME -> ABoxIconKey.DEVICES
SceneIcon.OFFICE -> ABoxIconKey.ACTIVITY
SceneIcon.NIGHT -> ABoxIconKey.PENDING
SceneIcon.MOVIE -> ABoxIconKey.SCENES
SceneIcon.AWAY -> ABoxIconKey.OFFLINE
SceneIcon.READING -> ABoxIconKey.DEVICES
SceneIcon.DINING -> ABoxIconKey.DEVICES
SceneIcon.GAMING -> ABoxIconKey.SCENES
SceneIcon.THERMOSTAT -> ABoxIconKey.TEMPERATURE
SceneIcon.LIGHT -> ABoxIconKey.POWER
SceneIcon.CLEAN -> ABoxIconKey.REFRESH
SceneIcon.CUSTOM -> ABoxIconKey.UNKNOWN_DEVICE
}
internal fun SceneColor.toColorOrNull(): Color? {
@@ -82,9 +82,9 @@
<string name="scene_section_other">其他选项与外观</string>
<!-- Add Buttons -->
<string name="scene_add_trigger">+ 新增触发器</string>
<string name="scene_add_condition">+ 新增条件</string>
<string name="scene_add_action_btn">+ 新增动作</string>
<string name="scene_add_trigger">新增触发器</string>
<string name="scene_add_condition">新增条件</string>
<string name="scene_add_action_btn">新增动作</string>
<string name="scene_add_action">添加</string>
<string name="scene_save_action">保存指令</string>
@@ -104,10 +104,10 @@
<!-- Trigger Types & Dialog -->
<string name="scene_dialog_add_trigger_title">选择触发器类型</string>
<string name="scene_trigger_type_time">⏰ 定时时间触发</string>
<string name="scene_trigger_type_temp">🌡️ 环境温度触发</string>
<string name="scene_trigger_type_humidity">💧 环境湿度触发</string>
<string name="scene_trigger_type_device">🔌 插座状态变更触发</string>
<string name="scene_trigger_type_time">定时时间触发</string>
<string name="scene_trigger_type_temp">环境温度触发</string>
<string name="scene_trigger_type_humidity">环境湿度触发</string>
<string name="scene_trigger_type_device">插座状态变更触发</string>
<string name="scene_trigger_time_label">触发时间点(如:07:30)</string>
<string name="scene_trigger_temp_threshold">温度阈值 (°C)</string>
<string name="scene_trigger_humidity_threshold">湿度阈值 (%)</string>
@@ -118,19 +118,19 @@
<!-- Condition Types & Dialog -->
<string name="scene_dialog_add_condition_title">选择限制条件</string>
<string name="scene_condition_type_temp">🌡️ 环境温度范围</string>
<string name="scene_condition_type_humidity">💧 环境湿度范围</string>
<string name="scene_condition_type_socket">🔌 插座当前电源状态</string>
<string name="scene_condition_type_time_range">🕒 生效时间区间</string>
<string name="scene_condition_type_temp">环境温度范围</string>
<string name="scene_condition_type_humidity">环境湿度范围</string>
<string name="scene_condition_type_socket">插座当前电源状态</string>
<string name="scene_condition_type_time_range">生效时间区间</string>
<string name="scene_condition_start_time">起始时间(如:22:00)</string>
<string name="scene_condition_end_time">结束时间(如:07:00)</string>
<!-- Action Types & Dialog -->
<string name="scene_dialog_add_action_title">选择执行动作</string>
<string name="scene_action_type_socket">🔌 智能插座控制</string>
<string name="scene_action_type_virtual_remote">📺 红外遥控按键</string>
<string name="scene_action_type_delay">⏱️ 延时等待 (缓冲)</string>
<string name="scene_action_type_notification">🔔 发送系统提示</string>
<string name="scene_action_type_socket">智能插座控制</string>
<string name="scene_action_type_virtual_remote">红外遥控按键</string>
<string name="scene_action_type_delay">延时等待(缓冲)</string>
<string name="scene_action_type_notification">发送系统提示</string>
<string name="scene_select_socket">选择目标插座</string>
<string name="scene_socket_power_state">设定电源状态</string>
<string name="scene_select_virtual_remote">选择虚拟遥控器</string>
@@ -144,8 +144,8 @@
<string name="scene_action_socket">插座【%1$s】: 设为 %2$s</string>
<string name="scene_action_remote">遥控【%1$s】: 发送 %2$s</string>
<string name="scene_action_infrared">红外【%1$s】: 槽位 %2$s</string>
<string name="scene_action_delay">⏱️ 等待 %1$d 秒</string>
<string name="scene_action_notification">🔔 提示: %1$s</string>
<string name="scene_action_delay">等待 %1$d 秒</string>
<string name="scene_action_notification">提示:%1$s</string>
<!-- Scene: execution -->
<string name="scene_execution_title">执行指令</string>
@@ -164,13 +164,13 @@
<!-- 校验与弹窗选项/占位文案 -->
<string name="scene_trigger_time_error">时间格式无效(请按 HH:mm 格式输入,如 07:30)</string>
<string name="scene_condition_time_error">时间格式无效(请按 HH:mm 格式输入,如 22:00)</string>
<string name="scene_chip_time">⏰ 定时</string>
<string name="scene_chip_temp">🌡️ 温度</string>
<string name="scene_chip_humidity">💧 湿度</string>
<string name="scene_chip_socket">🔌 插座</string>
<string name="scene_chip_remote">📺 遥控</string>
<string name="scene_chip_delay">⏱️ 延时</string>
<string name="scene_chip_notify">🔔 提示</string>
<string name="scene_chip_time">定时</string>
<string name="scene_chip_temp">温度</string>
<string name="scene_chip_humidity">湿度</string>
<string name="scene_chip_socket">插座</string>
<string name="scene_chip_remote">遥控</string>
<string name="scene_chip_delay">延时</string>
<string name="scene_chip_notify">提示</string>
<string name="scene_chip_above">&gt; 高于</string>
<string name="scene_chip_below">&lt; 低于</string>
<string name="scene_chip_power_on">开启</string>
@@ -184,7 +184,7 @@
<string name="scene_empty_triggers_hint">尚未添加触发器,请点击下方按钮添加</string>
<string name="scene_empty_conditions_hint">尚未添加限制条件,请点击下方按钮添加</string>
<string name="scene_empty_actions_hint">尚未添加执行动作,请点击下方按钮添加</string>
<string name="scene_summary_triggers_and_actions">⚡ %1$d 个触发器 • %2$d 个动作</string>
<string name="scene_summary_triggers_and_actions">%1$d 个触发器 · %2$d 个动作</string>
<string name="scene_summary_actions_only">%1$d 个执行动作</string>
<string name="scene_exec_ready_hint">点击下方按钮立即开始执行</string>
<string name="scene_exec_rerun">重新执行</string>
+25 -25
View File
@@ -82,9 +82,9 @@
<string name="scene_section_other">Other Options &amp; Appearance</string>
<!-- Add Buttons -->
<string name="scene_add_trigger">+ Add Trigger</string>
<string name="scene_add_condition">+ Add Condition</string>
<string name="scene_add_action_btn">+ Add Action</string>
<string name="scene_add_trigger">Add Trigger</string>
<string name="scene_add_condition">Add Condition</string>
<string name="scene_add_action_btn">Add Action</string>
<string name="scene_add_action">Add</string>
<string name="scene_save_action">Save Command</string>
@@ -104,10 +104,10 @@
<!-- Trigger Types & Dialog -->
<string name="scene_dialog_add_trigger_title">Select Trigger Type</string>
<string name="scene_trigger_type_time">⏰ Time / Schedule Trigger</string>
<string name="scene_trigger_type_temp">🌡️ Temperature Threshold</string>
<string name="scene_trigger_type_humidity">💧 Humidity Threshold</string>
<string name="scene_trigger_type_device">🔌 Socket State Changed</string>
<string name="scene_trigger_type_time">Time / Schedule Trigger</string>
<string name="scene_trigger_type_temp">Temperature Threshold</string>
<string name="scene_trigger_type_humidity">Humidity Threshold</string>
<string name="scene_trigger_type_device">Socket State Changed</string>
<string name="scene_trigger_time_label">Trigger Time (e.g. 07:30)</string>
<string name="scene_trigger_temp_threshold">Temperature Threshold (°C)</string>
<string name="scene_trigger_humidity_threshold">Humidity Threshold (%)</string>
@@ -118,19 +118,19 @@
<!-- Condition Types & Dialog -->
<string name="scene_dialog_add_condition_title">Select Condition</string>
<string name="scene_condition_type_temp">🌡️ Temperature Range</string>
<string name="scene_condition_type_humidity">💧 Humidity Range</string>
<string name="scene_condition_type_socket">🔌 Current Socket Power</string>
<string name="scene_condition_type_time_range">🕒 Active Time Range</string>
<string name="scene_condition_type_temp">Temperature Range</string>
<string name="scene_condition_type_humidity">Humidity Range</string>
<string name="scene_condition_type_socket">Current Socket Power</string>
<string name="scene_condition_type_time_range">Active Time Range</string>
<string name="scene_condition_start_time">Start Time (e.g. 22:00)</string>
<string name="scene_condition_end_time">End Time (e.g. 07:00)</string>
<!-- Action Types & Dialog -->
<string name="scene_dialog_add_action_title">Select Action</string>
<string name="scene_action_type_socket">🔌 Smart Socket Control</string>
<string name="scene_action_type_virtual_remote">📺 Infrared Remote Button</string>
<string name="scene_action_type_delay">⏱️ Delay / Buffer Timer</string>
<string name="scene_action_type_notification">🔔 System Notification</string>
<string name="scene_action_type_socket">Smart Socket Control</string>
<string name="scene_action_type_virtual_remote">Infrared Remote Button</string>
<string name="scene_action_type_delay">Delay / Buffer Timer</string>
<string name="scene_action_type_notification">System Notification</string>
<string name="scene_select_socket">Select Target Socket</string>
<string name="scene_socket_power_state">Target Power State</string>
<string name="scene_select_virtual_remote">Select Virtual Remote</string>
@@ -144,8 +144,8 @@
<string name="scene_action_socket">Socket [%1$s]: Set %2$s</string>
<string name="scene_action_remote">Remote [%1$s]: Send %2$s</string>
<string name="scene_action_infrared">Infrared [%1$s]: Slot %2$s</string>
<string name="scene_action_delay">⏱️ Delay %1$d seconds</string>
<string name="scene_action_notification">🔔 Notify: %1$s</string>
<string name="scene_action_delay">Delay %1$d seconds</string>
<string name="scene_action_notification">Notify: %1$s</string>
<!-- Scene: execution -->
<string name="scene_execution_title">Execute Command</string>
@@ -164,13 +164,13 @@
<!-- Validation & dialog chips / placeholders -->
<string name="scene_trigger_time_error">Invalid time format (use HH:mm, e.g. 07:30)</string>
<string name="scene_condition_time_error">Invalid time format (use HH:mm, e.g. 22:00)</string>
<string name="scene_chip_time">⏰ Schedule</string>
<string name="scene_chip_temp">🌡️ Temperature</string>
<string name="scene_chip_humidity">💧 Humidity</string>
<string name="scene_chip_socket">🔌 Socket</string>
<string name="scene_chip_remote">📺 Remote</string>
<string name="scene_chip_delay">⏱️ Delay</string>
<string name="scene_chip_notify">🔔 Notify</string>
<string name="scene_chip_time">Schedule</string>
<string name="scene_chip_temp">Temperature</string>
<string name="scene_chip_humidity">Humidity</string>
<string name="scene_chip_socket">Socket</string>
<string name="scene_chip_remote">Remote</string>
<string name="scene_chip_delay">Delay</string>
<string name="scene_chip_notify">Notify</string>
<string name="scene_chip_above">&gt; Above</string>
<string name="scene_chip_below">&lt; Below</string>
<string name="scene_chip_power_on">Turn ON</string>
@@ -184,7 +184,7 @@
<string name="scene_empty_triggers_hint">No triggers configured. Tap + below to add.</string>
<string name="scene_empty_conditions_hint">No conditions configured. Tap + below to add.</string>
<string name="scene_empty_actions_hint">No actions configured. Tap + below to add.</string>
<string name="scene_summary_triggers_and_actions">⚡ %1$d triggers • %2$d actions</string>
<string name="scene_summary_triggers_and_actions">%1$d triggers · %2$d actions</string>
<string name="scene_summary_actions_only">%1$d actions</string>
<string name="scene_exec_ready_hint">Tap the button below to run immediately</string>
<string name="scene_exec_rerun">Re-run</string>