gengxin
authorCCC <2393524978@qq.com>
Fri, 15 Sep 2023 10:01:58 +0000 (18:01 +0800)
committerCCC <2393524978@qq.com>
Fri, 15 Sep 2023 10:01:58 +0000 (18:01 +0800)
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c
2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c
2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.c [new file with mode: 0644]
2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting_main_menu_switch.h [new file with mode: 0644]
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_sms.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_sms.h

index 311dd58..d661d97 100644 (file)
@@ -15,6 +15,7 @@
 
 static void * timing_control_timer = NULL;
 static uint8_t s_step_clear_flag = 0;
+static uint8_t s_last_time_min = 0;
 
 #define TIMING_TIMER_INTERVAL  (20 * 1000) // ms
 
@@ -26,6 +27,7 @@ static void timing_timer_callback(uint32_t param)
 
        printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, time.tm_hour, time.tm_min, time.tm_sec);
 
+       // pedometer
     if(0 == time.tm_min && 0 == time.tm_hour)
        {
                if(0 == s_step_clear_flag)
@@ -38,9 +40,17 @@ static void timing_timer_callback(uint32_t param)
        {
                s_step_clear_flag = 0;
        }
-               
        asl_pedometer_steps_save(false);
 
+       // disturb
+#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+       if(time.tm_min != s_last_time_min)
+       {
+               s_last_time_min = time.tm_min;
+               mmi_watch_do_not_disturb_screen_check();
+       }
+#endif
+
        uos_timer_stop(timing_control_timer);
        uos_timer_start(timing_control_timer, MS_TO_TICKS(TIMING_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
 }
@@ -49,6 +59,11 @@ void app_adaptor_timing_control_init(void)
 {
     uos_timer_create(&timing_control_timer);
     uos_timer_start(timing_control_timer, MS_TO_TICKS(TIMING_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
+
+#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+       mmi_watch_do_not_disturb_screen_check();
+#endif
+
 }
 
 #else
index 6c9962e..51f8d34 100644 (file)
@@ -305,6 +305,16 @@ void watch_modem_call_response_clip(int32_t index, MMI_Modem_Call_Response_Clip_
         return;
     }
 
+#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+       if(true == mmi_watch_is_in_do_not_disturb_time())
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+        Hal_Mem_Free(clip->number);
+        Hal_Mem_Free(clip);
+        return;
+    }
+#endif
+
     printf("%s: index=%d, number=%s, type=%d\n", __func__, index, clip->number, clip->type);
 
     //stop all timers
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
new file mode 100644 (file)
index 0000000..022d86b
--- /dev/null
@@ -0,0 +1,311 @@
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_MAIN_MENU_SWITCH_MENU__
+
+#if 1
+
+void * setting_main_menu_switch_ext_get(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SETTING_MAIN_MENU_SWITCH);
+       if(NULL == activity_obj) 
+               return NULL;
+       
+       lv_obj_t * watch_obj = NULL;
+       lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+       if(NULL != watch_obj) 
+       {
+               void * ext = lv_obj_get_ext_attr(watch_obj);
+               return ext;
+       }
+
+       return NULL;
+}
+
+static void setting_main_menu_switch_prepare_destory(lv_obj_t * activity_obj)
+{
+    lv_watch_png_cache_all_free();
+}
+
+static void setting_main_menu_switch_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+    if(LV_EVENT_CLICKED != event)
+               return;
+
+    lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)setting_main_menu_switch_ext_get();
+    if(NULL == ext)
+        return NULL;
+
+       bool is_change_style = false;
+       MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+
+       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))
+       {
+               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))
+       {
+               mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_ONE_PAGE);
+               is_change_style = true;
+       }
+       
+       if(true == is_change_style)
+       {
+               lv_watch_obj_cleanup(obj);
+               setting_main_menu_switch_prepare_destory(NULL);
+               printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               lv_watch_go_home();
+               launcher_recreate();
+       }
+}
+
+static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj)
+{
+    if(NULL == activity_obj) {
+        lv_watch_activity_ext_t activity_ext;
+        memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+        activity_ext.actId = ACT_ID_SETTING_MAIN_MENU_SWITCH;
+        activity_ext.create = setting_main_menu_switch_create;
+        activity_ext.prepare_destory = setting_main_menu_switch_prepare_destory;
+        activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+        LV_ASSERT_MEM(activity_obj);
+        if(NULL == activity_obj) {
+            return NULL;
+        }
+    }
+
+    lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+    if(NULL == obj)
+        return NULL;
+
+    lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_main_menu_switch_obj_ext_t));
+    if(NULL == ext)
+        return NULL;
+
+    lv_obj_t * title_label = lv_label_create(obj, NULL);
+    lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+    lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+    lv_obj_set_click(title_label, false);
+    lv_label_set_text_id(title_label, WATCH_TEXT_ID_MAIN_MENU_SWITCH);
+    lv_obj_align(title_label, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+       //
+    lv_obj_t * style_btn_0 = lv_btn_create(obj, NULL);
+    lv_obj_add_style(style_btn_0, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+    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;
+    lv_watch_obj_add_element(style_btn_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);
+
+    lv_obj_t* style_label_0 = lv_label_create(style_btn_0, NULL);
+    lv_obj_add_style(style_label_0, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+    lv_label_set_text_id(style_label_0, WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE);
+
+       //
+    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;
+    lv_watch_obj_add_element(style_btn_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);
+
+    lv_obj_t* style_label_1 = lv_label_create(style_btn_1, NULL);
+    lv_obj_add_style(style_label_1, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+    lv_label_set_text_id(style_label_1, WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST);
+    //lv_label_set_long_mode(label_reset, LV_LABEL_LONG_BREAK);
+    //lv_obj_set_width(label_reset, LV_HOR_RES * 2 / 3);
+
+       MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+       if(MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value)
+           lv_img_set_src(style_img_0, ICON_ITEM_SELECTED);
+       else if(MMI_MAIN_MENU_STYLE_LIST == style_value)
+           lv_img_set_src(style_img_1, ICON_ITEM_SELECTED);
+       
+       lv_obj_align(style_btn_0, obj, LV_ALIGN_CENTER, -20, -40);
+       lv_obj_align(style_btn_1, style_btn_0, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 40);
+
+    return obj;
+}
+
+void setting_main_menu_switch_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+    (void)btn;
+
+    if(LV_EVENT_CLICKED != event)
+               return;
+
+    lv_watch_png_cache_all_free();
+
+    lv_obj_t * obj = setting_main_menu_switch_create(NULL);
+    LV_ASSERT_MEM(obj);
+    if(obj == NULL)
+               return;
+}
+
+#else
+
+void * setting_main_menu_switch_ext_get(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SETTING_MAIN_MENU_SWITCH);
+       if(NULL == activity_obj) 
+               return NULL;
+       
+       lv_obj_t * watch_obj = NULL;
+       lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+       if(NULL != watch_obj) 
+       {
+               void * ext = lv_obj_get_ext_attr(watch_obj);
+               return ext;
+       }
+
+       return NULL;
+}
+
+static void setting_main_menu_switch_prepare_destory(lv_obj_t * activity_obj)
+{
+    lv_watch_png_cache_all_free();
+}
+
+static void setting_main_menu_switch_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+    if(event != LV_EVENT_CLICKED)
+               return;
+
+    lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)setting_main_menu_switch_ext_get();
+    if(NULL == ext)
+        return NULL;
+
+       uint8_t value = lv_watch_get_free_num(obj);
+       switch(value)
+       {
+               case 0:
+                       lv_checkbox_set_checked(ext->style0, true);
+                       lv_checkbox_set_checked(ext->style1, false);
+                       break;
+
+               case 1:
+                       lv_checkbox_set_checked(ext->style0, false);
+                       lv_checkbox_set_checked(ext->style1, true);
+                       break;
+
+               default:
+                       break;
+       }
+
+#if defined(__MMI_MAIN_MENU_ONE_PAGE_STYLE__) && defined(__MMI_MAIN_MENU_LIST_STYLE__)
+       mmi_main_menu_style_set((0 == value) ? MMI_MAIN_MENU_STYLE_ONE_PAGE : MMI_MAIN_MENU_STYLE_LIST);
+#else
+
+#endif
+
+    lv_watch_obj_cleanup(obj);
+       setting_main_menu_switch_prepare_destory(NULL);
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       lv_watch_go_home();
+    launcher_recreate();
+}
+
+static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj)
+{
+    if(NULL == activity_obj) {
+        lv_watch_activity_ext_t activity_ext;
+        memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+        activity_ext.actId = ACT_ID_SETTING_MAIN_MENU_SWITCH;
+        activity_ext.create = setting_main_menu_switch_create;
+        activity_ext.prepare_destory = setting_main_menu_switch_prepare_destory;
+        activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+        LV_ASSERT_MEM(activity_obj);
+        if(NULL == activity_obj) {
+            return NULL;
+        }
+    }
+
+    lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+    LV_ASSERT_MEM(obj);
+    if(NULL == obj)
+        return NULL;
+
+    lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_main_menu_switch_obj_ext_t));
+    if(NULL == ext)
+        return NULL;
+
+    lv_obj_t * content = lv_cont_create(obj, NULL);
+    lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj));
+    //lv_obj_add_style(content, LV_CONT_PART_MAIN, &lv_watch_style_transp);
+    lv_obj_set_style_local_bg_color(content, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+    lv_cont_set_layout(content, LV_LAYOUT_OFF);
+    lv_obj_set_click(content, false);
+    lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0);
+    //lv_watch_obj_add_element(content);
+
+    lv_obj_t * title_label = lv_label_create(content, NULL);
+    lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+    lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+    lv_obj_set_click(title_label, false);
+    lv_label_set_text_id(title_label, WATCH_TEXT_ID_MAIN_MENU_SWITCH);
+    lv_obj_align(title_label, content, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+    lv_obj_t * checkbox_0 = lv_checkbox_create(content, NULL);
+    lv_obj_clean_style_list(checkbox_0, LV_CHECKBOX_PART_BULLET);
+    lv_obj_add_style(checkbox_0, LV_CHECKBOX_PART_BULLET, &lv_watch_cb_styles);
+    lv_obj_set_event_cb(checkbox_0, setting_main_menu_switch_event_cb);
+       lv_obj_align(checkbox_0, content, LV_ALIGN_IN_TOP_MID, 0, 80);
+       lv_watch_set_free_num(checkbox_0, 0);
+       ext->style0 = checkbox_0;
+
+    lv_obj_t * checkbox_1 = lv_checkbox_create(content, checkbox_0);
+    lv_obj_set_event_cb(checkbox_1, setting_main_menu_switch_event_cb);
+       lv_obj_align(checkbox_1, checkbox_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 30);
+       lv_watch_set_free_num(checkbox_1, 1);
+       ext->style1 = checkbox_1;
+
+#if defined(__MMI_MAIN_MENU_ONE_PAGE_STYLE__) && defined(__MMI_MAIN_MENU_LIST_STYLE__)
+    lv_checkbox_set_text(ext->style0, lv_lang_get_text(WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE));
+    lv_checkbox_set_text(ext->style1, lv_lang_get_text(WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST));
+
+       MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+       if(MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value)
+       {
+               lv_checkbox_set_checked(ext->style0, true);
+               lv_checkbox_set_checked(ext->style1, false);
+       }
+       else
+       {
+               lv_checkbox_set_checked(ext->style0, false);
+               lv_checkbox_set_checked(ext->style1, true);
+       }
+#else
+
+#endif
+
+    return obj;
+}
+
+void setting_main_menu_switch_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+    (void)btn;
+
+    if(LV_EVENT_CLICKED != event)
+               return;
+
+    lv_watch_png_cache_all_free();
+
+    lv_obj_t * obj = setting_main_menu_switch_create(NULL);
+    LV_ASSERT_MEM(obj);
+    if(obj == NULL)
+               return;
+}
+#endif
+
+#endif
+
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
new file mode 100644 (file)
index 0000000..1cbeccb
--- /dev/null
@@ -0,0 +1,41 @@
+
+
+
+#ifndef __SETTING_MAIN_MENU_SWITCH_H__
+#define __SETTING_MAIN_MENU_SWITCH_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_MAIN_MENU_SWITCH_MENU__
+
+typedef struct
+{
+    lv_watch_obj_ext_t lv_watch_obj;
+    /*New data for this type */
+    lv_obj_t * style0;
+    lv_obj_t * style1;
+} lv_main_menu_switch_obj_ext_t;
+
+
+void setting_main_menu_switch_create_event_cb(lv_obj_t * btn, lv_event_t event);
+
+#endif
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
+
index f325634..7cc6dd6 100644 (file)
@@ -9,6 +9,7 @@
 static MMI_PROTOCOL_SMS_PARSE_STRUCT s_sms_parse_info[] = 
 {
        {"SETIP:", 6, mmi_protocol_sms_parse_set_ip},
+       {"GETIP", 5, mmi_protocol_sms_parse_get_ip},
        {"SETMD5KEY:", 10, mmi_protocol_sms_parse_set_md5_key},
        {"SETDEVICENAME:", 14, mmi_protocol_sms_parse_set_device_name},
        {"SETUPLOAD:", 10, mmi_protocol_sms_parse_set_upload},
@@ -147,6 +148,31 @@ bool mmi_protocol_sms_parse_set_ip(char * fixed_str, char * data, char * number)
        return true;
 }
 
