修改电话处理逻辑优化电话卡在单独界面问题 1523/1
authorhcj <1224667075@qq.com>
Mon, 16 Dec 2024 08:56:19 +0000 (16:56 +0800)
committerhcj <1224667075@qq.com>
Mon, 16 Dec 2024 08:56:19 +0000 (16:56 +0800)
code/sdk/application/wearable/fd230app/nativeui/callerlog/src/CallerLogModel.cpp
code/sdk/application/wearable/nativeabilityfwk/include/Ability.h
code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/application/wearable/service/msg_center/src/notify/makephone_notification.cpp

index 09f0900..63ff5a2 100644 (file)
@@ -173,11 +173,11 @@ void StatusReset(void)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xxxxxxxxxxxxx");
         PhoneServiceScreenCtr(false);
-        if(NativeAbility::GetInstance().GetCurSliceId() == VIEW_INCOMING_CALL || NativeAbility::GetInstance().GetCurSliceId() == VIEW_BLUETOOTH_EARPHONE)
+        if(NativeAbility::GetInstance().GetCurSliceId() == VIEW_INCOMING_CALL)
         {
             NativeAbility::GetInstance().Back_CountSlice_make_phone();
         }
-        else if (NativeAbility::GetInstance().GetCurSliceId() == VIEW_REBOOTANDSHUTDOWN  )
+        else if (!uapi_dev_runtime_get_train_status())// || NativeAbility::GetInstance().GetCurSliceId() == VIEW_BLUETOOTH_EARPHONE )
         {
             NativeAbility::GetInstance().ClearSliceIdStack();
         }
index 69136fd..8953b09 100755 (executable)
@@ -28,7 +28,7 @@
 #include "soc_osal.h"
 #include "stack"
 #include "wearable_log.h"
-// #include "AppViewIDs.h"
+#include "AppViewIDs.h"
 namespace OHOS {
 const static uint16_t gSliceInvalid = 0;         
 const static uint16_t gSliceDefaultPriority = 4;  // 页面默认是最低优先级
@@ -150,22 +150,8 @@ public:
     }
     //仅用于打电话结束恢复时使用
      bool Back_CountSlice_make_phone(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
-        const uint16_t priority = gSliceDefaultPriority) { 
-        if(!backStack_.empty())
-        {
-            // 如果此时 backStack_ 栈不为空,取出栈顶的切片 ID ,并调用 ChangeSlice 切换到该切片,返回 true 。
-            uint16_t preSlice = backStack_.top();
-            backStack_.pop();
-            ChangeSlice(preSlice,transitionId,priority);
-            return true;
-        }
-        else
-        {
-            //如果 backStack_ 栈为空,切换到默认切片,返回 false 。
-            ChangeSlice(defaultSliceId_, transitionId, priority);
-            return false; // 返回false表示无前一个slice,退回到默认slice
-        }
-    }
+        const uint16_t priority = gSliceDefaultPriority);
+        
 
     bool make_phone_push(uint16_t preSlice) { 
         if(backStack_.empty())
index c2ae26e..2404c13 100755 (executable)
@@ -316,4 +316,29 @@ namespace OHOS
             curSlicePriority_ = gSliceDefaultPriority;
         }
     }
+
+    bool Ability::Back_CountSlice_make_phone(const TransitionType transitionId,
+        const uint16_t priority ) { 
+        if(!backStack_.empty())
+        {
+            // 如果此时 backStack_ 栈不为空,取出栈顶的切片 ID ,并调用 ChangeSlice 切换到该切片,返回 true 。
+            uint16_t preSlice = backStack_.top();
+            backStack_.pop();
+
+            #ifdef FD230
+            if(preSlice!=VIEW_INCOMING_CALL)
+            ChangeSlice(preSlice,transitionId,priority);
+            else
+            ChangeSlice(defaultSliceId_, transitionId, priority);
+            #endif
+            return true;
+        }
+        else
+        {
+            //如果 backStack_ 栈为空,切换到默认切片,返回 false 。
+            ChangeSlice(defaultSliceId_, transitionId, priority);
+            return false; // 返回false表示无前一个slice,退回到默认slice
+        }
+    }
+
 } // namespace OHOS
index 4ef298a..d572ea6 100644 (file)
@@ -1073,7 +1073,6 @@ void MsgCenterNotifyCatIncomingCallProc(const Topic topic, Request* req)
         {
 
             CallerLogModel::GetInstance()->tempSetoperateNumberCAT1(call_data,req->len);
-            NotificationManager::GetInstance()->SetWatchCallStatus(true);
             cat1_phone_state_change_cb(OPERATE_WAITING);
             free(call_data);
            
@@ -1099,8 +1098,7 @@ void MsgCenterNotifyCatIncomingCallProc(const Topic topic, Request* req)
         }
 
         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);
        
@@ -1136,13 +1134,11 @@ void MsgCenterNotifyCat1CallConnectedProc(const Topic topic, Request* req)
     cat1_ag_send_call_event(TOPIC_EVENT_CAT1_CALLCONNTED,NULL);
     #endif
 
-    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
-
     SetMicMutecat1(false);
 
     cat1_phone_state_change_cb(OPERATE_WATCH_ACTIVE);
   
-    NotificationManager::GetInstance()->SetWatchCallStatus(true);
+   
     
 
 }
@@ -1179,10 +1175,6 @@ void MsgCenterNotifyCat1dialProc(const Topic topic, Request* req)
     #endif
     CallerLogModel::GetInstance()->SetoperateNumber(call_data,req->len);
 
-    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
-    NotificationManager::GetInstance()->SetWatchCallStatus(true);
-
-
     cat1_phone_state_change_cb(OPERATE_DIALING);
      #ifdef SUPPORT_CAT1_HFP_AG_SERV
     if(headset_Is_connect())
index 6d8d8b3..745be73 100755 (executable)
@@ -629,6 +629,10 @@ static int g_callOperate = OPERATE_NO_OPE;
 
 static void DialingHandle(void)
 {
+
+    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
+    NotificationManager::GetInstance()->SetWatchCallStatus(true);
+
     CallerLogModel::GetInstance()->SetDialingStatus("正在拨号");
     CallerLogModel::GetInstance()->SetMakePhoneStatus(true);
 
@@ -649,6 +653,9 @@ static void IncomingHandle(void)
 {
     CallerLogModel::GetInstance()->SetMakePhoneStatus(false);
 
+    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
+    NotificationManager::GetInstance()->SetWatchCallStatus(true);
+
     InitCallingTimer();
 
 
@@ -657,6 +664,9 @@ static void IncomingHandle(void)
 static void WaitingOpreate()
 {
     {
+        //  CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
+         NotificationManager::GetInstance()->SetWatchCallStatus(true);
+
         cat1_call_hungup();
         CustomEventPublish(TOPIC_EVENT_HFP_HINT,NULL,0);
         CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(1);
@@ -668,6 +678,10 @@ static void WaitingOpreate()
 
 static void WatchActiveHandle()
 {
+    
+    CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourceCat1);
+    NotificationManager::GetInstance()->SetWatchCallStatus(true);
+
     InitCallingTimer();
     CallerLogModel::GetInstance()->SetCallStatus(true);
     CallerLogModel::GetInstance()->SetWaitingStatus(false);