From 506c6be8089ace3532cec307e209ad122cc93f4a Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Fri, 2 Aug 2024 10:28:27 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E8=AF=9D=E7=95=8C?= =?utf8?q?=E9=9D=A2=E6=B2=A1hFP=20=E6=B2=A1SIM=E5=8D=A1=20=20=E9=94=99?= =?utf8?q?=E8=AF=AF=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../phone/include/DialingMethodView.h | 28 + .../phone/include/TelephonyInitInterface.h | 7 +- .../phone/src/DialingMethodPresenter.cpp | 83 ++- .../nativeui/phone/src/DialingMethodView.cpp | 525 +++++++++++++++++- .../src/notify/charge_notification.cpp | 15 +- .../fd230/fs/user/res/Phone/no_sim.bin | 3 + 6 files changed, 643 insertions(+), 18 deletions(-) create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Phone/no_sim.bin diff --git a/code/sdk/application/wearable/fd230app/nativeui/phone/include/DialingMethodView.h b/code/sdk/application/wearable/fd230app/nativeui/phone/include/DialingMethodView.h index 65a99f255..af53ff237 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phone/include/DialingMethodView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/phone/include/DialingMethodView.h @@ -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 diff --git a/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h b/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h index 5f579264d..76c5ff75a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h +++ b/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h @@ -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图片 diff --git a/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp index 199a60657..11b1e6e2d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp @@ -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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodView.cpp b/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodView.cpp index f2695f7d5..1d9935aee 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodView.cpp @@ -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(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(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(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(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(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(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::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::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(); } diff --git a/code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp b/code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp index 11d0ca84b..9a23c19a0 100644 --- a/code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp @@ -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 index 000000000..f7b6a0f09 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Phone/no_sim.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27724f957f2678856498627558d4d3d62415d1c4209f09852d66b33762d03e04 +size 4504 -- 2.17.1