+
+//GETIP //api.xcloudtech.com:9000
+bool mmi_protocol_sms_parse_get_ip(char * fixed_str, char * data, char * number)
+{
+       SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: num=%s\n", __FUNCTION__, __LINE__, number);
+       SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data);
+       
+       if(0 != strlen(data))
+       {
+               SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       char content_str[NV_WATCH_HOST_NAME_LEN_MAX + 16] = {0};
+       char * t_host_name = mmi_watch_host_name_get();
+       int t_host_port = mmi_watch_host_port_get();
+
+       sprintf(content_str, "GETIP:%s:%d", t_host_name, t_host_port);
+       
+       mmi_protocol_sms_parse_sms_reply(content_str, NULL, number, NULL);
+
+       return true;
+}
+
+
 // SETMD5KEY:xyz890
 static char s_md5_key[NV_PROTOCOL_MD5_KEY_LEN_MAX] = {0};
 static void mmi_protocol_sms_set_md5_key_cb(watch_app_adp_sms_send_result_type_t result)
index b5a60ba..1b9ded2 100644 (file)
@@ -41,6 +41,7 @@ typedef struct
 
 bool mmi_protocol_sms_content_parse(char * sms_content, char * sms_send_number);
 bool mmi_protocol_sms_parse_set_ip(char * fixed_str, char * data, char * number);
+bool mmi_protocol_sms_parse_get_ip(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_set_md5_key(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_set_device_name(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_set_upload(char * fixed_str, char * data, char * number);