Merge #996 into sdk602patch0626 from refs/changes/996/head 998/target/1
author胡传军 <1224667075@qq.com>
Sat, 21 Sep 2024 04:47:31 +0000 (04:47 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 21 Sep 2024 04:47:31 +0000 (04:47 +0000)
修复同步实时运动数据存在的BUG

* refs/changes/996/head: (4 commits squashed)

  - 修复同步实时运动数据存在的BUG

  - 蓝牙文件取消传输修改

  - 电话bug综合修复

  - 电话bug综合修复(补)

Signed-off-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/996
code/sdk/application/wearable/fd230app/nativeui/callerlog/src/CallerLogModel.cpp
code/sdk/application/wearable/fd230app/nativeui/makephone/include/MainCallingPresenter.h
code/sdk/application/wearable/fd230app/nativeui/makephone/src/MainCallingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/makephone/src/MainCallingView.cpp
code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/application/wearable/service/msg_center/src/notify/makephone_notification.cpp
code/sdk/application/wearable/service/msg_center/src/notify/transmitting.cpp

index a48fbb3..13cfe6e 100644 (file)
 #include "notification_manager.h"
 #include "osal_timer.h"
 #include "cmsis_os2.h"
+#include "custom_utils.h"
+#include "ConfigModel.h"
+#include "vibrator_service.h"
+#include "custom_runtime.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -301,17 +305,6 @@ static void IncomingHandle(void)
 }
 
 
-static osTimerId_t Waiting_timer=NULL;
-
-static void  RejectIncomingCall_Timer_CallBack(int data)
-{
-    if(RejectIncomingCall() != 0) {
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[HintsHandupClick] RejectIncomingCall error");
-            return ;
-    }
-    osTimerDelete(Waiting_timer);
-    Waiting_timer = NULL;
-}
 // 来电等待界面
 static void WaitingOpreate()
 {
@@ -325,30 +318,12 @@ static void WaitingOpreate()
         if(!CallerLogModel::GetInstance()->get_RejectIncomingCall_falg())
         {
 
-            uint32_t tick;
-            osStatus_t retTimer;
-            if(Waiting_timer!=NULL)
-            {
-                if(RejectIncomingCall() != 0) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[HintsHandupClick] RejectIncomingCall error");
-                return ;
-                }
-                osTimerDelete(Waiting_timer);
-                Waiting_timer = NULL;
-                return;
-            }
-            
-            Waiting_timer = osTimerNew((osTimerFunc_t)RejectIncomingCall_Timer_CallBack, osTimerOnce, NULL, NULL);
-            tick =3000;// osMs2Tick(1000);
-            retTimer = osTimerStart(Waiting_timer, tick);
-            if (retTimer != osOK && Waiting_timer != NULL) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
-                osTimerDelete(Waiting_timer);
-                Waiting_timer = NULL;
-                return ;
+             if(RejectIncomingCall() != 0) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[HintsHandupClick] RejectIncomingCall error");
+            return ;
             }
             CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(1);
-
+            CustomEventPublish(TOPIC_EVENT_HFP_HINT,NULL,0);
         }
         else
         {
@@ -358,18 +333,8 @@ static void WaitingOpreate()
             }
             return;
         }
-       
     }
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[WaitingOpreate] WaitingOpreate");
-    CallerLogModel::GetInstance()->SetCallStatus(false);
-    CallerLogModel::GetInstance()->SetWaitingStatus(true);
-    // If the call is handling in the notification, the slice is not switched
-    if (!CallerLogModel::GetInstance()->GetNotifyFlag()) {
-        NativeAbility::GetInstance().ChangeSlice(VIEW_INCOMING_CALL, TransitionType::TRANSITION_INVALID,
-            PRIORITY_ONE);
-    } else {
-        g_isWatchCallView = true;
-    }
 }
 
 static void WatchActiveHandle(const PhoneCallInfo *phoneCall)
