增加电话界面没hFP 没SIM卡 错误判断 630/1
authorhcj <1224667075@qq.com>
Fri, 2 Aug 2024 02:28:27 +0000 (10:28 +0800)
committerhcj <1224667075@qq.com>
Fri, 2 Aug 2024 02:28:27 +0000 (10:28 +0800)
code/sdk/application/wearable/fd230app/nativeui/phone/include/DialingMethodView.h
code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h
code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodView.cpp
code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Phone/no_sim.bin [new file with mode: 0644]

index 65a99f2..af53ff2 100644 (file)
@@ -15,6 +15,7 @@
 #include "components/ui_scroll_view.h"
 #include "components/ui_button.h"
 #include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
 
 namespace OHOS
 {
@@ -31,8 +32,13 @@ namespace OHOS
         void OnSetUpView() override;
         void OnTearDownView() override;
         void OnStop() override;
+        void fail_Dial_show(uint8_t type);
+        void fail_Dial_hid(uint8_t type);
 
     private:
+        void init_no_HFP(void);
+        void init_no_sim(void);
+        void init_open_hfp(void);
         void DialingMethodViewInit(void);
         void ClearAll(void);
         UIScrollView *DialingMethodScrollView{nullptr};
@@ -41,6 +47,28 @@ namespace OHOS
         UIButton *UsingPhoneButton = nullptr;   // 通过手机拨号
         UILabelExt *UsingWatchSimLabel{nullptr};
         UILabelExt *UsingPhoneLabel{nullptr};
+
+        UIScrollView *No_HFP_ScrollView{nullptr};
+        UILabelExt *No_HFP_TITLE_Label{nullptr};
+        UILabelExt *No_HFP_Label{nullptr};
+        UILabelExt *No_HFP_button_Label{nullptr};
+        UIImageView *No_HFP_image{nullptr};
+        UIButton *No_HFP_Button{nullptr}; 
+
+        UIScrollView *NO_SIM_ScrollView{nullptr};
+        UILabelExt *NO_SIM_TITLE_Label{nullptr};
+        UILabelExt *NO_SIM_Label{nullptr};
+        UILabelExt *NO_SIM_button_Label{nullptr};
+        UIImageView *NO_SIM_image{nullptr};
+        UIButton *NO_SIM_Button{nullptr}; 
+
+        UIScrollView *OPEN_HFP_ScrollView{nullptr};
+        UILabelExt *OPEN_HFP_TITLE_Label{nullptr};
+        UILabelExt *OPEN_HFP_Label{nullptr};
+        UILabelExt *OPEN_HFP_button_Label{nullptr};
+        UIButton *OPEN_HFP_Button{nullptr}; 
+
+
     };
 }
 #endif
\ No newline at end of file
index 5f57926..76c5ff7 100644 (file)
@@ -23,11 +23,16 @@ namespace OHOS
     // 视图id
     static constexpr const char *MAINPHONE_VIEWID = "MainPhoneView";
     static constexpr const char *DIALINGMETHODVIEW_VIEWID = "DialingMethodView";
+    static constexpr const char *DIALINGMETHODVIEW_NO_HFP_VIEWID = "DialingMethodView_no_hfp";
+    static constexpr const char *DIALINGMETHODVIEW_NO_SIM_VIEWID = "DialingMethodView_no_SIM";
+    static constexpr const char *DIALINGMETHODVIEW_OPEN_HFP_VIEWID = "DialingMethodView_open_hfp";
     static constexpr const char *DIALINGMETHODBUTTON_VIEWID = "DialingMethodButton";             // 通话方式按钮视图id
     static constexpr const char *FREQUENTLYCONTACTEDBUTTON_VIEWID = "FrequentlyContactedButton"; // 常用联系人按钮视图id
     static constexpr const char *USINGWATCHSIMBUTTON_VIEWID = "UsingWatchSimButton";             // 手表SIM卡拨号按钮视图id
     static constexpr const char *USINGPHONEBUTTON_VIEWID = "UsingPhoneButton";                   // 通过手机拨号按钮视图id
