phoneNumberCAT1.append(reinterpret_cast<const char*>(number), number_len);\r
}\r
\r
+ /* 设置cat1临时来电号码显示 */\r
+ void tempSetoperateNumberCAT1END(const char *number, char number_len)\r
+ {\r
+ phoneNumberCAT1END.clear();\r
+ phoneNumberCAT1END.append(reinterpret_cast<const char*>(number), number_len);\r
+ }\r
+\r
std::string GettempPhoneNumber(void)\r
{\r
return phoneNumberCAT1;\r
}\r
\r
+ std::string GettempPhoneendNumber(void)\r
+ {\r
+ return phoneNumberCAT1END;\r
+ }\r
\r
\r
\r
std::string callDuration; // 通话时长\r
std::string phoneNumber; // 电话号码\r
std::string phoneNumberCAT1; // 4G电话号码\r
+ std::string phoneNumberCAT1END; // 4G挂断电话号码\r
std ::string call_name;\r
bool mulitplePhoneStatus{false}; // 判断是否多路通话界面\r
bool waitingStatus{false}; // 判断是否等待提醒界面\r
if (strcmp(view.GetViewId(), "microphoneChange") == 0) {
if (changeImage == 0) {
changeImage = 1;
- view_->GetCallingView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_CLOSE_IMAGE_PATH);
+ if(CallerLogModel::GetInstance()->GetCallStatus())
+ {
+ view_->GetCallingView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_CLOSE_IMAGE_PATH);
+
+ }
+ else
+ {
+ view_->GetScreenView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_CLOSE_IMAGE_PATH);
+ }
SetMicMute(true);
+
} else {
changeImage = 0;
- view_->GetCallingView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_OPEN_IMAGE_PATH);
+ if(CallerLogModel::GetInstance()->GetCallStatus())
+ {
+ view_->GetCallingView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_OPEN_IMAGE_PATH);
+
+ }
+ else
+ {
+ view_->GetScreenView()->GetImageMicrophone()->SetSrc(PNG_230_MICROPHONE_OPEN_IMAGE_PATH);
+ }
SetMicMute(false);
}
return true;
{
if (CallerLogModel::GetInstance()->GetCallSource() == CallerLogModel::CallSourceCat1)
{
-
+ cat1_handle_call_disconnected((char *)CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
cat1_call_hungup();
- cat1_handle_call_disconnected("callnumb");
+
}
else
{
{
if (CallerLogModel::GetInstance()->GetCallSource() == CallerLogModel::CallSourceCat1)
{
+ cat1_handle_call_disconnected((char *)CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
cat1_call_hungup();
return true;
//#endif
if (CallerLogModel::GetInstance()->GetCallSource() == CallerLogModel::CallSourceCat1)
{
+ cat1_handle_call_disconnected((char *)CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
cat1_call_hungup();
- cat1_handle_call_disconnected("callnumb");
+
return true;
//#endif
void initView_ext(int x,int y,int w,int h,int interval,const char *imagsrc);\r
void Set_onepage_address(const char *idstr);\r
void onepage_address_init(void);\r
+ bool get_container_one_page_is_Visible();\r
\r
private:\r
UIView::OnDragListener *draglistener{nullptr};\r
PhoneDirView(PhoneDirView &&) = delete;\r
PhoneDirView &operator=(PhoneDirView &&) = delete;\r
- UILabelButtonExt *button[20]={NULL};\r
- UILabelButtonExt *number_button[2]={NULL};\r
+ UILabelExt *label[20] ={nullptr};\r
+ UILabelButtonExt *button[20]={nullptr};\r
+ UILabelButtonExt *number_button[2]={nullptr};\r
UILabelExt * label1_phone_name=nullptr;\r
UIImageView *phone_name=nullptr;\r
+ UIImageView *phone_name_=nullptr;\r
+ \r
UILabelExt *label1_ =nullptr;\r
UIScrollView *container_ =nullptr;\r
UIScrollView *container_one_page=nullptr;\r
-\r
+ \r
UILabelExt *label1_no =nullptr;\r
UILabelExt *label2_no=nullptr;\r
UIImageView *image1_no=nullptr;\r
#define ADDRESS_BOOK_PATH "/user/userdata/addressbook.bin"
-#define NAME_LEN (10*3)
+#define NAME_LEN (30*3)
#define NUMBER_LEN 20
#define AREA_LEN (20*3)
#define OPERATOR_LEN (4*3)
//if(strview.GetViewId())\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PhoneDirPresenter----------%s ---",view.GetViewId());\r
\r
- if(strlen(view.GetViewId())<5)\r
+ if(PhoneDirView::GetInstance()->get_container_one_page_is_Visible()==false)\r
{\r
PhoneDirView::GetInstance()->Set_onepage_address(view.GetViewId());\r
Set_onepage_address=true;\r
button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, buttonconfig.Fontsize);\r
button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
\r
- button->SetImagePosition(25, 25);\r
+ button->SetImagePosition(20, 20);\r
return button;\r
}\r
\r
\r
for(int i=0;i<len;i++)\r
{\r
- buttonconfig.str=addressbook_t.Contact_t[i].name;\r
+ buttonconfig.str="";\r
+ label[i] = new UILabelExt();\r
+ label[i]->SetPosition(x+107, buttonconfig.y+33); // widget's left position and top position\r
+ label[i]->Resize(210, 35); // widget's width and height\r
+ label[i]->SetViewId("label1");// Set style\r
+ label[i]->SetStyle(STYLE_TEXT_FONT, 30);\r
+\r
+ // Set additional property\r
+ label[i]->SetText(addressbook_t.Contact_t[i].name);\r
+ label[i]->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+ label[i]->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);\r
+ label[i]->SetRollSpeed(70);\r
+ label[i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ label[i]->SetVisible(true);\r
+\r
//char buf[32]={0};\r
//sprintf(buf,"1",i);\r
//buf[0]=i+48;\r
buttonconfig.Fontsize=30;\r
buttonconfig.ALIGN=TEXT_ALIGNMENT_LEFT;\r
button[i] = SetTheButton_ext(buttonconfig, clickListener);\r
+\r
buttonconfig.y+=interval;\r
container_->Add(button[i]);\r
+ container_->Add(label[i]);\r
}\r
onepage_address_init();\r
/* -------------------------------------------------------------------------- */ \r
//container_one_page->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
container_one_page->SetViewId("container_one_page");\r
container_one_page->SetScrollBlankSize(35);\r
- container_one_page->SetReboundSize(35);\r
+ //container_one_page->SetReboundSize(50);\r
container_one_page->SetDirection(1);\r
}\r
\r
if (label1_phone_name == nullptr) {\r
label1_phone_name = new UILabelExt();\r
}\r
- label1_phone_name->SetPosition(40+20, 52); // widget's left position and top position\r
- label1_phone_name->Resize(466-80-40, 30); // widget's width and height\r
+ label1_phone_name->SetPosition(128, 52); // widget's left position and top position\r
+ label1_phone_name->Resize(210, 30); // widget's width and height\r
label1_phone_name->SetViewId("label1");// Set style\r
label1_phone_name->SetStyle(STYLE_TEXT_FONT, 30);\r
\r
for(int i=0;i<2;i++)\r
{\r
buttonconfig.str=addressbook_t.Contact_t[0].phone_number_t[0].number;\r
- char buf[32]={0};\r
- sprintf(buf,"%s",i);\r
- buttonconfig.ViewId =buf;\r
+ buttonconfig.ViewId =addressbook_t.Contact_t[0].phone_number_t[0].number;\r
buttonconfig.ImageSrc=nullptr;\r
buttonconfig.label_x=50;\r
buttonconfig.label_y=0;\r
}\r
container_one_page->SetOnDragListener(draglistener);\r
\r
+ if (phone_name_ == nullptr) {\r
+ phone_name_ = new UIImageView();\r
+ }\r
+ phone_name_->SetPosition(0, 520); // widget's left position and top position\r
+ phone_name_->Resize(466, 30); // widget's width and height\r
+ phone_name_->SetViewId("phone_sex");// Set style\r
+\r
+ container_one_page->Add(phone_name_);\r
+\r
+ phone_name_->SetVisible(true);\r
\r
\r
return;\r
\r
}\r
\r
+ bool PhoneDirView::get_container_one_page_is_Visible()\r
+ {\r
+ return container_one_page->IsVisible();\r
+ }\r
+\r
+\r
void PhoneDirView::Set_onepage_address(const char *idstr)\r
{\r
if(strcmp("container_one_page",idstr)==0)\r
return;\r
\r
}\r
-\r
- //container_->SetVisible(false);\r
+ container_one_page->ScrollBy(0, 100);\r
+ container_->SetVisible(false);\r
container_one_page->SetVisible(true);\r
uint8_t id= atoi(idstr);//idstr[16];\r
+ if(id>=20)\r
+ {\r
+ return;\r
+ }\r
+\r
if(addressbook_t.Contact_t[id].name) \r
label1_phone_name->SetText(addressbook_t.Contact_t[id].name);\r
\r
+ label1_phone_name->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+\r
phone_name->SetSrc(addressbook_t.Contact_t[0].sex ? image_boy:image_girl);\r
\r
int len =addressbook_t.Contact_t[id].phone_num;\r
}\r
}\r
\r
+ for(int i=0;i<addressbook_t.num;i++)\r
+ { \r
+ if( label[i])\r
+ {\r
+ delete label[i];\r
+ label[i] = nullptr;\r
+ }\r
+ }\r
+ \r
+\r
if(container_one_page)\r
{\r
container_one_page->RemoveAll();\r
delete phone_name;\r
phone_name = nullptr;\r
}\r
+ if(phone_name_)\r
+ {\r
+ delete phone_name_;\r
+ phone_name_ = nullptr;\r
+ }\r
+\r
+\r
+ \r
ImageCacheManager::GetInstance().UnloadSingleRes(PHONE_DIR_BOY_1);\r
\r
ImageCacheManager::GetInstance().UnloadSingleRes(PHONE_DIR_GIRL_1);\r
\r
RootView::GetInstance()->Add(container_);\r
if(container_one_page)\r
+ {\r
+ if (draglistener == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ container_one_page->SetOnDragListener(draglistener);\r
+ }\r
RootView::GetInstance()->Add(container_one_page);\r
\r
+ \r
+\r
// 增加按键监听\r
RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::PhoneDirPresenter::GetInstance();\r
RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
void set_address_number(char * number)
{
- memset(address_number,0,20);
+ memset(address_number,0,NUMBER_LEN);
memcpy_s(address_number,20,number,strlen(number));
}
// Prevent this from happening:
// When the incoming call view is displayed, the calling number is not set in CallerLogModel.
//uapi_hfp_disconnect();
+ if(NotificationManager::GetInstance()->GetWatchCallStatus() &&
+ (CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourceCat1))
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OPERATE_WATCH_REJECT %s!=%s??",call_data,CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+ CallerLogModel::GetInstance()->tempSetoperateNumberCAT1END(call_data,req->len);
+ cat1_phone_state_change_cb(OPERATE_WATCH_REJECT);
+ free(call_data);
+ return;
+ }
+
if((NotificationManager::GetInstance()->GetWatchCallStatus() &&
(CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourcePhone)) || uapi_dev_runtime_get_train_status())
{
CallerLogModel::GetInstance()->tempSetoperateNumberCAT1(call_data,req->len);
+ NotificationManager::GetInstance()->SetWatchCallStatus(true);
cat1_phone_state_change_cb(OPERATE_WAITING);
free(call_data);
-
+
return;
}
else
AlarmClockModel::GetInstance()->testPlayerStart("/music/ring/ring.mp3");
}
- CallerLogModel::GetInstance()->SetoperateNumber(call_data,req->len);
+ CallerLogModel::GetInstance()->SetoperateNumber(call_data,strlen(call_data));
CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
-
+ NotificationManager::GetInstance()->SetWatchCallStatus(true);
NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_ONE);
cat1_phone_state_change_cb(OPERATE_INCOMING);
- NotificationManager::GetInstance()->SetWatchCallStatus(true);
+
}
free(call_data);
{
unused(topic);
unused(req);
+
// just stop the notify
AlarmClockModel::GetInstance()->AlarmPlayerStop();
// AlarmViewEventListener::GetInstance()->CancelAlarmRing();
{
return;
}
- cat1_phone_state_change_cb(OPERATE_WATCH_FINISH);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetWatchCallStatus false");
+
+ if (req == NULL) return ;
+ char* call_data = (char*)malloc(req->len);
+ int32 ret = memcpy_s(call_data, req->len, req->data, req->len);
+ if(strcmp(CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),call_data)!=0 &&
+ CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourceCat1)
+ {
+
+
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OPERATE_WATCH_FINISH");
+ cat1_phone_state_change_cb(OPERATE_WATCH_FINISH);
+ }
+ //free(call_data);
+
}
// #define NOTIFY_ONE_MINUTE 60000
// #define NOTOFY_NO_OPERATE_TIME 35000
static uint8_t sos_dail_falg=0;
-static char*sos_dail_buf[]={"10085","10086","10084"};
#define SOS_TEST_FLAG 0
#define DIAL_TIME 30
-#define SOS_NUMBER_PATH "user/userdata/sos_number.bin"
-
-void SOS_number_save(void)
-{
- FILE *fp=fopen(SOS_NUMBER_PATH,"wb+");
- if(fp)
- {
- for(int i=0;i<3;i++)
- {
- char W_buf[20]={0};
- memcpy_s(W_buf,20,sos_dail_buf[i],osal_strlen((const char*)sos_dail_buf[i]));
- fwrite(W_buf,1,20,fp);
- }
- fclose(fp);
- }
-}
-
-void SOS_number_init(void)
-{
- FILE *fp=fopen(SOS_NUMBER_PATH,"rb+");
- if(fp)
- {
- for(int i=0;i<3;i++)
- {
- char r_buf[20]={0};
- fread(r_buf,1,20,fp);
- sos_dail_buf[i]=(char *)malloc(osal_strlen((const char*)r_buf));
- memcpy_s(sos_dail_buf[i],20,r_buf,osal_strlen((const char*)r_buf));
- }
- fclose(fp);
- }
-}
-
if(uapi_cat1_get_power_stat() && uapi_dev_runtime_get_cat1_simstat())
#endif
{
- calldial_event_sendmsg_toUI(sos_dail_buf[(sos_dail_falg)%3]);
+ calldial_event_sendmsg_toUI(OHOS:: get_sos_number(sos_dail_falg));
}
#if SOS_HFP_FALG
else if(uapi_hfp_connect_state())
{
- DialCall((unsigned char *)sos_dail_buf[sos_dail_falg],osal_strlen((const char*)sos_dail_buf[sos_dail_falg]));
+ DialCall((unsigned char *)OHOS::get_sos_number(sos_dail_falg),osal_strlen((const char*)OHOS::get_sos_number(sos_dail_falg)));
}
#endif
else
if(uapi_cat1_get_power_stat()|| uapi_dev_runtime_get_cat1_simstat())
#endif
{
- calldial_event_sendmsg_toUI(sos_dail_buf[0]);
+ calldial_event_sendmsg_toUI(OHOS::get_sos_number(0));
sos_dail_falg=1;
}
#if SOS_HFP_FALG
}
CallLogInfo info;
+
void calllog_info_init(uint8_t type)
{
strcpy(info.name,"xxx");
len=strlen(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),len+1);
}
- else
+ else if(type==1)
{
len=strlen(CallerLogModel::GetInstance()->GettempPhoneNumber().c_str());
memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GettempPhoneNumber().c_str(),len+1);
}
}
+void addcalllogend()
+{
+ CallLogInfo info;
+ strcpy(info.name,"xxx");
+ info.nameLen=3;
+ int len;
+ len=strlen(CallerLogModel::GetInstance()->GettempPhoneendNumber().c_str());
+ memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GettempPhoneendNumber().c_str(),len+1);
+ uint32_t tmptime=0;
+ uapi_get_timestampe_ss(&tmptime);
+ info.creationTime = tmptime;
+ info.callDurTime=0;
+ info.telLen=len;
+ info.calllogtype=CALL_CAT1;
+ info.status=CALL_MISSED;
+ AddToCallLog_CAT1(&info);
+
+ return;
+}
static int g_callOperate = OPERATE_NO_OPE;
static void WatchFinishHandle(void)
{
- if (NativeAbility::GetInstance().GetCurSliceId() == VIEW_INCOMING_CALL ||
- CallerLogModel::GetInstance()->GetNotifyFlag())
+ if (NotificationManager::GetInstance()->GetWatchCallStatus())
{
if(get_falg_SOS())
{
else if(uapi_dev_runtime_get_train_status())
{
addcalllog();
+ StatusReset();
}
else
{
- PhoneServiceScreenCtr(false);
+ uapi_cat1_stop_volte_voice();
addcalllog();
StatusReset();
PhoneServiceScreenCtr(true);
IncomingHandle();
calllog_info_init(0);
+
if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
{
ui_api_vibrate_once_func();
WatchFinishHandle();
return;
+ //手表不做任何处理仅记录
case OPERATE_WATCH_REJECT:
+ CustomEventPublish(TOPIC_EVENT_HFP_HINT,NULL,0);
+
+ addcalllogend();
+ return;
default:
break;
}
if(dail_falg>=DIAL_TIME)
{
cat1_call_hungup();
- cat1_handle_call_disconnected("callnumb");
+ cat1_handle_call_disconnected((char *)CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
}
}
WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 call connected %s\n",phonenum);
//声音处理
incomedcall_event_sendmsg_toUI(phonenum);
- uapi_cat1_start_volte_voice();
+ //uapi_cat1_start_volte_voice();
return 1;
}
WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 call disconnected %s\n",phonenum);
//TODO: 关闭声音
callend_event_sendmsg_toUI(phonenum);
- uapi_cat1_stop_volte_voice();
return 1;
}
void get_software_version_toCat1(void)//发送固件版本到cat1