index b2093b6..ecae951 100644 (file)
@@ -17,6 +17,7 @@
 namespace OHOS {
 class MainCallingView;
 class MainCallingPresenter : public Presenter<MainCallingView>,
+                             public RootView::OnKeyActListener,
                              public UIView::OnClickListener ,
                              public UIView::OnDragListener{
 public:
@@ -33,6 +34,7 @@ public:
     bool CallingViewDisplay();
     bool InitPointerValue();
     bool OnClick(UIView& view, const ClickEvent& event) override;
+    bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
     
     bool OnDragEnd(UIView &view, const DragEvent &event) override;
     VolumeSettingView *GetvolumeSetting();
index 0895437..574e098 100644 (file)
@@ -413,6 +413,11 @@ bool MainCallingPresenter::OnDragEnd(OHOS::UIView& view, const OHOS::DragEvent&
     return true;
 }
 
+bool MainCallingPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件
+{
+    return true;
+}
+
 VolumeSettingView *MainCallingPresenter::GetvolumeSetting()
 {
     return volumeSetting;
index d759215..feb2ef5 100644 (file)
@@ -33,6 +33,7 @@ MainCallingView::~MainCallingView()
     delete waitingView;
     waitingView = nullptr;
 
+    
 
     g_pMainView = nullptr;
 }
@@ -135,6 +136,9 @@ void MainCallingView::OnStart()
     if (InitPointerValue() == false) {
         return;
     }
+    
+    RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainCallingPresenter::GetInstance();
+    RootView::GetInstance()->SetOnKeyActListener(keyactListener);
 
     RootView::GetInstance()->Add(displayGroup);
     RootView::GetInstance()->Add(callingGroup);
@@ -183,6 +187,8 @@ void MainCallingView::OnStop()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCallingView::~OnStop");
     View<MainCallingPresenter>::OnStop();
     RootView::GetInstance()->RemoveAll();
+    RootView::GetInstance()->ClearOnKeyActListener();
+
     return;
 }
 }
\ No newline at end of file
index 2b024ba..197d537 100644 (file)
@@ -674,11 +674,11 @@ static void ScoDisconnectPro(void)
 {
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoDisconnectPro] start CallState:%d", g_currCallState);
 
-    // if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
-    // && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
-    // {
-    //     return;
-    // }
+    if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
+    && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
+    {
+        return;
+    }
 
     // if(OHOS::CallerLogModel::GetInstance()->GetCallDial() == OHOS::CallerLogModel::HFP_PHONE_DIAL)
     // {
index 4c527ad..a8b5323 100644 (file)
@@ -460,7 +460,7 @@ void sendtraningdata(msg_get_train_data_info_t *data)
     \r
     printf("发送训练实时数据 %d %s\n", data_len, jsonString);\r
     ble_data_type type={0x01,0x0f,data_len,1,1};\r
-    send_big_data(type,data,data_len);\r
+    send_big_data(type,jsonString,data_len);\r
     //send_big_data(0, jsonString, data_len, data_len, 1, 1, 0x0f, 1);\r
     \r
     cJSON_free(jsonString);\r
@@ -2677,6 +2677,47 @@ void APP_send_schedule_Cmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *tota
     } \r
 }\r
 \r
+bool bin_Check_sos(uint8_t *data,uint16_t len)\r
+{\r
+    return true;\r
+}\r
+\r
+void APP_send_sos_Cmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)\r
+{\r
+    uint32_t tmp = 1;\r
+    uint16_t tmp_data = 1;\r
+    uint8_t sendBuf[19];\r
+    memset(sendBuf,0,19);\r
+    sendBuf[0] = 0x72;\r
+    sendBuf[1] = 0x02;\r
+    sendBuf[2] = 0x25;\r
+    memcpy(sendBuf+3,&tmp,4);\r
+    memcpy(sendBuf+7,&tmp,4);\r
+    memcpy(sendBuf+11,&tmp,4);\r
+    memcpy(sendBuf+15,&tmp_data,2);\r
+\r
+       if(Check_CRC(data,len,crcvalue))\r
+       {\r
+        \r
+        \r
+        if(bin_Check_sos(data,len))\r
+        {\r
+            sendBuf[17] = 1;\r
+        }\r
+        else\r
+        {\r
+            sendBuf[17] = 2;\r
+        }\r
+        sendBuf[18] = Calculate_CRC(sendBuf,18);\r
+        sendBleData(sendBuf,19);\r
+    }\r
+       else\r
+       {\r
+               sendBuf[17] = 0;\r
+        sendBuf[18] = Calculate_CRC(sendBuf,18);\r
+        sendBleData(sendBuf,19);\r
+    } \r
+}\r
 \r
 \r
 void GetGPSCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)\r