-
+    static constexpr const char *BACK_MAIN_SIM_VIEWID = "back_using_SIM_Button";             // 手表SIM卡拨号按钮视图id
+    static constexpr const char *BACK_MAIN_HFP_VIEWID = "back_using_HFP_Button";             // 手表SIM卡拨号按钮视图id
+    static constexpr const char *BACK_MAIN_OPEN_HFP_VIEWID = "back_using_OPEN_HFP_Button";             // 手表SIM卡拨号按钮视图id
     // 图片
     static constexpr const char *PNG_DIALINGMETHODBUTTON_IMAGE = "/user/res/Phone/Telephone/DialingMethod.bin";             // 通话方式按钮icon图片
     static constexpr const char *PNG_FREQUENTLYCONTACTEDBUTTON_IMAGE = "/user/res/Phone/Telephone/FrequentlyContacted.bin"; // 常用联系人按钮icon图片
index 199a606..11b1e6e 100644 (file)
@@ -15,6 +15,8 @@
 #include "phone/include/phoneaddressmodel.h"
 #include "cat1_server_hal.h"
 #include "PhoneService.h"
+#include "custom_runtime.h"
+#include "cat1_ctl.h"
 namespace OHOS
 {
 
@@ -58,21 +60,36 @@ namespace OHOS
 
     bool DialingMethodPresenter::OnClick(UIView &view, const ClickEvent &event)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnClick");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnClick");
         std::string curViewId = view.GetViewId();
-
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
         if (curViewId == USINGWATCHSIMBUTTON_VIEWID)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
             TelephonyInitInterface::DIALINGMETHOD = DIALINGMETHOD_USINGWATCHSIM; // 手表SIM卡拨号
 
             if(get_address_number())
             {
+                if(uapi_cat1_get_power_stat()==0 || uapi_dev_runtime_get_cat1_simstat()==0)
+                {
+                    DialingMethodView::GetInstance()->fail_Dial_show(0);
+                }
+                else
                 calldial_event_sendmsg_toUI(get_address_number());
                 
             }
             else
-            NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
+            {
+                if(uapi_cat1_get_power_stat()==0 || uapi_dev_runtime_get_cat1_simstat()==0)
+                {
+                    DialingMethodView::GetInstance()->fail_Dial_show(0);
+                }else
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_cat1_get_power_stat");
+                    NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
+                }
+              
+            }
+            
         }
         else if (curViewId == USINGPHONEBUTTON_VIEWID)
         {
@@ -81,11 +98,44 @@ namespace OHOS
             
             if(get_address_number())
             {
+                if(uapi_hfp_connect_state()==0)
+                {
+                    DialingMethodView::GetInstance()->fail_Dial_show(1);
+                }
+                else
                 DialCall((unsigned char *)get_address_number(),strlen(get_address_number()));
             }
             else
-            NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
+            {
+                if(uapi_hfp_connect_state()==0)
+                {
+                    DialingMethodView::GetInstance()->fail_Dial_show(1);
+                }
+                else
+                NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
+            }
+           
+        }
+        else if (curViewId == BACK_MAIN_SIM_VIEWID)
+        {
+         
+            DialingMethodView::GetInstance()->fail_Dial_hid(0);
+            //DialingMethodView::GetInstance()->fail_Dial_hid(1);
+        }
+        else if (curViewId == BACK_MAIN_HFP_VIEWID)
+        {
+            DialingMethodView::GetInstance()->fail_Dial_hid(1);
+        }
+        else if (strcmp(curViewId.c_str(),"No_HFP_Label")==0)
+        {
+            DialingMethodView::GetInstance()->fail_Dial_show(2);
+        }
+        else if (curViewId==BACK_MAIN_OPEN_HFP_VIEWID)
+        {
+            DialingMethodView::GetInstance()->fail_Dial_hid(2);
         }
+        
+
         return true;
     }
 
