// bts_feature.bt_auto_reconnect_closed = 0;\r
// ret = bts_set_features(&bts_feature);\r
// WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = %u", ret);\r
- gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
- // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
- ret = gap_ble_set_sec_param(&sec_param);\r
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
+ // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
+ // // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
+ // ret = gap_ble_set_sec_param(&sec_param);\r
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
+\r
+ ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_br_set_bt_scan_mode ret = %u", ret);\r
/**开始ble广播*/\r
- custom_ble_service_start();\r
+ // custom_ble_service_start();\r
}\r
}\r
\r
errcode_t ret;\r
\r
/**停止Ble广播,断开链接,清除协议缓存*/\r
- custom_ble_service_stop();\r
+ // custom_ble_service_stop();\r
\r
/** 停止BR广播 */\r
+\r
ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
+\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_br_set_bt_scan_mode ret = %u", ret);\r
\r
/**TODO: 停止BR扫描**/\r
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
static int g_retNum{0}; // 电话个数
static int g_volumeLocal{0}; // 错误码返回
osTimerId_t g_startCounting = nullptr; // 定时器
+//
+osTimerId_t g_shake = nullptr; // 循环震动定时器
+
static constexpr uint64_t MS_ONE_SECONDS = 1000;
static PhoneCallInfo callList[MULTI_CALL_MAX_NUME]{};
// 电话优先级标志位
return;
}
+
+static void DisshakeTimer()
+{
+ if (g_shake != nullptr) {
+ osStatus_t ret = osTimerDelete(g_shake);
+ if (ret != osOK) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScanTimerCallback osTimerDelete failed, ret = %lx!!", ret);
+ return;
+ }
+ g_shake = nullptr;
+ }
+}
+
/* 关闭定时器 */
static void DisableCallingTimer()
{
CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::callleisure);
NotificationManager::GetInstance()->SetWatchCallStatus(false);
CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourcePhone);
-
- PhoneServiceScreenCtr(false);
+ DisshakeTimer();
// If the call is handling in the notification, the slice is not switched
if (!CallerLogModel::GetInstance()->GetNotifyFlag())
{
+ PhoneServiceScreenCtr(false);
if(NativeAbility::GetInstance().GetCurSliceId() == VIEW_INCOMING_CALL)
{
- //NativeAbility::GetInstance().ChangeSlice(NativeAbility::GetInstance().GetPreSliceId());
NativeAbility::GetInstance().Back_CountSlice_make_phone();
}
SetText(CallerLogModel::GetInstance()->DisplayCallDuration().c_str());
}
+static void snakeCallback(int data)
+{
+ if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
+ {
+ ui_api_vibrate_once_func();
+ }
+}
+
+
static void CallTimerCallback(int data)
{
GraphicService::GetInstance()->PostGraphicEvent(std::bind(CallTimerCallbackProc, data));
}
+
+
/* 开启定时器 */
static void InitCallingTimer()
{
}
}
+static void InitshakeTimer()
+{
+ if (g_shake != nullptr) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallerLogModel::CallerTimer already exists!!");
+ return;
+ }
+ g_shake = osTimerNew((osTimerFunc_t)snakeCallback, osTimerPeriodic, nullptr, nullptr);
+ if (g_shake == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallerLogModel::CallerTimer osTimerNew failed!!");
+ return;
+ }
+ int tick = osMs2Tick(MS_ONE_SECONDS);
+ osStatus_t retTimer = osTimerStart(g_shake, tick);
+ if (retTimer != osOK) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallerLogModel::CallerTimer osTimerStart failed, ret = %lx!!", retTimer);
+ if (g_shake != nullptr) {
+ retTimer = osTimerDelete(g_shake);
+ if (retTimer != osOK) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallerLogModel::osTimerDelete failed, ret = %lx!!", retTimer);
+ return;
+ }
+ g_shake = nullptr;
+ }
+ return;
+ }
+}
+
+
+
/* 判断是否有电话,判断优先级 */
bool FindCallListInfoAndSetPriorityNumber()
{
{
// If the call is handling in the notification, the slice is not switched
if (lastStatus != OPERATE_PHONE_ACTIVE) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_INCOMING_CALL, TransitionType::TRANSITION_INVALID,
+ NativeAbility::GetInstance().ChangeSlice(VIEW_INCOMING_CALL, TransitionType::TRANSITION_INVALID,
PRIORITY_ONE);
}
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[UsingPhoneChangeStatusCallback] operate:%d, callNUm:%d, call flow:%d",
phoneCall->operate, GetCurrCallNum(), IsCompleteCallFlow());
+ DisshakeTimer();
+
if (phoneCall->operate == OPERATE_WATCH_FINISH && GetCurrCallNum() == 0) {
g_callOperate = OPERATE_WATCH_FINISH;
WatchFinishHandle();
case OPERATE_INCOMING:
// 显示电话呼入
{
- IncomingHandle();
+ InitshakeTimer();
+
+ IncomingHandle();
+
}
break;
case OPERATE_WAITING:
case BluetoothServiceOptionsView::CONNECT_HFP:
if(uapi_hfp_connect_state())
{
- BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
+ //BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
connect_state=true;
}
break;
case BluetoothServiceOptionsView::DISCONNECT_HFP:
if(!uapi_hfp_connect_state())
{
- BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
+ //BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
connect_state=true;
}
break;
case BluetoothServiceOptionsView::CONNECT_A2DP:
if(uapi_a2dp_snk_get_device_connect_state())
{
- BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
+ //BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
connect_state=true;
}
break;
case BluetoothServiceOptionsView::DISCONNECT_A2DP:
if(!uapi_a2dp_snk_get_device_connect_state())
{
- BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
+ //BluetoothServiceOptionsView::GetInstance()->show_connecting_view(false);
connect_state=true;
}
break;
imageperson->SetTouchable(true);
imageperson->SetViewId("headset");
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
uint8_t sex;
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),&sex))
{
TITLE_LABEL_DEFAULT_HEIGHT);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
callerDisplay->SetText(name_buf);
imageperson->SetViewId("headset");
group->Add(imageperson);
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
uint8_t sex;
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),&sex))
{
289, 40);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
callerDisplay->SetText(name_buf);
dialingId->SetPosition(LABEL_ADRESS_POSITION_X, LABEL_ADRESS_POSITION_Y,
VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT);
dialingId->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+
dialingId->SetText(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+
dialingId->SetAlign(TEXT_ALIGNMENT_CENTER);
dialingId->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_AIALING_SIZE);
dialingId->SetTextColor(Color::White());
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
imageperson->SetTouchable(true);
imageperson->SetViewId("headset");
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
uint8_t sex;
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),&sex))
{
TITLE_LABEL_DEFAULT_HEIGHT);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
callerDisplay->SetText(name_buf);
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)
button->SetText(buttonconfig.str);
button->SetAlign(TEXT_ALIGNMENT_LEFT);
- button->SetLabelPosition(50,-23);
- button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 35);
+ button->SetLabelPosition(50,30);
+ button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 23);
+ button->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));
button->SetStyleForState(STYLE_BACKGROUND_COLOR,0xff191919, UIButton::PRESSED);
return button;
void MainPhoneView:: NewcalllogButtonExtupdata(CallLogInfo *data, uint8_t index,uint8_t i)
{
+ return;
+
if(index==0)
{
//SwipeViewItem[i][0]
char *txt;
char buf[20]={0};
sprintf_s(buf,20,"%s",(const char*)(data)->tel);
- char name[64]={0};
+ char name[NAME_LEN+1]={0};
if(get_phone_addrss_name(name,buf,NULL))
{
txt=name;
buttonconfig.h = 104;
buttonconfig.ViewId="xxxx";
- char buf[20]={0};
- sprintf_s(buf,20,"%s",(const char*)(data)->tel);
- char name[64]={0};
- if(get_phone_addrss_name(name,buf,NULL))
- {
- buttonconfig.str=name;
- }else
- {
- buttonconfig.str=buf;
- }
+
+ time_t currtime;
+ struct tm *timeinfo;
+ currtime=(data)->creationTime;
+ timeinfo = localtime(&currtime);
+ char time_buf[20]={0};
+
+
+ sprintf_s(time_buf,20 ,"%d-%d-%d %d:%02d", timeinfo->tm_year + 1900,timeinfo->tm_mon + 1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min);
+ buttonconfig.str=time_buf;
+
buttonconfig.ViewId=(const char*)(data)->tel;
button_calllog[i]=SetTheButton_ext(buttonconfig,ButtonOnclickListen);
if(button_calllog[i]==nullptr)
TempGroup_->Add(button_calllog[i]);
+
+
+
TelephonyInitInterface::LabelParams labelParam = {
- .x = 50,
- .y = 60,
- .width = 160,
- .height = 35,
- .fontSize = 23,
+ .x = 49,
+ .y = 19,
+ .width = 280,
+ .height = 41,
+ .fontSize = 35,
.lineHeigh = 0,
- .text = "2023-1-23 14:22",
- .lineBreakMode = UILabel::LINE_BREAK_ADAPT,
+ .text = "xxx",
+ .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
};
- time_t currtime;
- struct tm *timeinfo;
- currtime=(data)->creationTime;
- timeinfo = localtime(&currtime);
- char time_buf[20]={0};
-
- labelParam.x=50,
- labelParam.text=time_buf;
- labelParam.fontSize = 23;
- sprintf_s(time_buf,20 ,"%d-%d-%d %d:%02d", timeinfo->tm_year + 1900,timeinfo->tm_mon + 1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min);
-
-
- button_calllog_time[i] = TelephonyInitInterface::LabelViewInit(labelParam,Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));
+ char buf[20]={0};
+ sprintf_s(buf,20,"%s",(const char*)(data)->tel);
+ char name[NAME_LEN+1]={0};
+ if(get_phone_addrss_name(name,buf,NULL))
+ {
+ labelParam.text=name;
+ }
+ else
+ {
+ labelParam.text=buf;
+ }
+ button_calllog_time[i] = TelephonyInitInterface::LabelViewInit(labelParam,Color::GetColorFromRGBA(0xEE, 0xEE, 0xEE, 0xEE));
if (button_calllog_time[i] == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::MainPhoneViewTitleLabel new fail!");
labelParam.fontSize=18;
labelParam.x=223+30;
+ labelParam.y=60;
labelParam.lineBreakMode=UILabel::LINE_BREAK_MARQUEE;
labelParam.width=72;
labelParam.height=21;
//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
label->SetText(params.text); // 内容
label->SetTextColor(color);
label->SetLineBreakMode(params.lineBreakMode); // 断行模式
- // label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); // 设置此文本的对齐模式
+ label->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER); // 设置此文本的对齐模式
label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, params.fontSize); // 设置标签的字体
return label;
//if(strcmp(phone,addressbook_t.Contact_t[i].phone_number_t[0].number)==0)
if(addrss_strcmp((char *)phone,addressbook_t.Contact_t[i].phone_number_t[0].number))
{
- strcpy(name,addressbook_t.Contact_t[i].name);
+ strcpy_s(name,NAME_LEN+1,addressbook_t.Contact_t[i].name);
if(sex!=NULL)
*sex=addressbook_t.Contact_t[i].sex;
return true;
//if(strcmp(phone,addressbook_t.Contact_t[i].phone_number_t[1].number)==0)
if(addrss_strcmp((char *)phone,addressbook_t.Contact_t[i].phone_number_t[1].number))
{
- strcpy(name,addressbook_t.Contact_t[i].name);
+ strcpy_s(name,NAME_LEN+1,addressbook_t.Contact_t[i].name);
if(sex!=NULL)
*sex=addressbook_t.Contact_t[i].sex;
return true;
}
}
}
- strcpy(name,"未知");
+ strcpy_s(name,NAME_LEN+1,"未知");
return false;
}
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));
}
return data_arryJSON;
}
+//通过时间戳获取训练数据
+cJSON* ble_get_Trainingdata_by_timetamp(uint32_t timetamp)
+{
+ struct Trainingdata * data=NULL;
+ int i=0;
+
+ time_t currtime=timetamp;
+ struct tm *timeinfo;
+ timeinfo = localtime(&currtime);
+ int y=timeinfo->tm_year+ 1900;
+ int m=timeinfo->tm_mon+1;
+ int d=timeinfo->tm_mday;
+ int h=timeinfo->tm_hour;
+ int min=timeinfo->tm_min;
+
+ char timeday[24]={0};
+ sprintf_s(timeday,24,"%d_%02d_%02d",y,m,d);
+
+ printf("%s\r\n",timeday);
+
+ while(data=read_Trainingdata_data(timeday, i))
+ {
+ if(data!=NULL)
+ {
+ printf("%d,%d\r\n",timetamp,data->st);
+ int time_error= timetamp>data->st ? timetamp-data->st:data->st-timetamp;
+ if(time_error<=2)
+ {
+ cJSON* itemJSON = cJSON_CreateObject();
+
+ cJSON_AddNumberToObject(itemJSON,"src",data->src);
+ cJSON_AddNumberToObject(itemJSON,"ty",data->ty);
+ cJSON_AddNumberToObject(itemJSON,"st",data->st);
+ cJSON_AddNumberToObject(itemJSON,"sp",data->sp);
+ cJSON_AddNumberToObject(itemJSON,"tgt",data->tgt);
+ cJSON_AddNumberToObject(itemJSON,"tg",data->tg);
+ cJSON_AddNumberToObject(itemJSON,"pg",data->pg);
+ cJSON_AddNumberToObject(itemJSON,"du",data->du);
+ cJSON_AddNumberToObject(itemJSON,"ca",data->ca);
+ cJSON_AddNumberToObject(itemJSON,"di",data->di);
+ cJSON_AddNumberToObject(itemJSON,"hr",data->hr);
+ cJSON_AddNumberToObject(itemJSON,"stp",data->stp);
+ cJSON_AddNumberToObject(itemJSON,"ti",data->ti);
+ cJSON_AddNumberToObject(itemJSON,"cir",data->cir);
+ cJSON_AddNumberToObject(itemJSON,"alt",data->alt);
+ cJSON_AddNumberToObject(itemJSON,"fpc",data->fpc);
+ cJSON_AddNumberToObject(itemJSON,"spc",data->spc);
+ cJSON_AddNumberToObject(itemJSON,"std",data->std);
+ cJSON_AddNumberToObject(itemJSON,"cdc",data->cdc);
+ free(data);
+ return itemJSON;
+ }
+
+ free(data);
+ data=NULL;
+ }
+ else{
+ break;
+ }
+ i++;
+ }
+ return NULL;
+}
Tag_Trailer_t Mp3Trailer;
Tag_ID3V2_TAG_T TAG_T;
uint8_t* ble_get_sos_all_data_malloc(uint32_t*);
+cJSON* ble_get_Trainingdata_by_timetamp(uint32_t timetamp);
+
#ifdef __cplusplus
#if __cplusplus
}
if(root != NULL)\r
{\r
cJSON* pn = cJSON_GetObjectItem(root, "pn");\r
- if (cJSON_IsString(pn)) {\r
+ if (pn && cJSON_IsString(pn)) {\r
len = strlen(pn->valuestring)+1; \r
printf("设备名称: %s len:%d\n", pn->valuestring,len);\r
}\r
cJSON* tp = cJSON_GetObjectItem(root, "tp");\r
- *type=tp->valueint;\r
+ if(tp && cJSON_IsNumber(pn))\r
+ {\r
+ *type=tp->valueint;\r
+ }\r
+ \r
cJSON* bond=cJSON_GetObjectItem(root, "bond");\r
if(bond)\r
{\r
if(root != NULL)\r
{\r
cJSON* pn = cJSON_GetObjectItem(root, "pn");\r
- if (cJSON_IsString(pn)) {\r
+ if (pn && cJSON_IsString(pn)) {\r
uint8_t datalen = strlen(pn->valuestring)+1; \r
if(datalen > PHONE_NAME_MAX_LEN) //\r
{\r
if(root != NULL)\r
{\r
cJSON* mac = cJSON_GetObjectItem(root, "mac");\r
- if (cJSON_IsArray(mac)) {\r
+ if (mac && cJSON_IsArray(mac)) {\r
printf("MAC地址: ");\r
cJSON* macElement = NULL;\r
cJSON_ArrayForEach(macElement, mac) {\r
if(flag == 1)//配对成功\r
{\r
cJSON *dataJSON = cJSON_CreateObject();\r
+ if(dataJSON==NULL)\r
+ {\r
+ return;\r
+ }\r
\r
cJSON* arrayJSON = cJSON_CreateArray();\r
+ if(arrayJSON==NULL)\r
+ {\r
+ return;\r
+ }\r
for(uint8_t id = 0;id<6;id++)\r
{\r
cJSON_AddNumberToObject(arrayJSON,"id",addr->addr[id]);\r
uint8_t second = 0;\r
uint32_t timestamp;\r
cJSON* time = cJSON_GetObjectItem(root, "time");\r
- if (cJSON_IsNumber(time)) {\r
+ if (time && cJSON_IsNumber(time)) {\r
printf("time: %d\n", time->valueint);\r
timestamp = time->valueint;\r
// printf("time: %d\n", time->valueint);\r
}\r
cJSON* jsweek = cJSON_GetObjectItem(root, "week");\r
- if (cJSON_IsNumber(jsweek)) {\r
+ if (jsweek && cJSON_IsNumber(jsweek)) {\r
printf("week: %d\n", jsweek->valueint);\r
week = jsweek->valueint;\r
}\r
cJSON* jsyear = cJSON_GetObjectItem(root, "year");\r
- if (cJSON_IsNumber(jsyear)) {\r
+ if (jsyear && cJSON_IsNumber(jsyear)) {\r
printf("year: %d\n", jsyear->valueint);\r
year = jsyear->valueint;\r
}\r
cJSON* jsmonth = cJSON_GetObjectItem(root, "month");\r
- if (cJSON_IsNumber(jsmonth)) {\r
+ if (jsmonth && cJSON_IsNumber(jsmonth)) {\r
printf("month: %d\n", jsmonth->valueint);\r
month = jsmonth->valueint;\r
}\r
cJSON* jsday = cJSON_GetObjectItem(root, "day");\r
- if (cJSON_IsNumber(jsday)) {\r
+ if (jsday && cJSON_IsNumber(jsday)) {\r
printf("day: %d\n", jsday->valueint);\r
day = jsday->valueint;\r
}\r
cJSON* jshour = cJSON_GetObjectItem(root, "hour");\r
- if (cJSON_IsNumber(jshour)) {\r
+ if (jshour && cJSON_IsNumber(jshour)) {\r
printf("hour: %d\n", jshour->valueint);\r
hour = jshour->valueint;\r
}\r
cJSON* jsminute = cJSON_GetObjectItem(root, "minute");\r
- if (cJSON_IsNumber(jsminute)) {\r
+ if (jsminute && cJSON_IsNumber(jsminute)) {\r
printf("minute: %d\n", jsminute->valueint);\r
minute = jsminute->valueint;\r
}\r
cJSON* jssecond = cJSON_GetObjectItem(root, "second");\r
- if (cJSON_IsNumber(jssecond)) {\r
+ if (jssecond && cJSON_IsNumber(jssecond)) {\r
printf("second: %d\n", jssecond->valueint);\r
second = jssecond->valueint;\r
}\r
cJSON* location = cJSON_GetObjectItem(root, "location");\r
- if (cJSON_IsString(location)) {\r
+ if (location && cJSON_IsString(location)) {\r
printf("location: %s\n", location->valuestring);\r
locations = location->valuestring;\r
}\r
set_goal_durationcount(target_fattime);\r
\r
set_goal_caloriescount(target_kcal);\r
- \r
+\r
set_SilentMode(ring);\r
set_vibrationremiander(vibratior);\r
\r
ble_delet_all_AlarmInfo();\r
\r
cJSON* alarms = cJSON_GetObjectItem(root, "alarms");\r
+ if(alarms==NULL)\r
+ {\r
+ return;\r
+ }\r
int alarmCount = cJSON_GetArraySize(alarms);\r
\r
for(int i=0;i<alarmCount;i++)\r
{\r
uint8_t week=0;\r
cJSON *data=cJSON_GetArrayItem(alarms,i);\r
+ if(data==NULL)\r
+ {\r
+ return;\r
+ }\r
+\r
+ cJSON *Id_data =cJSON_GetObjectItem(data,"id");\r
+ if(Id_data==NULL)\r
+ return;\r
+ int id=Id_data->valueint;\r
\r
- int id=cJSON_GetObjectItem(data,"id")->valueint;\r
cJSON* repeat=cJSON_GetObjectItem(data,"repeat");\r
+ if(repeat==NULL)\r
+ return;\r
+ \r
int array_size = cJSON_GetArraySize(repeat);\r
for(int j=0;j<array_size;j++)\r
{\r
{\r
week|=0b00000001;\r
}\r
- else\r
+ else if(day!=0)\r
{\r
week|=0b00000001<<(day);\r
}\r
\r
}\r
- int hour=cJSON_GetObjectItem(data,"hour")->valueint;\r
- int minute=cJSON_GetObjectItem(data,"minute")->valueint;\r
- int enable=cJSON_GetObjectItem(data,"enable")->valueint;\r
- ble_SetAlarmInfo(hour, minute,week,i,enable);\r
+ \r
+ cJSON* hour_data=cJSON_GetObjectItem(data,"hour");\r
+ if(hour_data==NULL)\r
+ {\r
+ return;\r
+ }\r
+ int hour=hour_data->valueint;\r
+ cJSON* minute_data=cJSON_GetObjectItem(data,"minute");\r
+ if(minute_data==NULL)\r
+ {\r
+ return;\r
+ }\r
+ int minute=minute_data ->valueint;\r
+ cJSON* enable_data=cJSON_GetObjectItem(data,"enable");\r
+ if(enable_data==NULL)\r
+ {\r
+ return;\r
+ }\r
+ int enable=enable_data ->valueint;\r
+\r
+ ble_SetAlarmInfo(hour, minute,week,i,enable);\r
\r
}\r
cJSON_Delete(root);\r
}\r
\r
\r
+//通过时间戳来获取训练数据\r
+\r
+void SYN_train_datatCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//同步训练数据\r
+{\r
+\r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ if(len==4)\r
+ {\r
+ uint32_t timetamp=0;\r
+ memcpy_s((void*)&timetamp,4,data,4);\r
+ cJSON *json_data = ble_get_Trainingdata_by_timetamp(timetamp);\r
+ if(json_data==NULL)\r
+ {\r
+ ble_data_type type_={0x02,0x19,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ return;\r
+ }\r
+ char *json_str=cJSON_PrintUnformatted(json_data);\r
+ uint32_t json_len= strlen(json_str);\r
+ cJSON_Delete(json_data);\r
+\r
+\r
+ uint32_t surplus_len=json_len;\r
+ uint32_t offset=0;\r
+\r
+ uint32_t pack;\r
+ uint16_t pack_size=(ble_nus_max_data_len-18);\r
+ if(pack_size>482)pack_size=482;\r
\r
+ if(json_len%pack_size==0)\r
+ {\r
+ pack=json_len/pack_size;\r
+ }\r
+ else\r
+ { \r
+ pack=json_len/pack_size+1;\r
+ }\r
+ uint32_t pack_id=1;\r
+ while (surplus_len!=0)\r
+ {\r
+ if(surplus_len>=pack_size)\r
+ {\r
+ surplus_len=surplus_len-pack_size;\r
\r
+ ble_data_type type_={0x02,0x19,json_len,pack,pack_id};\r
+ send_big_data(type_,(char *)json_str+offset,pack_size);\r
+ offset+=pack_size;\r
+ }\r
+ else\r
+ {\r
+ \r
+ printf("%d %d %d %d\r\n",json_len,surplus_len,pack_id,pack);\r
+ ble_data_type type_={0x02,0x19,json_len,pack,pack_id};\r
+ send_big_data(type_,(char *)json_str+offset,surplus_len);\r
+ break;\r
+ }\r
+ pack_id++;\r
+ }\r
+\r
+ cJSON_free(json_str);\r
+\r
+ }\r
+ \r
+ }\r
+ else\r
+ {\r
+ ble_data_type type_={0x02,0x19,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ }\r
+}\r
+\r
+\r
+void SYN_train_heart_datatCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//同步训练数据\r
+{\r
+\r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ if(len==4)\r
+ {\r
+ uint32_t timetamp=0;\r
+ memcpy_s((void*)&timetamp,4,data,4);\r
+ ble_data_type type_={0x02,0x4B,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ }\r
+ \r
+ }\r
+ else\r
+ {\r
+ ble_data_type type_={0x02,0x4B,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ }\r
+}\r
+\r
+void SYN_train_speed_datatCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//同步训练数据\r
+{\r
+\r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ if(len==4)\r
+ {\r
+ uint32_t timetamp=0;\r
+ memcpy_s((void*)&timetamp,4,data,4);\r
+ ble_data_type type_={0x02,0x18,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ }\r
+ \r
+ }\r
+ else\r
+ {\r
+ ble_data_type type_={0x02,0x18,0,1,1};\r
+ send_big_data(type_,NULL,0);\r
+ }\r
+}\r
\r
//APP设置步数目标\r
void SetsteptargetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)\r
\r
}\r
\r
- if( cm_custom_ble_service_on_flag() && cm_get_HFP_switch())\r
+ if( uapi_dev_runtime_get_bt_powerstat() && cm_get_HFP_switch())\r
uapi_pbap_cmd_start_client();\r
\r
bd_addr_t bdaddr={0};\r
uapi_get_br_address(&bdaddr);\r
- if( cm_custom_ble_service_on_flag() && (cm_get_HFP_switch()||cm_get_A2DP_switch()))\r
+ if( uapi_dev_runtime_get_bt_powerstat() && (cm_get_HFP_switch()||cm_get_A2DP_switch()))\r
{\r
if (false==bt_is_acl_connected(&bdaddr))\r
{\r
int ret = gap_reconnect_media_device(&bdaddr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " gap_reconnect_media_device ret = %u", ret);\r
} \r
-\r
}\r
\r
\r
case DELETE_FILE_CMD:\r
break;\r
case SYN_BASIC_REAL_HEATR_CMD:\r
+ SYN_train_heart_datatCmd(typeID,data,datalen,totalData,crcvalue);\r
break;\r
+ case SYN_TRAIN_DATA_CMD:\r
+ SYN_train_datatCmd(typeID,data,datalen,totalData,crcvalue);\r
+ break;\r
+ case SYN_TRAIN_SPEED_CMD:\r
+ SYN_train_speed_datatCmd(typeID,data,datalen,totalData,crcvalue);\r
+ break;\r
+ \r
case SYN_TODAY_BASIC_TRAIN_TXT_CMD:\r
break;\r
case SYN_WATCH_LCD_PARAM_CMD://app下发的同步屏幕参数到手表\r
}\r
}\r
\r
-//获取闹钟数据\r
-static void GetAlarmDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
-{\r
- \r
- uint32_t tmp = 1;\r
- uint32_t data_len = 1;\r
- uint16_t tmp_data = 1;\r
- if(Check_CRC(data,len,crcvalue))\r
- {\r
- \r
- cJSON *dataJSON = cJSON_CreateObject();\r
- cJSON* data_arryJSON = cJSON_CreateArray();\r
- cJSON_AddNumberToObject(dataJSON,"code",1);\r
- \r
- for(uint8_t i =0;i<2;i++)\r
- {\r
- cJSON* itemJSON = cJSON_CreateObject();\r
- cJSON* arrayJSON = cJSON_CreateArray();\r
- for(uint8_t id = 0;id<7;id++)\r
- {\r
- cJSON_AddNumberToObject(arrayJSON,"id",id);\r
- }\r
- \r
- cJSON_AddNumberToObject(itemJSON,"id",i);\r
- cJSON_AddItemToObject(itemJSON,"repeat",arrayJSON);\r
- cJSON_AddNumberToObject(itemJSON,"hour",2+20*i);\r
- cJSON_AddNumberToObject(itemJSON,"minute",30+i*0);\r
- cJSON_AddNumberToObject(itemJSON,"enable",1);\r
- cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);\r
- }\r
- cJSON_AddItemToObject(dataJSON,"alarms",data_arryJSON);\r
-\r
- char *json_format = cJSON_PrintUnformatted(dataJSON);\r
- printf("%d\n",strlen(json_format));\r
- cJSON_Delete(dataJSON);\r
- printf("phone %s",json_format);\r
- char *new_json;\r
-\r
- uint32_t len = strlen(json_format);\r
- uint8_t value[len+17+1];\r
- memset(value,0,len+17+1);\r
- value[0] = 0x72;\r
- value[1] = 0x01;\r
- value[2] = 0x01;\r
- data_len = len;\r
- tmp_data = len;\r
- memcpy(value+3,&tmp,4);\r
- memcpy(value+7,&data_len,4);\r
- memcpy(value+11,&tmp,4);\r
- memcpy(value+15,&tmp_data,2);\r
- if((data_len+18) > ble_nus_max_data_len && data_len > 0)\r
- {\r
-\r
- }else{\r
- if(data_len != 0){\r
- memcpy(value+17,json_format,data_len);\r
- cJSON_free(json_format);\r
- }\r
- \r
- }\r
- value[data_len+17] = Calculate_CRC(value,data_len+17);\r
- sendBleData(value,data_len+17+1);\r
-\r
- }else\r
- {\r
- uint8_t value[19];\r
- memset(value,0,19);\r
- value[0] = 0x72;\r
- value[1] = 0x01;\r
- value[2] = 0x01;\r
- uint32_t tmp = 1;\r
- uint16_t tmp_data = 1;\r
- memcpy(value+3,&tmp,4);\r
- memcpy(value+7,&tmp,4);\r
- memcpy(value+11,&tmp,4);\r
- memcpy(value+15,&tmp_data,2);\r
- value[17] = 0;//校验失败\r
- value[18] = Calculate_CRC(value,18);\r
- sendBleData(value,19);\r
- }\r
-}\r
-\r
-\r
\r
//关于本机内容\r
static void aboutDeviceCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
for(uint8_t i = 0;i<7;i++)\r
{\r
cJSON* data_arryJSON = cJSON_CreateObject();\r
+ if(data_arryJSON==NULL)\r
+ {\r
+ return;\r
+ }\r
uint32_t value=0;\r
if(i==0)\r
{\r
sendBleData(value,19);\r
}\r
}\r
+\r
+void reply_APP_StopSportModeCmd(uint16_t time)\r
+{\r
+ char data[3]={0};\r
+ uint32_t data_len=3;\r
+ data[0]=1;\r
+ memcpy(&data[1],&time,2);\r
+ printf("发送训练状态数据%d %d\r\n",data[0],time);\r
+ ble_data_type type={0x01,0x0B,data_len,1,1};\r
+ send_big_data(type,data,data_len);\r
+}\r
//结束运动模式\r
static void StopSportModeCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
printf("结束运动\r\n");\r
\r
CustomEventPublish(TOPIC_EVENT_BLE_TRAINING,(uint8_t*)&training_ble_data,sizeof(training_ble));\r
- value[17] = 1; //1 操作成功 2 操作失败\r
- value[18] = Calculate_CRC(value,18);\r
- sendBleData(value,19);\r
+ // value[17] = 1; //1 操作成功 2 操作失败\r
+ // value[18] = Calculate_CRC(value,18);\r
+ // sendBleData(value,19);\r
}else\r
{\r
value[17] = 0;\r
}\r
\r
}\r
+\r
+void reply_APP_SportPasueResetCmd(uint16_t time)\r
+{\r
+ char data[3]={0};\r
+ uint32_t data_len=3;\r
+ data[0]=1;\r
+ memcpy(&data[1],&time,2);\r
+ printf("发送训练状态数据%d %d\r\n",data[0],time);\r
+ ble_data_type type={0x01,0x16,data_len,1,1};\r
+ send_big_data(type,data,data_len);\r
+}\r
+\r
+\r
//训练暂停/恢复\r
static void GetSportPasueResetCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
{\r
CustomEventPublish(TOPIC_EVENT_BLE_TRAINING,(uint8_t*)&training_ble_data,sizeof(training_ble));\r
\r
}\r
- value[17] = 1;\r
- value[18] = Calculate_CRC(value,18);\r
- sendBleData(value,19);\r
+ // value[17] = 1;\r
+ // value[18] = Calculate_CRC(value,18);\r
+ // sendBleData(value,19);\r
}else\r
{\r
value[17] = 0;\r
memset(titleBuf,0,TITLE_BUF_LEN);\r
memset(msgBuf,0,MSG_BUF_LEN);\r
cJSON* uid = cJSON_GetObjectItem(root, "uid");\r
- if (cJSON_IsNumber(uid)) {\r
+ if (uid && cJSON_IsNumber(uid)) {\r
printf("uid_t: %d\n", uid->valueint);\r
uid_t = uid->valueint;\r
}\r
cJSON* appid = cJSON_GetObjectItem(root, "appid");\r
- if (cJSON_IsNumber(appid)) {\r
+ if (appid && cJSON_IsNumber(appid)) {\r
printf("appid_t: %d\n", appid->valueint);\r
appid_t = appid->valueint;\r
}\r
cJSON* title_c = cJSON_GetObjectItem(root, "title");\r
- if (cJSON_IsString(title_c)) {\r
+ if (title_c && cJSON_IsString(title_c)) {\r
printf("titleBuf: %s\n", title_c->valuestring);\r
int len = strlen(title_c->valuestring);\r
if(len >= TITLE_BUF_LEN){\r
memcpy(titleBuf,(uint8_t *)title_c->valuestring,len);\r
}\r
cJSON* msg = cJSON_GetObjectItem(root, "msg");\r
- if (cJSON_IsString(msg)) {\r
+ if (msg && cJSON_IsString(msg)) {\r
int len = strlen(msg->valuestring);\r
if(len >= MSG_BUF_LEN-4){\r
len = uft8_check(msg->valuestring,MSG_BUF_LEN-4);\r
printf("msgBuf: %s\n",msgBuf);\r
}\r
cJSON* time = cJSON_GetObjectItem(root, "time");\r
- if (cJSON_IsString(time)) {\r
+ if (time && cJSON_IsString(time)) {\r
printf("time: %s\n", time->valuestring);\r
// timeBuf = time->valueint;\r
}\r
cJSON* hasCode = cJSON_GetObjectItem(root, "hasCode");\r
- if (cJSON_IsNumber(hasCode)) {\r
+ if (hasCode && cJSON_IsNumber(hasCode)) {\r
printf("hasCode_t: %d\n", hasCode->valueint);\r
hasCode_t = hasCode->valueint;\r
}\r
#define SET_SEDENTARINESS_PARAM_CMD 0x021D //APP设置久坐提醒
#define SET_ANCS_MSG_FILTRATION_CMD 0x021e //APP设置消息过滤处理
#define SET_APP_AI_TXT_CMD 0x021F //设置AI返回的文本
+#define SYN_TRAIN_SPEED_CMD 0x0218 //同步某次基础训练配速(02,18)
+#define SYN_TRAIN_DATA_CMD 0x0219 // 同步某次基础训练汇总记录(02,19)
#define SET_WEATHER_DATA_CMD 0x0220 //发送天气数据
#define SET_ALARM_DATA_CMD 0x0221 //发送闹钟数据
#define DELETE_FILE_CMD 0x0222 //删除指定文件
uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check);//json 格式解析 天气数据
uint8_t read_jsonHistory_weather(void);
void GetwatchSaveMac(uint8_t *mac,uint8_t *mactype);
+
+void reply_APP_SportPasueResetCmd(uint16_t time);
+
+void reply_APP_StopSportModeCmd(uint16_t time);
+
///////////////////////////自定义文件传输协议/////////////////////////////
#define OTA_FILE_MSG_CMD 0x0601
#define OTA_FILE_DATA_CMD 0x0602
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! svr_alipay_get_adv_start_state %d alipay_get_binding_status:%d\r\n",svr_alipay_get_adv_start_state(),alipay_get_binding_status());\r
// if(AdverFlag == true){\r
free_ble_data(); \r
- if(uapi_dev_runtime_get_bt_powerstat()) \r
+ //if(uapi_dev_runtime_get_bt_powerstat()) \r
{\r
svr_ble_adv_start();\r
//gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0); \r
devpair_state = 0;//\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "exit_alipay_gui !!! %d",exit_alipay_gui);\r
- if(!exit_alipay_gui)//如果进入了绑定二维码界面 正在连接app 不需要停止广播数据\r
+ //if(!exit_alipay_gui)//如果进入了绑定二维码界面 正在连接app 不需要停止广播数据\r
{\r
svr_ble_adv_stop();\r
} \r
void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
{\r
devpair_state = 1;//代表配对成功了\r
-\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, \r
"svr_pair_result_cbt_cb!!! addr 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x status:0x%x\r\n",addr->addr[0],addr->addr[1],\r
addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5],status);\r
- //if(get_notify_switch())\r
if(status==ERRCODE_SUCC)\r
{\r
if(get_ble_pair())\r
if(get_ctkd_flag() && uapi_dev_runtime_get_bt_powerstat())\r
{\r
gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 20);\r
- \r
if(get_ble_pair()&&( cm_get_A2DP_switch() || cm_get_HFP_switch()))\r
{\r
int ret=gap_reconnect_media_device(&phone_addr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
- //uapi_a2dp_snk_connect();\r
- \r
- \r
- }else{\r
+ }else{\r
\r
if(get_br_is_pair())\r
{\r
int ret=gap_reconnect_media_device(&bdaddr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
}\r
- // if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
- // uapi_a2dp_snk_connect();\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! \r\n");\r
- \r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! \r\n"); \r
}\r
else\r
{\r
uapi_a2dp_snk_connect();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect!!! \r\n");\r
}\r
-\r
}\r
- \r
int ret = gap_connect_remote_device(addr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_connect_remote_device!!! %X\r\n",ret);\r
- \r
-\r
- }\r
- //uapi_a2dp_snk_connect();\r
- \r
+ } \r
}\r
hand_watch_first_time_Paired();\r
svr_ble_adv_stop();\r
errcode_t ret = gap_ble_connect_param_update(&conn_param);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters ret: %u\n", ret); \r
}\r
- \r
-\r
- //if(!uapi_a2dp_snk_get_device_connect_state() || !uapi_hfp_connect_state())\r
- \r
- \r
}\r
\r
//添加ota特征值\r
if (ret != ERRCODE_SUCC) {\r
// ALIPAY_PRINT_ERR(0, "gatts_add_descriptor fail, ret:%u.\r\n", ret);\r
}\r
- // errcode_t ret = 0;\r
- // // uint16_t id = ALIPAYY_CHARACTERISTIC_ID;\r
- // gatts_add_chara_info_t character;\r
- // uint16_t value = 0;\r
- // bt_uuid_t alipay_service_uuid = {0};\r
- // bts_data_to_uuid_len2(0x4a02, &alipay_service_uuid);\r
- // memset_s(&character, sizeof(gatts_add_chara_info_t), 0, sizeof(gatts_add_chara_info_t));\r
- // // character.chara_uuid.uuid_len = sizeof(id);\r
- // // memcpy_s(character.chara_uuid.uuid, sizeof (character.chara_uuid.uuid), (char *)&id, sizeof(id));\r
- // character.chara_uuid = alipay_service_uuid;\r
- // character.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
- // character.properties =\r
- // GATT_CHARACTER_PROPERTY_BIT_READ | GATT_CHARACTER_PROPERTY_BIT_WRITE | GATT_CHARACTER_PROPERTY_BIT_NOTIFY;\r
- // character.value_len = 256;\r
- // character.value = g_alipay_character_buf;\r
-\r
- // ret = gatts_add_characteristic(server_id, srv_handle, &character);\r
- // if (ret != ERRCODE_SUCC) {\r
- // ALIPAY_PRINT_ERR(0, "gatts_add_characteristic fail, ret:%u.\r\n", ret);\r
- // }\r
-\r
- // uint8_t bas_ccc_val[] = {\r
- // 0x01,\r
- // 0x00\r
- // };\r
- // bt_uuid_t ccc_uuid = { 0 };\r
- // bts_data_to_uuid_len2(0x2902, &ccc_uuid);\r
- // // bts_data_to_uuid_len2(0x2902, &ccc_uuid);\r
- // gatts_add_desc_info_t descriptor;\r
- // descriptor.desc_uuid = ccc_uuid;\r
- // descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
- // descriptor.value_len = (uint16_t)sizeof(bas_ccc_val);\r
- // descriptor.value = bas_ccc_val;\r
- \r
- // ret = gatts_add_descriptor(server_id, srv_handle, &descriptor);\r
- // if (ret != ERRCODE_SUCC) {\r
- // ALIPAY_PRINT_ERR(0, "gatts_add_descriptor fail, ret:%u.\r\n", ret);\r
- // }\r
- // bd_addr_t addr_info;\r
- // gatts_add_desc_info_t descriptor_ap;\r
- // gap_ble_get_local_addr(&addr_info);\r
- // bts_data_to_uuid_len2(0x4b02, &ccc_uuid);\r
- // descriptor_ap.desc_uuid = ccc_uuid;\r
- // descriptor_ap.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
- // descriptor_ap.value_len = BD_ADDR_LEN;\r
- // uint8_t ble_data_mac_switch[BD_ADDR_LEN] = {0};\r
- // int k = BD_ADDR_LEN;\r
- // for (int i = 0; i < BD_ADDR_LEN; i++) {\r
- // ble_data_mac_switch[--k] = addr_info.addr[i];\r
- // }\r
- // descriptor_ap.value = ble_data_mac_switch;\r
- // ret = gatts_add_descriptor(server_id, srv_handle, &descriptor_ap);\r
- // if (ret != ERRCODE_SUCC) {\r
- // ALIPAY_PRINT_ERR(0, "gatts_add_descriptor second fail, ret:%u.\r\n", ret);\r
- // }\r
-\r
+ }\r
\r
-}\r
//这个回调函数添加新的服务UUID\r
static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
errcode_t status)\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "svr_ble_bt_gatts_req_read_cb ret:is_long:%d",read_cb_para->is_long);\r
\r
//WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_bt_gatts_req_read_cb ret:is_long:%d 2ae2 %d read_cb_para->handle :%d",read_cb_para->is_long,data2ae2Cmd,read_cb_para->handle);\r
- if(read_cb_para->handle!=data2ae2Cmd)\r
- return;\r
- \r
- // if(flag==0)\r
- // ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id);\r
- // else if(flag==1)\r
- // a2dp_snk_connect(&disconect_addr);//ble_ancs_client_subscribe_notify(g_ble_conn_id,1);\r
- // else if(flag==2)\r
- // ble_ancs_client_subscribe_data(g_ble_conn_id,1);\r
- // else if (flag==3)\r
- // ble_ancs_client_subscribe_notify(g_ble_conn_id,0);\r
-\r
- // flag++;\r
- // if(flag==4)\r
- // {\r
- // flag=1;\r
- // }\r
-\r
+ if(read_cb_para->handle==data2ae2Cmd)\r
+ {\r
static uint8_t battery_point_val[20] = {0};\r
// 获取电池电压值\r
float voltage = 0.0F;\r
//read_cb_para->need_rsp=0;\r
gatts_notify_indicate(server_id,conn_id,&gatts_ntf_ind);\r
}\r
+}\r
\r
\r
static uint8_t falg = 0;\r
void svr_ble_bluetooth_init(void)\r
{\r
memset(&phone_addr,0,sizeof(bd_addr_t));\r
- // bool ret = enable_bt_stack();\r
- // // bool ret = enable_ble();\r
- // if (ret != ERRCODE_SUCC) {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_bluetooth_init enable_bt_stack ret:%u.\r\n", ret);\r
- // }\r
-\r
- // if (g_custom_ble_init_flag)\r
- // {\r
- // return ;\r
- // }\r
-\r
- //清除上次内容r\r
- \r
-\r
- // osDelay(100);\r
+ \r
srv_ble_server_register_gap_ble_callbacks();\r
srv_ble_server_register_gatt_callbacks();\r
\r
#endif\r
gattc_reg_id();\r
\r
- \r
-\r
g_custom_ble_init_flag = true;\r
return;\r
}\r
//开启蓝牙\r
void custom_ble_service_start(void)\r
{\r
-\r
AdverFlag = true;\r
svr_ble_adv_start_param();\r
- gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0); \r
- // gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 0); \r
- //gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
- \r
}\r
\r
void custom_ble_service_start_(uint8_t data)\r
// 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_APP, "CreatePhoneCallView phonenum:%s!",
// CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
const char *number=CallerLogModel::GetInstance()->GetPhoneNumber().c_str();
- char name[32]={0};
+ char name[NAME_LEN+1]={0};
#ifdef FD230
get_phone_addrss_name(name,number,NULL);
#endif
Screen::GetInstance().GetWidth(), TITLE_LABEL_DEFAULT_HEIGHT);
diallabl2->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- char name_buf[30]={0};
+ char name_buf[NAME_LEN+1]={0};
if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
}
static uint8_t timer_falg_low_power=5;
+ static uint8_t test_flag=0;
+
+ static void OTATimerCallBackProc(int data)
+ {
+ #if 0
+ updatasider->SetValue(test_flag++);
+ #else
+ updatasider->SetValue(get_OTA_recv_value());
+ #endif
+ updatasider->Invalidate();
+ }
+
void OTATimerCallBack(int data)
{
- updatasider->SetValue(get_OTA_recv_value());
- RootView::GetInstance()->Invalidate();
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(OTATimerCallBackProc, data));
}
void dialtimerCallBack(int data)
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