--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_CUSTOM_HENGAI_USER_INFO__
+
+static nv_watch_hengai_user_info_t s_hengai_user_info = {0};
+
+static uint8_t s_gender_value = 0;
+static uint16_t s_birth_date_year = 0, s_birth_date_month = 0, s_birth_date_day = 0;
+static uint8_t s_height_hundred = 0, s_height_ten = 0, s_height_digit = 0;
+static uint8_t s_weight_hundred = 0, s_weight_ten = 0, s_weight_digit = 0;
+
+
+#ifdef __MMI_ZHSX_SUPPORT__
+static bool s_is_ACT_ID_HENGAI_USER_INFO = false;
+
+bool mmi_is_ACT_ID_HENGAI_USER_INFO(void)
+{
+ return s_is_ACT_ID_HENGAI_USER_INFO;
+}
+#endif
+
+
+void mmi_hengai_user_info_nv_read(void)
+{
+ uint32_t nv_data_length = sizeof(nv_watch_hengai_user_info_t);
+
+ if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HENGAI_USER_INFO, 0, nv_data_length, (uint8_t *)&s_hengai_user_info))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
+ }
+}
+
+static void mmi_hengai_user_info_nv_write(void)
+{
+ uint32_t nv_data_length = sizeof(nv_watch_hengai_user_info_t);
+
+ if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HENGAI_USER_INFO, 0, nv_data_length, (uint8_t *)&s_hengai_user_info))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
+ }
+}
+
+
+uint8_t mmi_hengai_user_info_gender_get(void)
+{
+ return (s_hengai_user_info.user_gender);
+}
+
+void mmi_hengai_user_info_gender_set(uint8_t user_gender)
+{
+ if(1 == user_gender || 2 == user_gender || 3 == user_gender)
+ {
+ s_hengai_user_info.user_gender = user_gender;
+ }
+}
+
+char * mmi_hengai_user_info_birth_date_get(void)
+{
+ return (s_hengai_user_info.user_birth_date);
+}
+
+void mmi_hengai_user_info_birth_date_set(char * user_birth_date)
+{
+ if(NULL == user_birth_date)
+ return ;
+
+ _lv_memcpy(s_hengai_user_info.user_birth_date, user_birth_date, strlen(user_birth_date));
+}
+
+uint16_t mmi_hengai_user_info_height_get(void)
+{
+ return (s_hengai_user_info.user_height);
+}
+
+void mmi_hengai_user_info_height_set(uint16_t user_height)
+{
+ s_hengai_user_info.user_height = user_height;
+}
+
+uint16_t mmi_hengai_user_info_weight_get(void)
+{
+ return (s_hengai_user_info.user_weight);
+}
+
+void mmi_hengai_user_info_weight_set(uint16_t user_weight)
+{
+ s_hengai_user_info.user_weight = user_weight;
+}
+
+
+void * mmi_hengai_user_info_setting_screen_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENGAI_USER_INFO);
+ if(activity_obj == NULL)
+ 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)
+ return NULL;
+
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+
+ return ext;
+}
+
+static void mmi_hengai_user_info_setting_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+
+#ifdef __MMI_ZHSX_SUPPORT__
+ s_is_ACT_ID_HENGAI_USER_INFO = false;
+#endif
+}
+
+static void mmi_hengai_user_info_setting_screen_clean(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENGAI_USER_INFO);
+ if(NULL != activity_obj)
+ {
+ mmi_hengai_user_info_setting_screen_prepare_destory(activity_obj);
+ lv_obj_del(activity_obj);
+ }
+}
+
+static void mmi_hengai_user_info_setting_ok_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+ if(NULL == ext)
+ return;
+
+ uint32_t free_num = lv_watch_get_free_num(obj);
+ if(1 == free_num)
+ {
+ // next
+ lv_obj_set_hidden(ext->cont, true);
+ lv_obj_set_hidden(ext->cont_gender, true);
+ lv_obj_set_hidden(ext->cont_birth_date, false);
+ lv_obj_set_hidden(ext->cont_height, true);
+ lv_obj_set_hidden(ext->cont_weight, true);
+ }
+ else if(2 == free_num)
+ {
+ // next
+ lv_obj_set_hidden(ext->cont, true);
+ lv_obj_set_hidden(ext->cont_gender, true);
+ lv_obj_set_hidden(ext->cont_birth_date, true);
+ lv_obj_set_hidden(ext->cont_height, false);
+ lv_obj_set_hidden(ext->cont_weight, true);
+ }
+ else if(3 == free_num)
+ {
+ // next
+ lv_obj_set_hidden(ext->cont, true);
+ lv_obj_set_hidden(ext->cont_gender, true);
+ lv_obj_set_hidden(ext->cont_birth_date, true);
+ lv_obj_set_hidden(ext->cont_height, true);
+ lv_obj_set_hidden(ext->cont_weight, false);
+ }
+ else
+ {
+ // set
+ char temp_str[16] = {0};
+ uint16_t temp_value = 0;
+
+ mmi_hengai_user_info_gender_set(s_gender_value + 1);
+
+ sprintf(temp_str, "%d-%02d-%02d", s_birth_date_year, s_birth_date_month, s_birth_date_day);
+ mmi_hengai_user_info_birth_date_set(temp_str);
+
+ temp_value = s_height_hundred * 100 + s_height_ten * 10 + s_height_digit;
+ mmi_hengai_user_info_height_set(temp_value);
+
+ temp_value = s_weight_hundred * 100 + s_weight_ten * 10 + s_weight_digit;
+ mmi_hengai_user_info_weight_set(temp_value);
+
+ // save
+ mmi_hengai_user_info_nv_write();
+
+ // clean
+ mmi_hengai_user_info_setting_screen_clean();
+ }
+}
+
+static lv_obj_t * mmi_hengai_user_info_setting_ok_btn_create(lv_obj_t * par)
+{
+ lv_obj_t * imgbtn = lv_imgbtn_create(par, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_BOTTOM_BTN_BG);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_BOTTOM_BTN_BG);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_ok_btn_event_cb);
+
+ lv_obj_t * btn_label = lv_label_create(imgbtn, NULL);
+ lv_obj_add_style(btn_label, LV_LABEL_PART_MAIN, &lv_watch_font32);
+ lv_label_set_align(btn_label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(btn_label, WATCH_TEXT_ID_OK);
+ lv_obj_align(btn_label, NULL, LV_ALIGN_CENTER, 0, 0);
+
+ return imgbtn;
+}
+
+
+// user gender
+void mmi_hengai_user_info_setting_gender_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+ if(NULL == ext)
+ return;
+
+ uint32_t text_id_arr[] = {WATCH_TEXT_ID_MALE, WATCH_TEXT_ID_FEMALE, WATCH_TEXT_ID_OTHER};
+ uint8_t arr_num = sizeof(text_id_arr) / sizeof(text_id_arr[0]);
+ uint32_t free_num = lv_watch_get_free_num(obj);
+ if(0 == free_num)
+ {
+ if(0 == s_gender_value)
+ s_gender_value = arr_num - 1;
+ else
+ s_gender_value--;
+ }
+ else
+ {
+ if((arr_num - 1) == s_gender_value)
+ s_gender_value = 0;
+ else
+ s_gender_value++;
+ }
+
+ lv_label_set_text_id(ext->label_gender, text_id_arr[s_gender_value]);
+}
+
+void mmi_hengai_user_info_setting_gender_cont(lv_hengai_user_info_ext_t * ext)
+{
+ s_gender_value = 0;
+
+ lv_obj_t * cont = ext->cont_gender;
+
+ lv_obj_t * label_title = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+ lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_title, WATCH_TEXT_ID_GENDER_SETTING);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+ lv_obj_set_click(label_title, false);
+
+
+ lv_obj_t * imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_L_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_L_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_LEFT_MID, 50, -10);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_gender_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 0);
+
+ lv_obj_t * label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+ lv_obj_set_width(label, 150);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_MALE);
+ lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -15);
+ ext->label_gender = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_R_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_R_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_RIGHT_MID, -50, -10);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_gender_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 1);
+
+ // ok
+ lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+ lv_watch_set_free_num(btn, 1);
+}
+
+
+//user birth date
+void mmi_hengai_user_info_setting_birth_date_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+ if(NULL == ext)
+ return;
+
+ lv_obj_t * label = NULL;
+ char temp_str[4] = {0};
+ //hal_rtc_t cur_time = {0};
+
+ //Hal_Rtc_Gettime(&cur_time);
+
+ uint32_t free_num = lv_watch_get_free_num(obj);
+ if(0 == free_num) // year up
+ {
+ //(cur_time.tm_year > s_birth_date_year) ? s_birth_date_year++ : NULL;
+ (2050 > s_birth_date_year) ? s_birth_date_year++ : NULL;
+ sprintf(temp_str, "%d", s_birth_date_year);
+ label = ext->label_year;
+ }
+ else if(1 == free_num) // year down
+ {
+ (1921 < s_birth_date_year) ? s_birth_date_year-- : NULL;
+ sprintf(temp_str, "%d", s_birth_date_year);
+ label = ext->label_year;
+ }
+ else if(2 == free_num) // month up
+ {
+ //if(cur_time.tm_year == s_birth_date_year)
+ // (cur_time.tm_mon > s_birth_date_month) ? s_birth_date_month++ : NULL;
+ //else
+ (12 > s_birth_date_month) ? s_birth_date_month++ : NULL;
+ sprintf(temp_str, "%d", s_birth_date_month);
+ label = ext->label_month;
+ }
+ else if(3 == free_num) // month down
+ {
+ (1 < s_birth_date_month) ? s_birth_date_month-- : NULL;
+ sprintf(temp_str, "%d", s_birth_date_month);
+ label = ext->label_month;
+ }
+ else if(4 == free_num) // day up
+ {
+ uint16_t day_max = 0;
+
+ //if(cur_time.tm_year == s_birth_date_year && cur_time.tm_mon == s_birth_date_month)
+ // day_max = cur_time.tm_mday;
+ //else
+ {
+ if(1 == s_birth_date_month || 3 == s_birth_date_month || 5 == s_birth_date_month || 7 == s_birth_date_month
+ || 8 == s_birth_date_month || 10 == s_birth_date_month || 12 == s_birth_date_month)
+ day_max = 31;
+ else if(2 == s_birth_date_month)
+ {
+ if((0 == s_birth_date_year%4) && (0 != s_birth_date_year%100) || (0 == s_birth_date_year%400))
+ day_max = 29;
+ else
+ day_max = 28;
+ }
+ else
+ day_max = 30;
+ }
+ (day_max > s_birth_date_day) ? s_birth_date_day++ : NULL;
+ sprintf(temp_str, "%d", s_birth_date_day);
+ label = ext->label_day;
+ }
+ else if(5 == free_num) // day down
+ {
+ (1 < s_birth_date_day) ? s_birth_date_day-- : NULL;
+ sprintf(temp_str, "%d", s_birth_date_day);
+ label = ext->label_day;
+ }
+
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text(label, temp_str);
+}
+
+void mmi_hengai_user_info_setting_birth_date_cont(lv_hengai_user_info_ext_t * ext)
+{
+ s_birth_date_year = 2000, s_birth_date_month = 1, s_birth_date_day = 1;
+
+ lv_obj_t * cont = ext->cont_birth_date;
+
+ lv_obj_t * label_title = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+ lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_title, WATCH_TEXT_ID_BIRTH_DATE);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+ lv_obj_set_click(label_title, false);
+
+
+ lv_obj_t * label = NULL;
+ lv_obj_t * imgbtn = NULL;
+ char temp_str[8] = {0};
+
+ // year
+ //label = lv_label_create(cont, NULL);
+ //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+ //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ //lv_label_set_text_id(label, WATCH_TEXT_ID_YEAR);
+ //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120);
+ //lv_obj_set_click(label, false);
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 55, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 0);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_birth_date_year);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_year = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 1);
+
+
+ // month
+ //label = lv_label_create(cont, NULL);
+ //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+ //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ //lv_label_set_text_id(label, WATCH_TEXT_ID_MONTH);
+ //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 200, 100);
+ //lv_obj_set_click(label, false);
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 5, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 2);
+
+ label = lv_label_create(cont, NULL);
+
+ lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+ lv_obj_set_size(label, 80, 65);
+
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_birth_date_month);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_month = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 3);
+
+
+ // day
+ //label = lv_label_create(cont, NULL);
+ //lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24);
+ //lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ //lv_label_set_text_id(label, WATCH_TEXT_ID_DATE);
+ //lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 380, 100);
+ //lv_obj_set_click(label, false);
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 4);
+
+ label = lv_label_create(cont, NULL);
+
+ lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
+ lv_obj_set_size(label, 80, 65);
+
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_birth_date_day);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_day = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_birth_date_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 5);
+
+
+ lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+ lv_watch_set_free_num(btn, 2);
+}
+
+
+// user height
+void mmi_hengai_user_info_setting_height_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+ if(NULL == ext)
+ return;
+
+ lv_obj_t * label = NULL;
+ char temp_str[4] = {0};
+
+ uint32_t free_num = lv_watch_get_free_num(obj);
+ if(0 == free_num) // hundred up
+ {
+ (2 > s_height_hundred) ? s_height_hundred++ : NULL;
+ sprintf(temp_str, "%d", s_height_hundred);
+ label = ext->label_height_hundred;
+ }
+ else if(1 == free_num) // hundred down
+ {
+ (0 < s_height_hundred) ? s_height_hundred-- : NULL;
+ sprintf(temp_str, "%d", s_height_hundred);
+ label = ext->label_height_hundred;
+ }
+ else if(2 == free_num) // ten up
+ {
+ (9 > s_height_ten) ? s_height_ten++ : NULL;
+ sprintf(temp_str, "%d", s_height_ten);
+ label = ext->label_height_ten;
+ }
+ else if(3 == free_num) // ten down
+ {
+ (0 < s_height_ten) ? s_height_ten-- : NULL;
+ sprintf(temp_str, "%d", s_height_ten);
+ label = ext->label_height_ten;
+ }
+ else if(4 == free_num) // digit up
+ {
+ (9 > s_height_digit) ? s_height_digit++ : NULL;
+ sprintf(temp_str, "%d", s_height_digit);
+ label = ext->label_height_digit;
+ }
+ else if(5 == free_num) // digit down
+ {
+ (0 < s_height_digit) ? s_height_digit-- : NULL;
+ sprintf(temp_str, "%d", s_height_digit);
+ label = ext->label_height_digit;
+ }
+
+ lv_label_set_text(label, temp_str);
+}
+
+void mmi_hengai_user_info_setting_height_cont(lv_hengai_user_info_ext_t * ext)
+{
+ s_height_hundred = 1, s_height_ten = 6, s_height_digit = 5;
+
+ lv_obj_t * cont = ext->cont_height;
+
+ lv_obj_t * label_title = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+ lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_title, WATCH_TEXT_ID_HEIGHT_SETTING);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+ lv_obj_set_click(label_title, false);
+
+
+ lv_obj_t * label = NULL;
+ lv_obj_t * imgbtn = NULL;
+ char temp_str[4] = {0};
+
+ // hundred
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 0);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_height_hundred);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_height_hundred = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 1);
+
+
+ // ten
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 0, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 2);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_height_ten);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_height_ten = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 3);
+
+
+ // digit
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 4);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_height_digit);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_height_digit = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_height_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 5);
+
+
+ lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+ lv_watch_set_free_num(btn, 3);
+}
+
+// user weight
+void mmi_hengai_user_info_setting_weight_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)mmi_hengai_user_info_setting_screen_ext_get();
+ if(NULL == ext)
+ return;
+
+ lv_obj_t * label = NULL;
+ char temp_str[4] = {0};
+
+ uint32_t free_num = lv_watch_get_free_num(obj);
+ if(0 == free_num) // hundred up
+ {
+ (2 > s_weight_hundred) ? s_weight_hundred++ : NULL;
+ sprintf(temp_str, "%d", s_weight_hundred);
+ label = ext->label_weight_hundred;
+ }
+ else if(1 == free_num) // hundred down
+ {
+ (0 < s_weight_hundred) ? s_weight_hundred-- : NULL;
+ sprintf(temp_str, "%d", s_weight_hundred);
+ label = ext->label_weight_hundred;
+ }
+ else if(2 == free_num) // ten up
+ {
+ (9 > s_weight_ten) ? s_weight_ten++ : NULL;
+ sprintf(temp_str, "%d", s_weight_ten);
+ label = ext->label_weight_ten;
+ }
+ else if(3 == free_num) // ten down
+ {
+ (0 < s_weight_ten) ? s_weight_ten-- : NULL;
+ sprintf(temp_str, "%d", s_weight_ten);
+ label = ext->label_weight_ten;
+ }
+ else if(4 == free_num) // digit up
+ {
+ (9 > s_weight_digit) ? s_weight_digit++ : NULL;
+ sprintf(temp_str, "%d", s_weight_digit);
+ label = ext->label_weight_digit;
+ }
+ else if(5 == free_num) // digit down
+ {
+ (0 < s_weight_digit) ? s_weight_digit-- : NULL;
+ sprintf(temp_str, "%d", s_weight_digit);
+ label = ext->label_weight_digit;
+ }
+
+ lv_label_set_text(label, temp_str);
+}
+void mmi_hengai_user_info_setting_weight_cont(lv_hengai_user_info_ext_t * ext)
+{
+ s_weight_hundred = 0, s_weight_ten = 6, s_weight_digit = 5;
+
+ lv_obj_t * cont = ext->cont_weight;
+
+ lv_obj_t * label_title = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32);
+ lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_title, WATCH_TEXT_ID_WEIGHT_SETTING);
+ lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48);
+ lv_obj_set_click(label_title, false);
+
+
+ lv_obj_t * label = NULL;
+ lv_obj_t * imgbtn = NULL;
+ char temp_str[4] = {0};
+
+ // hundred
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_LEFT, 50, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 0);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_weight_hundred);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_weight_hundred = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 1);
+
+
+ // ten
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_MID, 0, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 2);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_weight_ten);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_weight_ten = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 3);
+
+
+ // digit
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW);
+ lv_obj_align(imgbtn, NULL, LV_ALIGN_IN_TOP_RIGHT, -50, 120); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 4);
+
+ label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ sprintf(temp_str, "%d", s_weight_digit);
+ lv_label_set_text(label, temp_str);
+ lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8);
+ lv_obj_set_click(label, false);
+ ext->label_weight_digit = label;
+
+ imgbtn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW);
+ lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20);
+ lv_obj_set_event_cb(imgbtn, mmi_hengai_user_info_setting_weight_btn_event_cb);
+ lv_watch_set_free_num(imgbtn, 5);
+
+
+ lv_obj_t * btn = mmi_hengai_user_info_setting_ok_btn_create(cont);
+ lv_watch_set_free_num(btn, 4);
+}
+
+
+lv_obj_t * mmi_hengai_user_info_setting_screen_create(lv_obj_t * activity_obj)
+{
+ if(activity_obj == NULL)
+ {
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_HENGAI_USER_INFO;
+ activity_ext.create = mmi_hengai_user_info_setting_screen_create;
+ activity_ext.prepare_destory = mmi_hengai_user_info_setting_screen_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return NULL;
+ }
+
+#ifdef __MMI_ZHSX_SUPPORT__
+ s_is_ACT_ID_HENGAI_USER_INFO = true;
+#endif
+
+ lv_obj_t * watch_obj = lv_watch_obj_create(activity_obj);
+ if(NULL == watch_obj)
+ return NULL;
+ lv_watch_obj_set_anim_mode(watch_obj, LV_WATCH_ANIM_NO);
+
+ lv_hengai_user_info_ext_t * ext = (lv_hengai_user_info_ext_t *)lv_obj_allocate_ext_attr(watch_obj, sizeof(lv_hengai_user_info_ext_t));
+ if(NULL == ext)
+ return NULL;
+
+ ext->cont = NULL;
+ ext->cont_gender = NULL;
+ ext->label_gender = NULL;
+ ext->cont_birth_date = NULL;
+ ext->label_year = NULL;
+ ext->label_month = NULL;
+ ext->label_day = NULL;
+ ext->cont_height = NULL;
+ ext->label_height_hundred = NULL;
+ ext->label_height_ten = NULL;
+ ext->label_height_digit = NULL;
+ ext->cont_weight = NULL;
+ ext->label_weight_hundred = NULL;
+ ext->label_weight_ten = NULL;
+ ext->label_weight_digit = NULL;
+
+ lv_obj_t * cont = NULL;
+ cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ //lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp_tight);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+ ext->cont = cont;
+
+ cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+ ext->cont_gender = cont;
+ mmi_hengai_user_info_setting_gender_cont(ext);
+
+ cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+ ext->cont_birth_date = cont;
+ mmi_hengai_user_info_setting_birth_date_cont(ext);
+
+ cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+ ext->cont_height = cont;
+ mmi_hengai_user_info_setting_height_cont(ext);
+
+ cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_click(cont, false);
+ ext->cont_weight = cont;
+ mmi_hengai_user_info_setting_weight_cont(ext);
+
+
+ lv_obj_set_hidden(ext->cont, true);
+ lv_obj_set_hidden(ext->cont_gender, false);
+ lv_obj_set_hidden(ext->cont_birth_date, true);
+ lv_obj_set_hidden(ext->cont_height, true);
+ lv_obj_set_hidden(ext->cont_weight, true);
+
+ //
+ //watch_set_suspend_enable(false, ACT_ID_HENG_AI_BP_CALIBRATE, 0);
+
+ return watch_obj;
+}
+
+uint8_t mmi_hengai_user_info_setting_enter(void)
+{
+ uint8_t user_gender = mmi_hengai_user_info_gender_get();
+ char * user_birth_date = mmi_hengai_user_info_birth_date_get();
+ uint16_t user_height = mmi_hengai_user_info_height_get();
+ uint16_t user_weight = mmi_hengai_user_info_weight_get();
+
+ if((0 != user_gender) && (0 != strlen(user_birth_date)) && (0 != user_height) && (0 != user_weight))
+ {
+ return 0;
+ }
+
+ mmi_hengai_user_info_setting_screen_create(NULL);
+
+ return 1;
+}
+
+#endif
+