#endif
ACT_ID_WATCH_COMMON,
+#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+ ACT_ID_VC_DIAL_BTN,
+#endif
#ifdef __MMI_WECHAT_SUPPORT__
ACT_ID_WECHAT_MAIN,
ACT_ID_WECHAT_RECORDING,
static MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0};
lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8)));
+static uint8_t s_vc_contact_selected_index = 0;
+
static char s_video_call_ticket[MMI_WATCH_VC_TICKET_LEN] = {0};
static char s_video_call_tokens[MMI_WATCH_VC_TOKENS_LEN] = {0};
void mmi_vc_ring_off_no_carrier(uint8_t isNoCarrier)
{
+/*
if((false == s_video_call_params.ring_off_timeout)
&& (1 == isNoCarrier)
&& (MMI_VIDEO_CALL_STATE_NONE == s_video_call_params.state))
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+*/
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_vc_dialing_timer_stop();
mmi_vc_connecting_timer_stop();
+/*
if(false == s_video_call_params.ring_off)
{
s_video_call_params.ring_off = true;
s_video_call_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, mmi_vc_ring_off_timeout_cb, NULL, 0);
}
}
+*/
switch(s_video_call_params.state)
{
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(TRUE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(TRUE);
void mmi_ui_msg_update_vc_call_incoming(void)
{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+
s_vc_call_ui = MMI_VC_UI_INCOMING;
mmi_vc_ui_create(NULL);
}
void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type, char * t_ticket, char * t_tokens)
{
+/*
if(true == mmi_active_screen_is_prohibit_interrupted()
|| true == is_rat_gsm()
#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
mmi_video_call_reject_req(TRUE);
return;
}
+*/
if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback))
{
}
}
+bool mmi_vc_call_action_incoming_no_permission(void)
+{
+ if(true == mmi_active_screen_is_prohibit_interrupted()
+ || true == is_rat_gsm()
+ #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+ || true == mmi_watch_is_in_do_not_disturb_time()
+ #endif
+ || true == mmi_video_call_is_in_call()
+ )
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ return true;
+ }
+
+ return false;
+}
+
static void mmi_vc_call_connecting_timeout_cb(void * para)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
void mmi_vc_call_action_dialing_ext(char * t_tokens, char * t_ticket)
{
+ if(MMI_VIDEO_CALL_STATE_DIALING != s_video_call_params.state)
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
+ }
+
memset(s_video_call_ticket, 0x0, MMI_WATCH_VC_TICKET_LEN);
strncpy(s_video_call_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1);
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VOICE);
}
else
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VIDEO);
}
else
}
}
-static void mmi_vc_dial_btn_screen(lv_obj_t * btn, lv_event_t e)
+static void mmi_vc_dial_btn_screen_prepare_destory(lv_obj_t * activity_obj)
{
- if(LV_EVENT_CLICKED != e)
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_watch_png_cache_all_free();
+}
+
+static lv_obj_t * mmi_vc_dial_btn_screen_create(lv_obj_t * activity_obj)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(activity_obj == NULL)
{
- return;
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_VC_DIAL_BTN;
+ activity_ext.create = mmi_vc_dial_btn_screen_create;
+ activity_ext.prepare_destory = mmi_vc_dial_btn_screen_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return NULL;
}
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
- lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK);
- uint8_t index = lv_watch_get_free_num(btn);
-
lv_obj_t * cont = lv_cont_create(obj, NULL);
lv_cont_set_fit(cont, LV_FIT_NONE);
lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); // lv_obj_get_width(obj), lv_obj_get_height(obj));
lv_obj_align(voicebtn, cont, LV_ALIGN_IN_TOP_MID, 0, 10);
#endif
lv_obj_set_event_cb(voicebtn, mmi_vc_voice_btn_action);
- lv_watch_set_free_num(voicebtn, index);
lv_obj_t * videobtn = lv_imgbtn_create(cont, NULL);
lv_imgbtn_set_src(videobtn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VIDEO_BTN);
lv_obj_align(videobtn, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -10);
#endif
lv_obj_set_event_cb(videobtn, mmi_vc_video_btn_action);
- lv_watch_set_free_num(videobtn, index);
+
+ return obj;
+}
+
+static void mmi_vc_contact_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ {
+ return;
+ }
+
+ s_vc_contact_selected_index = lv_watch_get_free_num(btn);
+ mmi_vc_dial_btn_screen_create(NULL);
}
static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj)
btn = lv_list_add_btn(list, NULL, NULL);
//lv_page_glue_obj(btn, true);
//lv_obj_add_protect(btn, LV_PROTECT_PRESS_LOST);
- lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
lv_watch_obj_add_element(btn);
lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
btn = lv_list_add_btn(list, NULL, NULL);
lv_btn_set_layout(btn, LV_LAYOUT_ROW_MID);
- //lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ //lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
//lv_watch_set_free_num(btn, i);
lv_obj_t * cont = lv_cont_create(btn, NULL);
lv_page_glue_obj(cont, true);
lv_watch_obj_add_element(cont);
lv_obj_set_click(cont, true);
- lv_obj_set_event_cb(cont, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(cont, mmi_vc_contact_event_cb);
lv_watch_set_free_num(cont, i);
label = lv_label_create(cont, NULL);
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(FALSE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(FALSE);
void mmi_ui_msg_update_vc_call_stop(void);
void mmi_vc_call_action_call_stop(void);
void mmi_ui_msg_update_vc_call_incoming(void);
+bool mmi_vc_call_action_incoming_no_permission(void);
int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri, char * t_ticket);
void mmi_video_call_hangup_req(BOOL bye);
static MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0};
lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8)));
+static uint8_t s_vc_contact_selected_index = 0;
+
static char s_vc_ticket[MMI_WATCH_VC_TICKET_LEN] = {0};
static char s_vc_appkey[MMI_WATCH_VC_APPKEY_LEN] = {0};
static char s_vc_secret[MMI_WATCH_VC_SECRET_LEN] = {0};
void mmi_vc_ring_off_no_carrier(uint8_t isNoCarrier)
{
+/*
if((false == s_video_call_params.ring_off_timeout)
&& (1 == isNoCarrier)
&& (MMI_VIDEO_CALL_STATE_NONE == s_video_call_params.state))
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+*/
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_vc_dialing_timer_stop();
mmi_vc_connecting_timer_stop();
+/*
if(false == s_video_call_params.ring_off)
{
s_video_call_params.ring_off = true;
s_video_call_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, mmi_vc_ring_off_timeout_cb, NULL, 0);
}
}
+*/
switch(s_video_call_params.state)
{
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(TRUE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(TRUE);
void mmi_ui_msg_update_vc_call_incoming(void)
{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+
s_vc_call_ui = MMI_VC_UI_INCOMING;
mmi_vc_ui_create(NULL);
}
char * t_ticket, char * t_appkey, char * t_secret,
char * t_tokens, char * t_uid)
{
+/*
if(true == mmi_active_screen_is_prohibit_interrupted()
|| true == is_rat_gsm()
#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
mmi_video_call_reject_req(TRUE);
return;
}
+*/
if(AUDIO_CTRL_PRIORITY_2 == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_2, mmi_vc_audio_ctrl_callback))
{
}
}
+bool mmi_vc_call_action_incoming_no_permission(void)
+{
+ if(true == mmi_active_screen_is_prohibit_interrupted()
+ || true == is_rat_gsm()
+ #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+ || true == mmi_watch_is_in_do_not_disturb_time()
+ #endif
+ || true == mmi_video_call_is_in_call()
+ )
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ return true;
+ }
+
+ return false;
+}
+
static void mmi_vc_call_connecting_timeout_cb(void * para)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
void mmi_vc_call_action_dialing_ext(char * t_ticket, char * t_appkey, char * t_secret, char * t_tokens, char * t_uid)
{
+ if(MMI_VIDEO_CALL_STATE_DIALING != s_video_call_params.state)
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
+ }
+
memset(s_vc_ticket, 0x0, MMI_WATCH_VC_TICKET_LEN);
strncpy(s_vc_ticket, t_ticket, MMI_WATCH_VC_TICKET_LEN - 1);
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VOICE);
}
else
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VIDEO);
}
else
}
}
-static void mmi_vc_dial_btn_screen(lv_obj_t * btn, lv_event_t e)
+static void mmi_vc_dial_btn_screen_prepare_destory(lv_obj_t * activity_obj)
{
- if(LV_EVENT_CLICKED != e)
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_watch_png_cache_all_free();
+}
+
+static lv_obj_t * mmi_vc_dial_btn_screen_create(lv_obj_t * activity_obj)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(activity_obj == NULL)
{
- return;
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_VC_DIAL_BTN;
+ activity_ext.create = mmi_vc_dial_btn_screen_create;
+ activity_ext.prepare_destory = mmi_vc_dial_btn_screen_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return NULL;
}
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
- lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK);
- uint8_t index = lv_watch_get_free_num(btn);
-
lv_obj_t * cont = lv_cont_create(obj, NULL);
lv_cont_set_fit(cont, LV_FIT_NONE);
lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); // lv_obj_get_width(obj), lv_obj_get_height(obj));
lv_obj_align(voicebtn, cont, LV_ALIGN_IN_TOP_MID, 0, 10);
#endif
lv_obj_set_event_cb(voicebtn, mmi_vc_voice_btn_action);
- lv_watch_set_free_num(voicebtn, index);
lv_obj_t * videobtn = lv_imgbtn_create(cont, NULL);
lv_imgbtn_set_src(videobtn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VIDEO_BTN);
lv_obj_align(videobtn, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -10);
#endif
lv_obj_set_event_cb(videobtn, mmi_vc_video_btn_action);
- lv_watch_set_free_num(videobtn, index);
+
+ return obj;
+}
+
+static void mmi_vc_contact_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ {
+ return;
+ }
+
+ s_vc_contact_selected_index = lv_watch_get_free_num(btn);
+ mmi_vc_dial_btn_screen_create(NULL);
}
static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj)
btn = lv_list_add_btn(list, NULL, NULL);
//lv_page_glue_obj(btn, true);
//lv_obj_add_protect(btn, LV_PROTECT_PRESS_LOST);
- lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
lv_watch_obj_add_element(btn);
lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
btn = lv_list_add_btn(list, NULL, NULL);
lv_btn_set_layout(btn, LV_LAYOUT_ROW_MID);
- //lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ //lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
//lv_watch_set_free_num(btn, i);
lv_obj_t * cont = lv_cont_create(btn, NULL);
lv_page_glue_obj(cont, true);
lv_watch_obj_add_element(cont);
lv_obj_set_click(cont, true);
- lv_obj_set_event_cb(cont, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(cont, mmi_vc_contact_event_cb);
lv_watch_set_free_num(cont, i);
label = lv_label_create(cont, NULL);
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(FALSE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(FALSE);
void mmi_ui_msg_update_vc_call_stop(void);
void mmi_vc_call_action_call_stop(void);
void mmi_ui_msg_update_vc_call_incoming(void);
+bool mmi_vc_call_action_incoming_no_permission(void);
int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri, char * t_ticket);
void mmi_video_call_hangup_req(BOOL bye);
static MMI_VIDEO_CALL_PARAMS_T s_video_call_params;
lv_color_t g_cbuf[canvas_width * canvas_heigh + 8] __attribute__((aligned(8)));
+static uint8_t s_vc_contact_selected_index = 0;
+
+
/**********************
* STATIC PROTOTYPES
**********************/
void mmi_vc_ring_off_no_carrier(uint8_t isNoCarrier)
{
+/*
if((false == s_video_call_params.ring_off_timeout)
&& (1 == isNoCarrier)
&& (MMI_VIDEO_CALL_STATE_NONE == s_video_call_params.state))
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+*/
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_vc_dialing_timer_stop();
mmi_vc_connecting_timer_stop();
+/*
if(false == s_video_call_params.ring_off)
{
s_video_call_params.ring_off = true;
s_video_call_params.ring_off_timer_id = Hal_Timer_Start(VOIP_RING_OFF_TIMER_LEN, mmi_vc_ring_off_timeout_cb, NULL, 0);
}
}
+*/
switch(s_video_call_params.state)
{
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(TRUE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(TRUE);
void mmi_vc_call_action_incoming(char * number, MODEM_VIDEO_CALL_TYPE type)
{
- if(true == mmi_active_screen_is_prohibit_interrupted()
- || true == is_rat_gsm()
- #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
- || true == mmi_watch_is_in_do_not_disturb_time()
- #endif
- || true == mmi_video_call_is_in_call()
- )
+ if(true == mmi_vc_call_action_incoming_no_permission())
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
}
}
+bool mmi_vc_call_action_incoming_no_permission(void)
+{
+ if(true == mmi_active_screen_is_prohibit_interrupted()
+ || true == is_rat_gsm()
+ #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+ || true == mmi_watch_is_in_do_not_disturb_time()
+ #endif
+ || true == mmi_video_call_is_in_call()
+ )
+ {
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ return true;
+ }
+
+ return false;
+}
+
static void mmi_vc_call_connecting_timeout_cb(void * para)
{
VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VOICE);
}
else
return;
}
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_VC_DIAL_BTN);
+ if(NULL != activity_obj)
+ {
+ lv_obj_del(activity_obj);
+ }
+ uint8_t index = s_vc_contact_selected_index;
+
if(true == mmi_vc_check_mo_permission())
{
- uint8_t index = lv_watch_get_free_num(btn);
-
mmi_vc_call_action_dialing(s_vc_contact.number[index], MODEM_VIDEO_CALL_TYPE_VIDEO);
}
else
}
}
-static void mmi_vc_dial_btn_screen(lv_obj_t * btn, lv_event_t e)
+static void mmi_vc_dial_btn_screen_prepare_destory(lv_obj_t * activity_obj)
{
- if(LV_EVENT_CLICKED != e)
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_watch_png_cache_all_free();
+}
+
+static lv_obj_t * mmi_vc_dial_btn_screen_create(lv_obj_t * activity_obj)
+{
+ VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(activity_obj == NULL)
{
- return;
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_VC_DIAL_BTN;
+ activity_ext.create = mmi_vc_dial_btn_screen_create;
+ activity_ext.prepare_destory = mmi_vc_dial_btn_screen_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return NULL;
}
- VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
- lv_obj_t * obj = lv_watch_get_activity_obj(ACT_ID_VOIP_PHONEBOOK);
- uint8_t index = lv_watch_get_free_num(btn);
-
lv_obj_t * cont = lv_cont_create(obj, NULL);
lv_cont_set_fit(cont, LV_FIT_NONE);
lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); // lv_obj_get_width(obj), lv_obj_get_height(obj));
lv_obj_align(voicebtn, cont, LV_ALIGN_IN_TOP_MID, 0, 10);
#endif
lv_obj_set_event_cb(voicebtn, mmi_vc_voice_btn_action);
- lv_watch_set_free_num(voicebtn, index);
lv_obj_t * videobtn = lv_imgbtn_create(cont, NULL);
lv_imgbtn_set_src(videobtn, LV_BTN_STATE_RELEASED, ICON_VIDEO_CALL_VIDEO_BTN);
lv_obj_align(videobtn, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -10);
#endif
lv_obj_set_event_cb(videobtn, mmi_vc_video_btn_action);
- lv_watch_set_free_num(videobtn, index);
+
+ return obj;
+}
+
+static void mmi_vc_contact_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ {
+ return;
+ }
+
+ s_vc_contact_selected_index = lv_watch_get_free_num(btn);
+ mmi_vc_dial_btn_screen_create(NULL);
}
static lv_obj_t * mmi_vc_contact_list_create(lv_obj_t * obj)
btn = lv_list_add_btn(list, NULL, NULL);
//lv_page_glue_obj(btn, true);
//lv_obj_add_protect(btn, LV_PROTECT_PRESS_LOST);
- lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
lv_watch_obj_add_element(btn);
lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
btn = lv_list_add_btn(list, NULL, NULL);
lv_btn_set_layout(btn, LV_LAYOUT_ROW_MID);
- //lv_obj_set_event_cb(btn, mmi_vc_dial_btn_screen);
+ //lv_obj_set_event_cb(btn, mmi_vc_contact_event_cb);
//lv_watch_set_free_num(btn, i);
lv_obj_t * cont = lv_cont_create(btn, NULL);
lv_page_glue_obj(cont, true);
lv_watch_obj_add_element(cont);
lv_obj_set_click(cont, true);
- lv_obj_set_event_cb(cont, mmi_vc_dial_btn_screen);
+ lv_obj_set_event_cb(cont, mmi_vc_contact_event_cb);
lv_watch_set_free_num(cont, i);
label = lv_label_create(cont, NULL);
// do noting
break;
- case MMI_VIDEO_CALL_STATE_CALLING:
- mmi_video_call_hangup_req(FALSE);
- break;
-
case MMI_VIDEO_CALL_STATE_INCOMING:
Hal_Tone_Play_End();
mmi_video_call_reject_req(FALSE);
void mmi_ui_msg_update_vc_call_stop(void);
void mmi_vc_call_action_call_stop(void);
void mmi_ui_msg_update_vc_call_incoming(void);
+bool mmi_vc_call_action_incoming_no_permission(void);
int8_t mmi_video_call_dial_req(MODEM_VIDEO_CALL_TYPE calltype, char * pContactUri);
void mmi_video_call_hangup_req(BOOL bye);
s_watch_location_data.gps_data.degree * 10,
s_watch_location_data.gps_data.altitude * 10,
s_watch_location_data.gps_data.satellite_num);
+
+ // for debug
+ uint8_t t_total = _lv_ll_get_len(&s_watch_location_mission_ll);
+ uint8_t t_counter = 0;
while(NULL != node)
{
_lv_ll_remove(&s_watch_location_mission_ll, node);
lv_mem_free(node);
node = pre_node;
+
+ // for debug
+ t_counter++;
}
+ LOCATION_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: total=%d,counter=%d\n", __FUNCTION__, __LINE__, t_total, t_counter);
}
void mmi_watch_location_gps_data_get(void)
return false;
}
- if(true == mmi_video_call_is_in_call())
+ if(true == mmi_vc_call_action_incoming_no_permission())
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_protocol_fzd_action_SERVER_VC_CALL_REQUEST(-1);
return false;
}
- if(true == mmi_video_call_is_in_call())
+ if(true == mmi_vc_call_action_incoming_no_permission())
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_protocol_fzd_action_SERVER_VC_CALL_REQUEST(-1);
void mmi_watch_search_screen_destroy(void)
{
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
//lv_watch_search_ext_t * ext = lv_obj_get_ext_attr(lv_watch_get_activity_obj(ACT_ID_WATCH_SEARCHING));
mmi_watch_search_timer_stop();
}
void mmi_watch_search_screen_event_cb(lv_obj_t * obj, lv_event_t e)
-{
- SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: event=%d\n", __FUNCTION__, __LINE__, e);
-
+{
if(LV_EVENT_CLICKED == e)
{
mmi_watch_search_screen_destroy(); // lv_watch_del_interface(ACT_ID_WATCH_SEARCHING);