From: @CHENG <2393524978@qq.com> Date: Tue, 24 Jun 2025 05:59:29 +0000 (+0800) Subject: 规避问题:反复切换主菜单风格,或者反复切换表盘,设备死机 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=5d9ca333cde2d72c753c9a455f0235df0ef25223;p=mirrors%2FASR3603_Z5.git 规避问题:反复切换主菜单风格,或者反复切换表盘,设备死机 --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c index 73788a42..e22da9f9 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c @@ -132,13 +132,29 @@ lv_obj_t * launcher_tileview_add_tile(lv_obj_t * tileview, uint16_t id) return cont; } +#ifdef MMI_PROJECT_Z5_HA_K18 +static void delay_task_cb(lv_task_t * task) +{ + lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_LAUNCHER); + launcher_prepare_destory(obj); + lv_obj_clean(obj); + launcher_create(obj); +} +#endif + void launcher_recreate(void) { printf("%s\n", __FUNCTION__); + +#ifdef MMI_PROJECT_Z5_HA_K18 + lv_task_t * delay_task = lv_task_create(delay_task_cb, 50, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(delay_task); +#else lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_LAUNCHER); launcher_prepare_destory(obj); lv_obj_clean(obj); launcher_create(obj); +#endif } void launcher_power_key_event(void) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.c index 5b594f3e..a1ac6ca3 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.c @@ -40,15 +40,17 @@ static void setting_main_menu_switch_event_cb(lv_obj_t * obj, lv_event_t event) bool is_change_style = false; MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get(); + uint32_t user_num = lv_watch_get_free_num(obj); printf("[@CHENG_DEBUG][%s][%d]: obj=0x%x\n", __FUNCTION__, __LINE__, obj); - printf("[@CHENG_DEBUG][%s][%d]: style0=0x%x,style1=0x%x\n", __FUNCTION__, __LINE__, ext->style0, ext->style1); - if((MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value) && (ext->style1 == obj)) + //printf("[@CHENG_DEBUG][%s][%d]: style0=0x%x,style1=0x%x\n", __FUNCTION__, __LINE__, ext->style0, ext->style1); + printf("[@CHENG_DEBUG][%s][%d]: user_num=%d\n", __FUNCTION__, __LINE__, user_num); + if((MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value) && (1 == user_num)) // (ext->style1 == obj)) { mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_LIST); is_change_style = true; } - else if((MMI_MAIN_MENU_STYLE_LIST == style_value) && (ext->style0 == obj)) + else if((MMI_MAIN_MENU_STYLE_LIST == style_value) && (0 == user_num)) // (ext->style0 == obj)) { mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_ONE_PAGE); is_change_style = true; @@ -112,8 +114,9 @@ static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj) lv_btn_set_fit(style_btn_0, LV_FIT_TIGHT); lv_btn_set_layout(style_btn_0, LV_LAYOUT_ROW_MID); lv_obj_set_event_cb(style_btn_0, setting_main_menu_switch_event_cb); - ext->style0 = style_btn_0; + //ext->style0 = style_btn_0; lv_watch_obj_add_element(style_btn_0); + lv_watch_set_free_num(style_btn_0, 0); lv_obj_t * style_img_0 = lv_img_create(style_btn_0, NULL); lv_img_set_src(style_img_0, ICON_ITEM_NOT_SELECTED); @@ -133,8 +136,9 @@ static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj) // lv_obj_t * style_btn_1 = lv_btn_create(obj, style_btn_0); lv_obj_set_event_cb(style_btn_1, setting_main_menu_switch_event_cb); - ext->style1 = style_btn_1; + //ext->style1 = style_btn_1; lv_watch_obj_add_element(style_btn_1); + lv_watch_set_free_num(style_btn_1, 1); lv_obj_t * style_img_1 = lv_img_create(style_btn_1, NULL); lv_img_set_src(style_img_1, ICON_ITEM_NOT_SELECTED); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.h index 1cbeccb6..f40375ad 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.h @@ -23,8 +23,8 @@ typedef struct { lv_watch_obj_ext_t lv_watch_obj; /*New data for this type */ - lv_obj_t * style0; - lv_obj_t * style1; + //lv_obj_t * style0; + //lv_obj_t * style1; } lv_main_menu_switch_obj_ext_t;