@@ -2976,6 +3017,9 @@ void type2AE4Data(ble_read_data *buffer_handle,uint8_t *buf_cmd,uint8_t *data,ui
          case SYN_APP_SCHEDULE_DATA_CMD:\r
             APP_send_schedule_Cmd(typeID,data,datalen,totalData,crcvalue);\r
             break;\r
+         case APP_SEND_SOS_DATA_CMD:\r
+            APP_send_sos_Cmd(typeID,data,datalen,totalData,crcvalue);\r
+            break;\r
         \r
 \r
         default:\r
@@ -4646,7 +4690,11 @@ static void GetAiRecordCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *tota
     }\r
 }\r
 \r
-\r
+static void GetSOSDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
+{\r
+    ble_data_type type_={0x01,0x36,0,1,1};\r
+    send_big_data(type_,NULL,0);\r
+}\r
 //AI录音已经就绪\r
 static void AiIsReadyCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)\r
 {\r
@@ -5290,6 +5338,10 @@ void type2AE3Data(ble_read_data *buffer_handle,uint8_t *cmd_buf ,uint8_t *data,u
         case APP_GET_AI_PCM_DATA_CMD:\r
             GetAiRecordCmd(cmd,data,datalen,totaldata,crcvalue);\r
             break;\r
+        case APP_GET_SOS_DATA_CMD:\r
+            GetSOSDataCmd(cmd,data,datalen,totaldata,crcvalue);\r
+            break;\r
+        \r
         case GET_SPECIF_TYPE_FILE_CMD://获取指定类型文件目录 \r
         case AI_IS_READ_DATA_CMD:\r
         case SYN_HEART_HISTORY_DATA_CMD://同步心率历史数据\r
@@ -7136,13 +7188,45 @@ errcode_t check_header(msg_header_t *header )
 \r
 errcode_t cancel_recv_file(ble_read_data *buffer_handle)\r
 {\r
-\r
     if(BR_TRANSFER_timer)\r
     {\r
-        timer_flie_flag=1;\r
+        timer_flie_flag=0;\r
+        osTimerStop(BR_TRANSFER_timer);\r
+        osTimerDelete(BR_TRANSFER_timer);\r
+        BR_TRANSFER_timer = NULL;\r
     }\r
-    ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败\r
-    \r
+\r
+    if(timer_flie_type==1)\r
+    {\r
+        TRANSMIT_DATA=TRANS_OTA_FAIL;\r
+    }\r
+    else if (timer_flie_type==3)\r
+    {\r
+        TRANSMIT_DATA=TRANS_DIAL_FAIL;\r
+    }\r
+    else\r
+    {\r
+        TRANSMIT_DATA=TRANS_FREE;\r
+    }\r
+        \r
+    ble_read_timer_p->receive_file_flag = 0;\r
+    if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。\r
+    {\r
+        if (ble_read_timer_p->file_recv_stat.file!=NULL)\r
+        {\r
+            fclose(ble_read_timer_p->file_recv_stat.file);\r
+            ble_read_timer_p->file_recv_stat.file = NULL;\r
+        }\r
+        if (ble_read_timer_p->file_recv_stat.file_name != NULL)\r
+        {\r
+            free(ble_read_timer_p->file_recv_stat.file_name);\r
+            ble_read_timer_p->file_recv_stat.file_name=NULL;\r
+        }\r
+        ble_read_timer_p->file_recv_stat.recv_file_stat = -1;\r
+        ble_read_timer_p=NULL;\r
+    }\r
+    CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+\r
     return ERRCODE_SUCC;\r
 }\r
 \r
index c6220eb..f2e2cae 100644 (file)
@@ -96,10 +96,11 @@ void cameram_send_data(void);
 #define SYN_SLEEP_HISTORY_DATA_CMD 0x014B //同步睡眠历史数据
 #define SYN_GET_MSG_CONFIG_CMD 0x0133 //获取消息开关
 #define APP_GET_AI_PCM_DATA_CMD 0x0134 //APP获取录音文件
+#define APP_GET_SOS_DATA_CMD 0x0136 //APP获取SOS信息
 #define AI_IS_READ_DATA_CMD 0x0505 //AI准备就绪
 
-#define SET_DMP_MODE_CMD 0x0135
-#define GET_DMP_MODE_CMD 0x0136
+#define SET_DMP_MODE_CMD 0x0137
+#define GET_DMP_MODE_CMD 0x0138
 
 #define FIND_PHONE_CMD 0x0501
 
@@ -641,6 +642,7 @@ TYPE:02
 #define SYN_BASIC_REAL_HEATR_CMD 0x024B //同步基础训练试试心率记录
 #define APP_SEND_CHATGPT_KEY_CMD 0x0223 //APP发送chatGPT key
 #define SYN_APP_SCHEDULE_DATA_CMD 0x0224 //同步schedule信息
+#define APP_SEND_SOS_DATA_CMD 0x0225 //APP发送sos信息
 #define SYN_TODAY_BASIC_TRAIN_TXT_CMD 0x024D //同步当天任意时间之后的基础训练记录
 #define APP_SEND_AI_KEY_IS_AVAILABLE_CMD  0x0506 //查询AI是否可用,APP 回复
 
index 0e4f511..d457d07 100644 (file)
@@ -567,7 +567,7 @@ void MsgCenterNotifyHfpPhoneProc(const Topic topic, Request* req)
     }
     if ((topic == TOPIC_EVENT_HFP_FINISHED && GetCurrCallNum() == 0) ||
     topic == TOPIC_EVENT_HFP_PHONE_ACTIVE || topic == TOPIC_EVENT_HFP_WATCH_TO_PHONE) {
-        NotificationManager::GetInstance()->StopNotify();
+        //NotificationManager::GetInstance()->StopNotify();
         if( CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSource::CallSourcePhone)
         {
              WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetWatchCallStatus false");
@@ -816,27 +816,12 @@ void MsgCenterNotifyCatIncomingCallProc(const Topic topic, Request* req)
     // Prevent this from happening:
     // When the incoming call view is displayed, the calling number is not set in CallerLogModel.
         //uapi_hfp_disconnect();
-
-        if(uapi_dev_runtime_get_train_status())
-        {
-            CallerLogModel::GetInstance()->SetoperateNumber(call_data,req->len);
-            cat1_call_hungup();
-            free(call_data);
-            
-            return;
-        }
-
-        if(NotificationManager::GetInstance()->GetWatchCallStatus() &&
-        (CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourcePhone))
+        if((NotificationManager::GetInstance()->GetWatchCallStatus() &&
+        (CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourcePhone)) || uapi_dev_runtime_get_train_status())
         {
-            std::string hfp_number= CallerLogModel::GetInstance()->GetPhoneNumber();
-
-            CallerLogModel::GetInstance()->tempSetoperateNumberCAT1(hfp_number.c_str(),hfp_number.length());
-
-            CallerLogModel::GetInstance()->SetoperateNumber(call_data,req->len);
 
+            CallerLogModel::GetInstance()->tempSetoperateNumberCAT1(call_data,req->len);
             cat1_phone_state_change_cb(OPERATE_WAITING);
-
             free(call_data);
 
             return;
@@ -881,8 +866,8 @@ void MsgCenterNotifyCat1CallConnectedProc(const Topic topic, Request* req)
         return;
     }
     SetMicMute(false);
-    // AlarmClockModel::GetInstance()->AlarmPlayerStop()
-    AlarmViewEventListener::GetInstance()->CancelAlarmRing();
+    AlarmClockModel::GetInstance()->AlarmPlayerStop();
+    //AlarmViewEventListener::GetInstance()->CancelAlarmRing();
     NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_ONE);
     cat1_phone_state_change_cb(OPERATE_WATCH_ACTIVE);
     CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
@@ -930,8 +915,8 @@ void MsgCenterNotifyCat1CallEndedProc(const Topic topic, Request* req)
     unused(topic);
     unused(req);
     // just stop the notify
-    // AlarmClockModel::GetInstance()->AlarmPlayerStop();
-    AlarmViewEventListener::GetInstance()->CancelAlarmRing();
+    AlarmClockModel::GetInstance()->AlarmPlayerStop();
+    // AlarmViewEventListener::GetInstance()->CancelAlarmRing();
     if(!NotificationManager::GetInstance()->GetWatchCallStatus())
     {
         return;
@@ -1462,8 +1447,8 @@ void MsgCenterNotifybleTransmit(const Topic topic, Request* req)
     {
         set_transmittingShow_falg(data[0]);
         
-        if(NotificationManager::GetInstance()->HasNotifyShowing())
-        NotificationManager::GetInstance()->StopNotify();
+        // if(NotificationManager::GetInstance()->HasNotifyShowing())
+        // NotificationManager::GetInstance()->StopNotify();
 
         NotificationManager::GetInstance()->ShowNotify(showtransmitNotify, (uint16_t)topic, true);
     }
index aacbaba..13da94a 100755 (executable)
@@ -287,10 +287,23 @@ void FreeSOSView(void)
         SOSView = nullptr;
     }
 }
-
+uint8_t CALL_INCOMING_HINT_timer_FALG=0;
 void hintdialtimerCallBack(int data)
 {
-    NotificationManager::GetInstance()->StopNotify();
+    CALL_INCOMING_HINT_timer_FALG--;
+    if(CALL_INCOMING_HINT_timer_FALG)
+    {
+        if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
+        {
+            ui_api_vibrate_once_func();
+        }
+    }
+    if(CALL_INCOMING_HINT_timer_FALG==0)
+    {
+        NotificationManager::GetInstance()->StopNotify();
+    }
+     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hintdialtimerCallBack ??????!");
+    
 }
 
 
@@ -364,9 +377,9 @@ UIViewGroup* CALL_INCOMING_HINT(void)
 
     uint32_t tick;
     osStatus_t retTimer;
-
+    CALL_INCOMING_HINT_timer_FALG=3;
     CALL_INCOMING_HINT_timer = osTimerNew((osTimerFunc_t)hintdialtimerCallBack, osTimerPeriodic, NULL, NULL);
-    tick =2000;// osMs2Tick(1000);
+    tick =osMs2Tick(1000);// osMs2Tick(1000);
     retTimer = osTimerStart(CALL_INCOMING_HINT_timer, tick);
     if (retTimer != osOK && CALL_INCOMING_HINT_timer != NULL) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
@@ -446,12 +459,23 @@ UIViewGroup* SOS_cant_dial(void)
 }
 
 CallLogInfo info;