@@ -103,12 +153,29 @@ namespace OHOS
     bool DialingMethodPresenter::OnDragEnd(UIView &view, const DragEvent &event)
     {
         UNUSED(view);
+        std::string curViewId = view.GetViewId();
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnDragEnd");
         if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) && TelephonyInitInterface::X_DRAG_FLAG) // 拖动结束判断是否是右滑
         {
-            NativeAbility::GetInstance().Back();
-            TelephonyInitInterface::X_DRAG_FLAG = false;
-            set_address_number(NULL);
+            if(curViewId==DIALINGMETHODVIEW_NO_HFP_VIEWID)
+            {
+                DialingMethodView::GetInstance()->fail_Dial_hid(1);
+            }
+            else if (curViewId==DIALINGMETHODVIEW_NO_SIM_VIEWID)
+            {
+                DialingMethodView::GetInstance()->fail_Dial_hid(0);
+            }
+             else if (curViewId==DIALINGMETHODVIEW_OPEN_HFP_VIEWID)
+            {
+                DialingMethodView::GetInstance()->fail_Dial_hid(2);
+            }
+            else
+            {
+                NativeAbility::GetInstance().Back();
+                TelephonyInitInterface::X_DRAG_FLAG = false;
+                set_address_number(NULL);
+            }
+           
         }
 
         return true;
index f2695f7..1d9935a 100644 (file)
@@ -9,6 +9,7 @@
 #include "phone/include/DialingMethodPresenter.h"
 #include "wearable_log.h"
 #include "phone/include/TelephonyInitInterface.h"
+#include "UiConfig.h"
 namespace OHOS
 {
 
@@ -56,10 +57,516 @@ namespace OHOS
 
             delete DialingMethodScrollView;
             DialingMethodScrollView = nullptr;
+
+            if(No_HFP_ScrollView)
+            {
+                No_HFP_ScrollView->RemoveAll();
+
+                delete No_HFP_TITLE_Label;
+                No_HFP_TITLE_Label = nullptr;
+
+                delete No_HFP_Label;
+                No_HFP_Label = nullptr;
+
+                delete No_HFP_button_Label;
+                No_HFP_button_Label = nullptr;
+
+                delete No_HFP_image;
+                No_HFP_image = nullptr;
+
+                delete No_HFP_Button;
+                No_HFP_Button = nullptr;
+
+                delete No_HFP_ScrollView;
+                No_HFP_ScrollView = nullptr;
+            }
+            if(NO_SIM_ScrollView)
+            {
+                NO_SIM_ScrollView->RemoveAll();
+
+                delete NO_SIM_TITLE_Label;
+                NO_SIM_TITLE_Label = nullptr;
+
+                delete NO_SIM_Label;
+                NO_SIM_Label = nullptr;
+
+                delete NO_SIM_button_Label;
+                NO_SIM_button_Label = nullptr;
+
+                delete NO_SIM_image;
+                NO_SIM_image = nullptr;
+
+                delete NO_SIM_Button;
+                NO_SIM_Button = nullptr;
+
+                delete NO_SIM_ScrollView;
+                NO_SIM_ScrollView = nullptr;
+            }
+            if(OPEN_HFP_ScrollView)
+            {
+                OPEN_HFP_ScrollView->RemoveAll();
+
+                delete OPEN_HFP_TITLE_Label;
+                OPEN_HFP_TITLE_Label = nullptr;
+
+                delete OPEN_HFP_Label;
+                OPEN_HFP_Label = nullptr;
+
+                delete OPEN_HFP_button_Label;
+                OPEN_HFP_button_Label = nullptr;
+
+                delete OPEN_HFP_Button;
+                OPEN_HFP_Button = nullptr;
+
+                delete OPEN_HFP_ScrollView;
+                OPEN_HFP_ScrollView = nullptr;
+            }
         }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialingMethodView::ClearAll success!!");
     }
 
