网络与通话添加宏判断电信有VoLTE开关,移动无VoLTE开关 777/2
authorluozheng <1732036298@qq.com>
Fri, 23 Aug 2024 10:36:45 +0000 (18:36 +0800)
committerluozheng <1732036298@qq.com>
Fri, 23 Aug 2024 10:36:45 +0000 (18:36 +0800)
code/sdk/application/wearable/fd230app/nativeui/networkandcall/include/NetworkAndCallView.h
code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallView.cpp

index 39af501..0018df7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-23 09:57:53
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-28 17:27:04
+ * @LastEditTime: 2024-08-23 18:06:15
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/include/NetworkAndCallView.h
  */
 
@@ -26,7 +26,11 @@ namespace OHOS
         MAX_NETWORKANDCALLVIEWID,
     } NETWORKANDCALLVIEWID;
 
+#if defined(SUPPORT_TELECOM_DMP)
+    static constexpr const uint8_t ITEM_NUM = 2;
+#else
     static constexpr const uint8_t ITEM_NUM = 1;
+#endif
 
     class NetworkAndCallPresenter;
     class NetworkAndCallView : public View<NetworkAndCallPresenter>
@@ -63,7 +67,7 @@ namespace OHOS
         UILabelExt *NetworkAndCallLabel[ITEM_NUM]{nullptr};
         UIToggleButton *VoLTE_toggleButton{nullptr};      // VoLTE通话开关
         UIToggleButton *MobileData_toggleButton{nullptr}; // 移动数据开关
-        //UIImageView *NextImage{nullptr};
+        // UIImageView *NextImage{nullptr};
     };
 }
 #endif
\ No newline at end of file
index 331ef62..6e88acb 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-23 09:59:32
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-07-27 11:19:24
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-23 18:13:35
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -84,7 +84,7 @@ namespace OHOS
                 if (toggleButton->GetState() == true)
                 {
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is enable!", it->second.c_str());
-                    if (it->second == "VoLTE")
+                    if (it->second == "VoLTE" && p_NetworkAndCallView->GetMobileDataToggleButton()->GetState() == true)
                     {
                         ConfigModel::GetInstance()->SetVoLTE_Call(true);
 
@@ -93,12 +93,13 @@ namespace OHOS
                     {
                         uapi_set4GCapability(true);
                         ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+                        p_NetworkAndCallView->GetVoLTEToggleButton()->SetTouchable(true);
                     }
                 }
                 else
                 {
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is disable!", it->second.c_str());
-                    if (it->second == "VoLTE")
+                    if (it->second == "VoLTE" && p_NetworkAndCallView->GetMobileDataToggleButton()->GetState() == true)
                     {
                         ConfigModel::GetInstance()->SetVoLTE_Call(false);
                     }
@@ -110,6 +111,11 @@ namespace OHOS
                         uapi_set4GCapability(false);
                         #endif
                         ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+                        if(p_NetworkAndCallView->GetVoLTEToggleButton()->GetState())
+                        {
+                            p_NetworkAndCallView->GetVoLTEToggleButton()->SetState(false);
+                            p_NetworkAndCallView->GetVoLTEToggleButton()->SetTouchable(false);
+                        }
                     }
                 }
             }
index 06beebc..b60cfdd 100644 (file)
@@ -4,6 +4,7 @@
 #include "UiConfig.h"
 #include "ConfigModel.h"
 #include "cat1_ctl.h"
+#include "ui_resource_string.h"
 namespace OHOS
 {
 
@@ -19,7 +20,7 @@ namespace OHOS
     NetworkAndCallView::~NetworkAndCallView()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NetworkAndCallView::~NetworkAndCallView");
-        ClearAll();
+
         g_pNetworkAndCallView = nullptr;
     }
 
@@ -39,7 +40,7 @@ namespace OHOS
                 delete Title;
                 Title = nullptr;
             }
-            
+
             for (int i = 0; i < ITEM_NUM; i++)
             {
                 delete NetworkAndCallImage[i];
@@ -49,8 +50,11 @@ namespace OHOS
                 NetworkAndCallLabel[i] = nullptr;
             }
 
-            // delete VoLTE_toggleButton;
-            // VoLTE_toggleButton = nullptr;
+            if (VoLTE_toggleButton != nullptr)
+            {
+                delete VoLTE_toggleButton;
+                VoLTE_toggleButton = nullptr;
+            }
 
             if (MobileData_toggleButton != nullptr)
             {
@@ -77,15 +81,8 @@ namespace OHOS
                 return;
             }
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
-            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(NetworkAndCallPresenter::GetInstance());
-            if (draglistener == nullptr)
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::draglistener can not be nullptr!");
-                return;
-            }
-            NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetOnDragListener(draglistener);
-            // NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetScrollBlankSize(50);
-            // NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetReboundSize(35);
+            NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetOnDragListener(presenter_);
+            NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetReboundSize(35);
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetHorizontalScrollState(false);
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetTouchable(true);
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetDraggable(true);
@@ -99,11 +96,10 @@ namespace OHOS
             Title->SetPosition(83, 50, 300, 40);
             Title->SetStyle(STYLE_TEXT_FONT, 30);
             Title->SetStyle(STYLE_LINE_HEIGHT, 35);
-            // Title->SetText("网络与通话");
-            Title->SetTextId(STR_NETWORKANDCALL);
-            Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+            Title->SetTextId(STR_NETWORKANDCALL); // 网络与通话
+            Title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
             Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            // Title->SetRollSpeed(40);