-void calllog_info_init()
+void calllog_info_init(uint8_t type)
 {
     strcpy(info.name,"xxx");
     info.nameLen=3;
-    int len=strlen(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
-    memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),len+1);
+    int len;
+    if(type==0)
+    {
+        len=strlen(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+        memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),len+1);
+    }
+    else
+    {
+        len=strlen(CallerLogModel::GetInstance()->GettempPhoneNumber().c_str());
+        memcpy_s(info.tel,20,CallerLogModel::GetInstance()->GettempPhoneNumber().c_str(),len+1);
+    }
+    
+
     uint32_t tmptime=0;
     uapi_get_timestampe_ss(&tmptime);
     info.creationTime = tmptime;
@@ -503,74 +527,21 @@ static void IncomingHandle(void)
 
 }
 
-static osTimerId_t Waiting_timer=NULL;
-
-static void  RejectIncomingCall_Timer_CallBack(int data)
-{
-    if(RejectIncomingCall() != 0) {
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[HintsHandupClick] RejectIncomingCall error");
-            return ;
-    }
-    cat1_call_hungup();
-    osTimerDelete(Waiting_timer);
-    Waiting_timer = NULL;
-    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourcePhone);
-    CallerLogModel::GetInstance()->SetCallStatus(true);
-    CallerLogModel::GetInstance()->SetWaitingStatus(false);
-
-    std::string hfp_number= CallerLogModel::GetInstance()->GettempPhoneNumber();
-    CallerLogModel::GetInstance()->SetoperateNumber(hfp_number.c_str(),hfp_number.length());
-
-    NativeAbility::GetInstance().ChangeSlice(VIEW_INCOMING_CALL, TransitionType::TRANSITION_INVALID,
-        PRIORITY_ONE);
-}
-
 static void WaitingOpreate()
 {
-
-    if(NotificationManager::GetInstance()->GetWatchCallStatus())
+    
+    if(!CallerLogModel::GetInstance()->get_RejectIncomingCall_falg())
     {
-        if(!CallerLogModel::GetInstance()->get_RejectIncomingCall_falg())
-        {
-            CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
-            uint32_t tick;
-            osStatus_t retTimer;
-            if(Waiting_timer!=NULL)
-            {
-                cat1_call_hungup();
-                osTimerDelete(Waiting_timer);
-                Waiting_timer = NULL;
-                return;
-            }
-            Waiting_timer = osTimerNew((osTimerFunc_t)RejectIncomingCall_Timer_CallBack, osTimerOnce, NULL, NULL);
-            tick =3000;// osMs2Tick(1000);
-            retTimer = osTimerStart(Waiting_timer, tick);
-            if (retTimer != osOK && Waiting_timer != NULL) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
-                osTimerDelete(Waiting_timer);
-                Waiting_timer = NULL;
-                return ;
-            }
-            CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(1);
-
-        }
-        else
-        {
-            cat1_call_hungup();
-            std::string hfp_number= CallerLogModel::GetInstance()->GettempPhoneNumber();
-            CallerLogModel::GetInstance()->SetoperateNumber(hfp_number.c_str(),hfp_number.length());
-
-            return;
-        }
-       
+        cat1_call_hungup();
+        CustomEventPublish(TOPIC_EVENT_HFP_HINT,NULL,0);
+        CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(1);
+        return;
+    }
+    else
+    {
+        cat1_call_hungup();
+        return;
     }
