call_log_write_nvm(nvm_call_log_list);
}
+void call_log_delete_date_call_log_info(uint_8 list_num)
+{
+ // read from nvm first
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+
+ memset(&nvm_call_log_list->info[list_num], 0, sizeof(nv_watch_call_log_info_t));
+ // move call log list
+ if(list_num!=NV_WATCH_MAX_CALL_LOG_NUM-1)
+ {
+ memmove(&nvm_call_log_list->info[list_num], &nvm_call_log_list->info[list_num+1], (NV_WATCH_MAX_CALL_LOG_NUM -list_num-1 ) * sizeof(nv_watch_call_log_info_t));
+ }
+ // write to nvm after updating
+ call_log_write_nvm(nvm_call_log_list);
+}
+
static void call_log_update_call_log_ll(uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
{
lv_call_log_obj_ext_t * ext = call_log_get_ext();
return list;
}
-static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+static uint8_t call_log_dispaly_falg=0;
+#ifdef coll_log_delete
+static void delete_log_destory(lv_obj_t * activity_obj)
{
- if(LV_EVENT_CLICKED != e)
- return;
+ lv_watch_png_cache_all_free();
+ call_log_dispaly_falg=0;
+}
- lv_call_log_obj_ext_t * ext = call_log_get_ext();
+
+static void delete_log_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event) return;
+ uint8_t index = lv_obj_get_user_data(btn).user_num;
+ call_log_delete_date_call_log_info(index);
+ call_log_ui_update();
+ lv_watch_obj_cleanup(btn);
+ delete_log_destory(NULL);
+}
+
+static void delete_log_cancel_btn_action(lv_obj_t * btn, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event) return;
+ lv_watch_obj_cleanup(btn);
+ delete_log_destory(NULL);
+}
+
+
+static lv_obj_t * delete_log_create(lv_obj_t * activity_obj,uint8_t list_num)
+{
+ if(activity_obj == NULL) {
+ lv_watch_activity_ext_t activity_ext;
+ memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+ activity_ext.actId = ACT_ID_SHUTDOWN;
+ activity_ext.create = NULL;
+ activity_ext.prepare_destory = delete_log_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(activity_obj == NULL) return NULL;
+ }
+ call_log_dispaly_falg=1;
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL) return NULL;
+ //lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE);
+
+ lv_obj_t * label = lv_label_create(obj, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_CONFIRM_DELETE);
+ lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -40);
+
+ lv_obj_t * btn = lv_imgbtn_create(obj, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_CONFIRM_BIG);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_CONFIRM_BIG);
+ lv_obj_set_event_cb(btn, delete_log_btn_action);
+ lv_watch_set_free_num(btn, list_num);
+ lv_watch_obj_add_element(btn);
+ lv_obj_align(btn, obj, LV_ALIGN_IN_BOTTOM_LEFT, 20+20, -20);
+
+
+ btn = lv_imgbtn_create(obj, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_CANCEL_BIG);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_CANCEL_BIG);
+ lv_obj_set_event_cb(btn, delete_log_cancel_btn_action);
+ lv_watch_obj_add_element(btn);
+ lv_obj_align(btn, obj, LV_ALIGN_IN_BOTTOM_RIGHT, -20-20, -20);
+
+ return obj;
+}
+
+#endif
+
+
+static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
LV_ASSERT_MEM(ext);
uint8_t index = lv_obj_get_user_data(btn).user_num;
call_log_number_info_t * node = NULL;
node = _lv_ll_get_head(ext->phone_number_list);
- while(node)
- {
- if(index == node->index) {
- printf("%s: mo start\n", __FUNCTION__);
- uint8_t length = strlen(node->phone_number);
- char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
- memset(number_mo, 0, length + 1);
- memcpy(number_mo, node->phone_number, length);
- phone_voice_call_req(number_mo);
- break;
- } else {
- node = _lv_ll_get_next(ext->phone_number_list, node);
+
+ #ifdef coll_log_delete
+ if(LV_EVENT_LONG_PRESSED==e)
+ {
+ while(node)
+ {
+ if(index == node->index) {
+ delete_log_create(NULL,node->index);
+ break;
+ } else {
+ node = _lv_ll_get_next(ext->phone_number_list, node);
+ }
}
+
+ }
+ #endif
+
+ if(LV_EVENT_CLICKED != e)
+ return;
+ if(call_log_dispaly_falg==0)
+ {
+ while(node)
+ {
+ if(index == node->index) {
+ printf("%s: mo start\n", __FUNCTION__);
+ uint8_t length = strlen(node->phone_number);
+ char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
+ memset(number_mo, 0, length + 1);
+ memcpy(number_mo, node->phone_number, length);
+ phone_voice_call_req(number_mo);
+ break;
+ } else {
+ node = _lv_ll_get_next(ext->phone_number_list, node);
+ }
+ }
+
}
+
+
}
static void call_log_content_create(lv_obj_t * list, uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
server_set_alarm[0].on_off = atoi(temp_ptr);
server_set_alarm[1].on_off = atoi(temp_ptr);
- server_set_alarm[0].repeat_bitmap = 0x01ff;
+ server_set_alarm[0].repeat_bitmap = 0x03ff;
server_set_alarm[1].repeat_bitmap = 0x01ff;
return result;
}
+static TIMER_ID t=NULL;
+static void alarm_timeout(void * para)
+{
+ mmi_protocol_fzd_action_HEARTBEAT();
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_STFREQ(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_STFREQ;
+
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ result = true;
+ mmi_protocol_fzd_send_without_data(action);
+ int off= atoi(strtok(next_buff,","));
+
+ int value_interval = atoi(strtok(NULL,"\0"));
+ printf("MMI_FZD_ACTION_SET_STFREQ %d,%d",off,value_interval);
+ if(t==NULL)
+ {
+ if(off!=0)
+ {
+ t= Hal_Timer_Start(value_interval *1000*60, alarm_timeout, NULL,1);
+ }
+ else
+ {
+ Hal_Timer_Stop(t);
+ }
+
+ }
+ else
+ {
+ if(off!=0)
+ {
+ Hal_Timer_Stop(t);
+ t= Hal_Timer_Start(value_interval *1000*60, alarm_timeout, NULL,1);
+ }
+ else
+ {
+ Hal_Timer_Stop(t);
+ }
+
+
+ }
+
+
+ return result;
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_SET_PEDO(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_PEDO;
+
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ mmi_protocol_fzd_send_without_data(action);
+ int off= atoi(next_buff);
+ if(off==0)
+ {
+ if(t!=NULL)
+ {
+ Hal_Timer_Stop(t);
+ }
+ else
+ {
+ t= Hal_Timer_Start(5 *1000*60, alarm_timeout, NULL,1);
+ }
+
+ }
+
+ return result;
+}
+
+bool mmi_protocol_fzd_parse_SERVER_SET_SLEEP_SW(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_SET_SLEEP_SW;
+
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+
+ return result;
+}
bool mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len)
{
bool result = false;
MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_WATCH_VC_CALL_RESPONSE;
- unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 64 + 8] = {0};
- unsigned int content_lenth = 0;
+ if(NULL == number) // hang up
+ {
+ result = mmi_protocol_fzd_send_without_data(action);
+ }
+ else // reject
+ {
+ unsigned char content_buff[NV_WATCH_VC_CONTACT_NUMBER_LEN + 64 + 8] = {0};
+ unsigned int content_lenth = 0;
sprintf(content_buff, ",%s,%s,%d", number, ticket, type);
content_lenth = strlen(content_buff);
- result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
-
+ result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
+ }
return result;
}
#endif