+            Title->SetRollSpeed(70);
             Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             /* -------------------------------------------------------------------------- */
             int positionY_Img = 120;
@@ -131,48 +127,44 @@ namespace OHOS
                 NetworkAndCallLabel[i]->SetPosition(90, 153 + (i * 120), 180, 40); // Adjust Y position based on iteration
                 NetworkAndCallLabel[i]->SetStyle(STYLE_TEXT_FONT, 30);
                 NetworkAndCallLabel[i]->SetStyle(STYLE_LINE_HEIGHT, 35);
-                // NetworkAndCallLabel[i]->SetText(text[i]);
                 NetworkAndCallLabel[i]->SetTextId(textId[i]);
-                NetworkAndCallLabel[i]->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
-                // NetworkAndCallLabel[i]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-                // NetworkAndCallLabel[i]->SetRollSpeed(40);
+                NetworkAndCallLabel[i]->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+                NetworkAndCallLabel[i]->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+                NetworkAndCallLabel[i]->SetRollSpeed(70);
                 NetworkAndCallLabel[i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             }
             /* -------------------------------------------------------------------------- */
-            MobileData_toggleButton = new UIToggleButton();
             if (MobileData_toggleButton == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::MobileData_toggleButton is nullptr!");
-                return;
+                MobileData_toggleButton = new UIToggleButton();
+                if (MobileData_toggleButton == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::MobileData_toggleButton is nullptr!");
+                    return;
+                }
             }
             MobileData_toggleButton->SetPosition(298, 145, 100, 50);
             MobileData_toggleButton->SetState(uapi_cat1_get_power_stat());
             MobileData_toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
-            const char *selectedImg = "/user/res/TOGGLEBUTTON_ON.bin";
-            const char *unSelectedImg = "/user/res/TOGGLEBUTTON_OFF.bin";
-            MobileData_toggleButton->SetImages(selectedImg, unSelectedImg);
-            UIView::OnClickListener *toggleButtonClick = static_cast<UIView::OnClickListener *>(NetworkAndCallPresenter::GetInstance());
-            if (toggleButtonClick == nullptr)
+            MobileData_toggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);
+            MobileData_toggleButton->SetOnClickListener(presenter_);
+/* -------------------------------------------------------------------------- */
+#if defined(SUPPORT_TELECOM_DMP)
+            if (VoLTE_toggleButton == nullptr)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NetworkAndCallPresenter::GetInstance fail!!");
-                return;
+                VoLTE_toggleButton = new UIToggleButton();
+                if (VoLTE_toggleButton == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::VoLTE_toggleButton is nullptr!");
+                    return;
+                }
             }
-            MobileData_toggleButton->SetOnClickListener(toggleButtonClick);
-            /* -------------------------------------------------------------------------- */
-            // VoLTE_toggleButton = new UIToggleButton();
-            // if (VoLTE_toggleButton == nullptr)
-            // {
-            //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::VoLTE_toggleButton is nullptr!");
-            //     return;
-            // }
-            // VoLTE_toggleButton->SetPosition(298, 265, 100, 50);
-            // VoLTE_toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
-            // VoLTE_toggleButton->SetState(ConfigModel::GetInstance()->GetVoLTE_Call());
-            // VoLTE_toggleButton->SetImages(selectedImg, unSelectedImg);
-            // /* ----------------------------- onclickListener ---------------------------- */
-            // VoLTE_toggleButton->SetOnClickListener(toggleButtonClick);
-            // NetworkAndCallImage[2]->SetTouchable(true);
-            // NetworkAndCallImage[2]->SetOnClickListener(toggleButtonClick);
+            VoLTE_toggleButton->SetPosition(298, 265, 100, 50);
+            VoLTE_toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+            VoLTE_toggleButton->SetState(MobileData_toggleButton->GetState() == true && ConfigModel::GetInstance()->GetVoLTE_Call());
+            VoLTE_toggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);
+            VoLTE_toggleButton->SetOnClickListener(presenter_);
+#endif
             /* -------------------------------------------------------------------------- */
             // NextImage = new UIImageView();
             // if (NextImage == nullptr)
@@ -189,9 +181,7 @@ namespace OHOS
     {
         View<NetworkAndCallPresenter>::OnStart();
         NetworkAndCallViewInit();
-        // 增加按键监听
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::NetworkAndCallPresenter::GetInstance();
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void NetworkAndCallView::OnSetUpView()
@@ -203,7 +193,9 @@ namespace OHOS
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NetworkAndCallImage[i]);
             NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NetworkAndCallLabel[i]);
         }
-        // NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(VoLTE_toggleButton);
+#if defined(SUPPORT_TELECOM_DMP)
+        NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(VoLTE_toggleButton);
+#endif
         NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(MobileData_toggleButton);
         // NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NextImage);
         RootView::GetInstance()->Add(NetworkAndCallScrollView[NETWORKANDCALLVIEW]);
@@ -212,7 +204,6 @@ namespace OHOS
 
     void NetworkAndCallView::OnTearDownView()
     {
-
         View<NetworkAndCallPresenter>::OnTearDownView();
         return;
     }
@@ -223,6 +214,7 @@ namespace OHOS
         View<NetworkAndCallPresenter>::OnStop();
         RootView::GetInstance()->RemoveAll();
         RootView::GetInstance()->ClearOnKeyActListener();
+        ClearAll();
         return;
     }