-    
-    CallerLogModel::GetInstance()->SetCallStatus(false);
-    CallerLogModel::GetInstance()->SetWaitingStatus(true);
-    
-        
-    NativeAbility::GetInstance().ChangeSlice(VIEW_INCOMING_CALL, TransitionType::TRANSITION_INVALID,
-        PRIORITY_ONE);
 }
 
 static void WatchActiveHandle()
@@ -598,12 +569,10 @@ static void WatchFinishHandle(void)
         {
             if(CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourcePhone)
             {
-               
+                addcalllog();
             }
             else if(uapi_dev_runtime_get_train_status())
             {
-                calllog_info_init();
-                call_stat=2;
                 addcalllog();
             }
             else
@@ -630,7 +599,7 @@ void cat1_phone_state_change_cb(uint8_t state)
             DialingHandle();
             
             call_stat=0;
-            calllog_info_init();
+            calllog_info_init(0);
             break;
         case OPERATE_ALERTING:
             // 显示对方响铃
@@ -640,7 +609,7 @@ void cat1_phone_state_change_cb(uint8_t state)
             // 显示电话呼入
             PhoneServiceScreenCtr(true);
             IncomingHandle();
-            calllog_info_init();
+            calllog_info_init(0);
             if (true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()))
             {
                 ui_api_vibrate_once_func();
@@ -649,11 +618,9 @@ void cat1_phone_state_change_cb(uint8_t state)
             break;
         case OPERATE_WAITING:
             // 震动一下,提示有新电话呼入   还未对齐
-            calllog_info_init();
-            call_stat=2;
-            addcalllog();
             WaitingOpreate();
-
+            call_stat=2;
+            calllog_info_init(1);
             return;
         case OPERATE_WATCH_ACTIVE:
             // 手表接听,显示界面
@@ -1240,7 +1207,7 @@ UIViewGroup* CreatePhoneCallView(void)
     g_phoneView->SetDraggable(true);
     g_phoneView->SetTouchable(true);
     call_stat=2;
-    calllog_info_init();
+    calllog_info_init(0);
        NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreePhoneCallView);
     return g_phoneView;
 }