+    void DialingMethodView::init_no_HFP(void)
+    {
+         if (No_HFP_ScrollView == nullptr)
+        {
+            /* ------------------------- DialingMethodScrollView ------------------------ */
+            TelephonyInitInterface::ScrollViewParams scrollviewParam = {
+                .x = 0,
+                .y = 0,
+                .width = Screen::GetInstance().GetWidth(),
+                .height = Screen::GetInstance().GetHeight(),
+                .viewId = DIALINGMETHODVIEW_NO_HFP_VIEWID,
+                .scrollBlankSize = 0,
+                .reboundSize = 0,
+                .direction = 0,
+            };
+            No_HFP_ScrollView = TelephonyInitInterface::ScrollViewInit(scrollviewParam);
+            if (No_HFP_ScrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialingMethodView::DialingMethodScrollView new fail!");
+                return;
+            }
+            UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(DialingMethodPresenter::GetInstance());
+            if (dragListener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener new fail!");
+                return;
+            }
+            No_HFP_ScrollView->SetOnDragListener(dragListener);
+            /* ------------------------- DialingMethodTitleLabel ------------------------ */
+            TelephonyInitInterface::LabelParams labelParam = {
+                .x = 83,
+                .y = 50,
+                .width = 300,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "连接异常",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            No_HFP_TITLE_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (No_HFP_TITLE_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+
+            No_HFP_TITLE_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+            labelParam = {
+                .x = 53,
+                .y = 233,
+                .width = 360,
+                .height = 105,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "请插入手表SIM卡或连接手机并确认开启蓝牙通话后再进行拨号",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            No_HFP_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (No_HFP_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            No_HFP_Label->SetTouchable(true);
+            No_HFP_Label->SetViewId("No_HFP_Label");
+            No_HFP_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP);
+
+
+            labelParam = {
+                .x = 133,
+                .y = 400,
+                .width = 200,
+                .height = 60,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "知道了",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            No_HFP_button_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (No_HFP_button_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            No_HFP_button_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+
+            if (No_HFP_image == nullptr) {
+                No_HFP_image = new UIImageView();
+            }
+            No_HFP_image->SetPosition(193, 121);         // widget's left position and top position
+            No_HFP_image->Resize(80, 80);          // widget's width and height
+            No_HFP_image->SetViewId("image1");// Set style
+            No_HFP_image->SetSrc(PNG_ATTENTION_IMAGE);
+
+
+            /* --------------------------- UsingWatchSimButton -------------------------- */
+            TelephonyInitInterface::ButtonParams buttonParam = {
+                .x = 0,
+                .y = 366,
+                .width = 466,
+                .height = 100,
+                .viewId = BACK_MAIN_HFP_VIEWID,
+                .backgroundColor = 0xff191919,
+                .pressedBackgroundColor = 0xff1996ff,
+            };
+            No_HFP_Button = TelephonyInitInterface::ButtonViewInit(buttonParam);
+            No_HFP_Button->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);
+
+            if (No_HFP_Button == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::UsingWatchSimButton new fail!");
+                return;
+            }
+            /* --------------------------- ButtonOnclickListen -------------------------- */
+            UIView::OnClickListener *ButtonOnclickListen = static_cast<UIView::OnClickListener *>(DialingMethodPresenter::GetInstance());
+            if (ButtonOnclickListen == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ButtonOnclickListen new fail!");
+                return;
+            }
+
+            No_HFP_Label->SetOnClickListener(ButtonOnclickListen);
+            No_HFP_Button->SetOnClickListener(ButtonOnclickListen);
+
+            No_HFP_ScrollView->Add(No_HFP_TITLE_Label);
+            No_HFP_ScrollView->Add(No_HFP_Label);
+            No_HFP_ScrollView->Add(No_HFP_Button);
+            No_HFP_ScrollView->Add(No_HFP_button_Label);
+            No_HFP_ScrollView->Add(No_HFP_image);
+            
+
+            No_HFP_ScrollView->SetVisible(false);
+        }
+       
+    }
+
+
+
+    void DialingMethodView::init_no_sim(void)
+    {
+         if (NO_SIM_ScrollView == nullptr)
+        {
+            /* ------------------------- DialingMethodScrollView ------------------------ */
+            TelephonyInitInterface::ScrollViewParams scrollviewParam = {
+                .x = 0,
+                .y = 0,
+                .width = Screen::GetInstance().GetWidth(),
+                .height = Screen::GetInstance().GetHeight(),
+                .viewId = DIALINGMETHODVIEW_NO_HFP_VIEWID,
+                .scrollBlankSize = 0,
+                .reboundSize = 0,
+                .direction = 0,
+            };
+            NO_SIM_ScrollView = TelephonyInitInterface::ScrollViewInit(scrollviewParam);
+            if (NO_SIM_ScrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialingMethodView::DialingMethodScrollView new fail!");
+                return;
+            }
+            UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(DialingMethodPresenter::GetInstance());
+            if (dragListener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener new fail!");
+                return;
+            }
+            NO_SIM_ScrollView->SetOnDragListener(dragListener);
+            /* ------------------------- DialingMethodTitleLabel ------------------------ */
+            TelephonyInitInterface::LabelParams labelParam = {
+                .x = 83,
+                .y = 50,
+                .width = 300,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "Sim卡异常",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            NO_SIM_TITLE_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (NO_SIM_TITLE_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+
+            NO_SIM_TITLE_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+            labelParam = {
+                .x = 53,
+                .y = 233,
+                .width = 360,
+                .height = 105,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "SIM卡拨号异常,请检查手表SIM卡是否正确插入",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            NO_SIM_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (NO_SIM_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            NO_SIM_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP);
+
+
+            labelParam = {
+                .x = 133,
+                .y = 400,
+                .width = 200,
+                .height = 60,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "知道了",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            NO_SIM_button_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (NO_SIM_button_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            NO_SIM_button_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+
+            if (NO_SIM_image == nullptr) {
+                NO_SIM_image = new UIImageView();
+            }
+            NO_SIM_image->SetPosition(193, 121);         // widget's left position and top position
+            NO_SIM_image->Resize(80, 80);          // widget's width and height
+            NO_SIM_image->SetViewId("image1");// Set style
+            NO_SIM_image->SetSrc("/user/res/Phone/no_sim.bin");
+
+
+            /* --------------------------- UsingWatchSimButton -------------------------- */
+            TelephonyInitInterface::ButtonParams buttonParam = {
+                .x = 0,
+                .y = 366,
+                .width = 466,
+                .height = 100,
+                .viewId = BACK_MAIN_SIM_VIEWID,
+                .backgroundColor = 0xff191919,
+                .pressedBackgroundColor = 0xff1996ff,
+            };
+            NO_SIM_Button = TelephonyInitInterface::ButtonViewInit(buttonParam);
+            NO_SIM_Button->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);
+
+            if (NO_SIM_Button == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::UsingWatchSimButton new fail!");
+                return;
+            }
+            /* --------------------------- ButtonOnclickListen -------------------------- */
+            UIView::OnClickListener *ButtonOnclickListen = static_cast<UIView::OnClickListener *>(DialingMethodPresenter::GetInstance());
+            if (ButtonOnclickListen == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ButtonOnclickListen new fail!");
+                return;
+            }
+
+
+            NO_SIM_Button->SetOnClickListener(ButtonOnclickListen);
+
+            NO_SIM_ScrollView->Add(NO_SIM_TITLE_Label);
+            NO_SIM_ScrollView->Add(NO_SIM_Label);
+            NO_SIM_ScrollView->Add(NO_SIM_Button);
+            NO_SIM_ScrollView->Add(NO_SIM_button_Label);
+            NO_SIM_ScrollView->Add(NO_SIM_image);
+            
+
+            NO_SIM_ScrollView->SetVisible(false);
+        }
+       
+    }
+    
+    void DialingMethodView::init_open_hfp(void)
+    {
+         if (OPEN_HFP_ScrollView == nullptr)
+        {
+            /* ------------------------- DialingMethodScrollView ------------------------ */
+            TelephonyInitInterface::ScrollViewParams scrollviewParam = {
+                .x = 0,
+                .y = 0,
+                .width = Screen::GetInstance().GetWidth(),
+                .height = Screen::GetInstance().GetHeight(),
+                .viewId = DIALINGMETHODVIEW_OPEN_HFP_VIEWID,
+                .scrollBlankSize = 20,
+                .reboundSize = 50,
+                .direction = 1,
+            };
+            OPEN_HFP_ScrollView = TelephonyInitInterface::ScrollViewInit(scrollviewParam);
+            if (OPEN_HFP_ScrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialingMethodView::DialingMethodScrollView new fail!");
+                return;
+            }
+            UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(DialingMethodPresenter::GetInstance());
+            if (dragListener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener new fail!");
+                return;
+            }
+            OPEN_HFP_ScrollView->SetOnDragListener(dragListener);
+            /* ------------------------- DialingMethodTitleLabel ------------------------ */
+            TelephonyInitInterface::LabelParams labelParam = {
+                .x = 83,
+                .y = 50,
+                .width = 300,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "开启蓝牙通话",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            OPEN_HFP_TITLE_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (OPEN_HFP_TITLE_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+
+            OPEN_HFP_TITLE_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+            labelParam = {
+                .x = 53,
+                .y = 105,
+                .width = 360,
+                .height = 466,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = 
+                "解决方法:\n1.苹果手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n并点击后重试\n\n2.安卓手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n点击右侧图标进入蓝牙设置\n开启通话及媒体功能后重试",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            OPEN_HFP_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (OPEN_HFP_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            OPEN_HFP_Label->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+
+
+            labelParam = {
+                .x = 42+70,
+                .y = 635+33,
+                .width = 240,
+                .height = 35,
+                .fontSize = 30,
+                .lineHeigh = 35,
+                .text = "关闭",
+                .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+            };
+            OPEN_HFP_button_Label = TelephonyInitInterface::LabelViewInit(labelParam);
+            if (OPEN_HFP_button_Label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!");
+                return;
+            }
+            OPEN_HFP_button_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+
+
+
+            /* --------------------------- UsingWatchSimButton -------------------------- */
+            TelephonyInitInterface::ButtonParams buttonParam = {
+                .x = 42,
+                .y = 635,
+                .width = 380,
+                .height = 100,
+                .viewId = BACK_MAIN_OPEN_HFP_VIEWID,
+                .backgroundColor = 0xff191919,
+                .pressedBackgroundColor = 0xff1996ff,
+            };
+            OPEN_HFP_Button = TelephonyInitInterface::ButtonViewInit(buttonParam);
+
+            if (OPEN_HFP_Button == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::UsingWatchSimButton new fail!");
+                return;
+            }
+            /* --------------------------- ButtonOnclickListen -------------------------- */
+            UIView::OnClickListener *ButtonOnclickListen = static_cast<UIView::OnClickListener *>(DialingMethodPresenter::GetInstance());
+            if (ButtonOnclickListen == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ButtonOnclickListen new fail!");
+                return;
+            }
+
+            OPEN_HFP_Button->SetOnClickListener(ButtonOnclickListen);
+
+            OPEN_HFP_ScrollView->Add(OPEN_HFP_TITLE_Label);
+            OPEN_HFP_ScrollView->Add(OPEN_HFP_Label);
+            OPEN_HFP_ScrollView->Add(OPEN_HFP_Button);
+            OPEN_HFP_ScrollView->Add(OPEN_HFP_button_Label);
+         
+            
+
+            OPEN_HFP_ScrollView->SetVisible(false);
+        }
+       
+    }
+
+
+    void DialingMethodView::fail_Dial_show(uint8_t type)
+    {
+        switch (type)
+        {
+        case 0://没 sim卡
+            NO_SIM_ScrollView->SetVisible(true);
+            break;
+        case 1://没 HFP
+            No_HFP_ScrollView->SetVisible(true);
+            break;
+        case 2://opne HFP
+            OPEN_HFP_ScrollView->SetVisible(true);
+            break;
+        
+        default:
+            break;
+        }
+    }
+
+    void DialingMethodView::fail_Dial_hid(uint8_t type)
+    {
+        switch (type)
+        {
+        case 0://没 sim卡
+            NO_SIM_ScrollView->SetVisible(false);
+            break;
+        case 1://没 HFP
+            No_HFP_ScrollView->SetVisible(false);
+            break;
+        case 2://opne HFP
+            OPEN_HFP_ScrollView->SetVisible(false);
+            break;
+        
+        default:
+            break;
+        }
+    }
+
     void DialingMethodView::DialingMethodViewInit(void)
     {
         if (DialingMethodScrollView == nullptr)
@@ -71,9 +578,9 @@ namespace OHOS
                 .width = Screen::GetInstance().GetWidth(),
                 .height = Screen::GetInstance().GetHeight(),
                 .viewId = DIALINGMETHODVIEW_VIEWID,
-                .scrollBlankSize = 50,
-                .reboundSize = 35,
-                .direction = 1,
+                .scrollBlankSize = 0,
+                .reboundSize = 0,
+                .direction = 0,
             };
             DialingMethodScrollView = TelephonyInitInterface::ScrollViewInit(scrollviewParam);
             if (DialingMethodScrollView == nullptr)
@@ -184,12 +691,17 @@ namespace OHOS
             }
             UsingPhoneLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
         }
+
+
     }
 
     void DialingMethodView::OnStart()
     {
         View<DialingMethodPresenter>::OnStart();
         DialingMethodViewInit();
+        init_no_HFP();
+        init_no_sim();
+        init_open_hfp();
         // 增加按键监听
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DialingMethodPresenter::GetInstance();
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);
@@ -198,11 +710,18 @@ namespace OHOS
     void DialingMethodView::OnSetUpView()
     {
         View<DialingMethodPresenter>::OnSetUpView();
+
         DialingMethodScrollView->Add(DialingMethodTitleLabel);
         DialingMethodScrollView->Add(UsingWatchSimButton);
         DialingMethodScrollView->Add(UsingPhoneButton);
         DialingMethodScrollView->Add(UsingWatchSimLabel);
         DialingMethodScrollView->Add(UsingPhoneLabel);
+
+        DialingMethodScrollView->Add(No_HFP_ScrollView);
+        DialingMethodScrollView->Add(NO_SIM_ScrollView);
+        DialingMethodScrollView->Add(OPEN_HFP_ScrollView);
+        
+        
         RootView::GetInstance()->Add(DialingMethodScrollView);
         Draw();
     }
index 11d0ca8..9a23c19 100644 (file)
@@ -91,6 +91,14 @@ namespace OHOS
        if (UIViewGroup_charge != nullptr) 
        {
         UIViewGroup_charge->RemoveAll();
+
+        if(Chargeing_timer)
+        {
+            osTimerStop(Chargeing_timer);
+            osTimerDelete(Chargeing_timer);
+            Chargeing_timer = NULL;
+        }
+
         if(circleProgress1_)
         {
             delete circleProgress1_;
@@ -120,12 +128,7 @@ namespace OHOS
             UILabel_Chargeing = nullptr;
 
         }
-        if(Chargeing_timer)
-        {
-            osTimerStop(Chargeing_timer);
-            osTimerDelete(Chargeing_timer);
-            Chargeing_timer = NULL;
-        }
+       
       
         RootView::GetInstance()->Remove(UIViewGroup_charge);
         delete UIViewGroup_charge;
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Phone/no_sim.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Phone/no_sim.bin
new file mode 100644 (file)
index 0000000..f7b6a0f
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27724f957f2678856498627558d4d3d62415d1c4209f09852d66b33762d03e04
+size 4504