void CodedLockPresenter::OnStop(void)
{
- /*关锁*/
- uapi_dev_runtime_set_lock_status(0);
- /*设置表盘状态*/
- MainModel::GetInstance().setDialState(DialState::LOCK, false);
Presenter<CodedLockView>::OnStop();
}
void CodedLockPresenter::JudgeMatch()
/*每次点击完成判断 是否 完成密码匹配*/
if (CodedLockModel::GetInstance()->IsLockState())
{
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "回到主界面");
+ /*关锁*/
+ uapi_dev_runtime_set_lock_status(0);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ /*设置表盘状态*/
+ MainModel::GetInstance().setDialState(DialState::LOCK, false);
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "JudgeMatch is Ok");
}
#ifdef CUSTOM_Z1\r
{DIAL_CLOCK, "Z1", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD},\r
#else\r
- {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 默认表盘 Id 0\r
+ {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 默认表盘 Id 0\r
#endif\r
{DIAL_CLOCK_1, "Custom_1", CUSTOM_CLOCK1_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 1\r
{DIAL_CLOCK_2, "Custom_2", CUSTOM_CLOCK2_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 2\r
{\r
// 将 state 转换为整数以进行比较\r
int stateIndex = static_cast<int>(state);\r
- if (stateIndex >= 0 && stateIndex < STATE_COUNT)\r
- { // 确保 index 在有效范围\r
- dialstateInfo[stateIndex].active = value; // 使用转换后的索引\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value);\r
+ if (stateIndex >= 0 && stateIndex < STATE_COUNT) // 确保 index 在有效范围\r
+ {\r
+ // 检查当前状态是否与要设置的状态一致\r
+ if (dialstateInfo[stateIndex].active != value)\r
+ {\r
+ dialstateInfo[stateIndex].active = value; // 使用转换后的索引\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value);\r
+ SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0); // 发送更新消息\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "State %d is unchanged, no update needed.", stateIndex);\r
+ }\r
}\r
else\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex);\r
}\r
-\r
- SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0);\r
}\r
\r
// 接口 2: 获取最高优先级为 true 的状态\r
{
screen_context_t *sc = power_display_get_screen_context();
uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
+
for (uint16_t i = 0; i < sizeof(ignore_slice_ids) / sizeof(uint16_t); i++)
{
if (ignore_slice_ids[i] == current_slice_id)
/*设置表盘状态*/
OHOS::MainModel::GetInstance().setDialState(OHOS::DialState::LOCK, true);
}
+ if (uapi_dev_runtime_get_lock_status() == 1 && (current_slice_id == VIEW_CODED_LOCK))
+ {
+ /*重新进入一次主界面*/
+ OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ }
}
}
}