@@ -1385,7 +1352,7 @@ UIViewGroup* CreateCalldialView(void)
     StartCallTimer(CallTimerType::NOTIFY_PHONE_DIAL_DISPLAY, (int32_t)NOTIFY_ONE_SECOND);
 
     call_stat=0;
-    calllog_info_init();
+    calllog_info_init(0);
 
     NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeCalldialView);
     
index b245d14..1341d74 100644 (file)
@@ -191,11 +191,12 @@ namespace OHOS
 
         // Add to rootView
         UIViewGroup_transmitting->Add(Title);
-        updatasider = new UISlider();
+       
         if (updatasider == nullptr)
         {
+            updatasider = new UISlider();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView new fail");
-            return ;
+
         }
 
         updatasider->SetSliderColor(Color::Gray(), Color::Silver());
@@ -234,11 +235,12 @@ namespace OHOS
         UIViewGroup_transmitting->Add(label_);
 
         //Add ImageView to App
-        transmitting_img = new UIImageView();
+      
         if (transmitting_img == nullptr)
         {
+            transmitting_img = new UIImageView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::KUMILOGOImage new fail!");
-            return ;
+
         }
         transmitting_img->SetPosition(117, 87, 230, 160);
         const char *imagesPath = TRANSMITTING_OTA_DOWN;
@@ -249,6 +251,12 @@ namespace OHOS
         osStatus_t retTimer;
         
         Set_OTA_recv_value();
+        if(transmitting_timer!=NULL)
+        {
+            osTimerStop(transmitting_timer);
+            osTimerDelete(transmitting_timer);
+            transmitting_timer = NULL;
+        }
         transmitting_timer = osTimerNew((osTimerFunc_t)OTATimerCallBack, osTimerPeriodic, NULL, NULL);
         tick =500;// osMs2Tick(1000);
         retTimer = osTimerStart(transmitting_timer, tick);
@@ -301,11 +309,11 @@ namespace OHOS
         UIViewGroup_transmitting->Add(label_);
 
         //Add ImageView to App
-        transmitting_img = new UIImageView();
+        
         if (transmitting_img == nullptr)
         {
+            transmitting_img = new UIImageView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::KUMILOGOImage new fail!");
-            return ;
         }
         transmitting_img->SetPosition(117, 87, 230, 160);
         const char *imagesPath = TRANSMITTING_OTA_DOWN;
@@ -355,11 +363,12 @@ namespace OHOS
       
 
         //Add ImageView to App
-        transmitting_img = new UIImageView();
+       
         if (transmitting_img == nullptr)
         {
+            transmitting_img = new UIImageView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::KUMILOGOImage new fail!");
-            return ;
+
         }
         transmitting_img->SetPosition(117, 87, 230, 160);
         const char *imagesPath = TRANSMITTING_OTA_DOWN;
@@ -462,11 +471,11 @@ namespace OHOS
         label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
 
-         transmitting_img = new UIImageView();
+        
         if (transmitting_img == nullptr)
         {
+            transmitting_img = new UIImageView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::KUMILOGOImage new fail!");
-            return ;
         }
         transmitting_img->SetPosition(193, 150,80, 80);
         const char *imagesPath = TRANSMITTING_SUCC_PATH;
@@ -475,7 +484,12 @@ namespace OHOS
 
         uint32_t tick;
         osStatus_t retTimer;
-        
+        if(transmitting_timer!=NULL)
+        {
+            osTimerStop(transmitting_timer);
+            osTimerDelete(transmitting_timer);
+            transmitting_timer = NULL;
+        }
         transmitting_timer = osTimerNew((osTimerFunc_t)dialtimerCallBack, osTimerPeriodic, NULL, NULL);
         tick =2000;// osMs2Tick(1000);
         retTimer = osTimerStart(transmitting_timer, tick);
@@ -530,11 +544,11 @@ namespace OHOS
         label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
 
-         transmitting_img = new UIImageView();
+         
         if (transmitting_img == nullptr)
         {
+            transmitting_img = new UIImageView();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::KUMILOGOImage new fail!");
-            return ;
         }
         transmitting_img->SetPosition(193, 150,80, 80);
         const char *imagesPath = TRANSMITTING_FAIL_PATH;
@@ -560,6 +574,10 @@ namespace OHOS
             UIViewGroup_transmitting->SetPosition(0, 0, 466, 466);
             //UIViewGroup_transmitting->SetStyle(STYLE_BACKGROUND_OPA, 0);
         }
+        else
+        {
+            UIViewGroup_transmitting->RemoveAll();
+        }
 
         switch (Transmitting_falg)
         {