#网络与通话
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/networkandcall/src/NetworkAndCallView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/networkandcall/src/MobileDataOptionsView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/language/LanguageInit.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/config/src/ConfigModel.cpp
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-23 15:29:51
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-23 16:25:18
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/include/MobileDataOptionsView.h
+ */
+
+#ifndef MOBILE_DATA_OPTIONS_VIEW_H
+#define MOBILE_DATA_OPTIONS_VIEW_H
+
+#include "components/ui_toggle_button.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_ext.h"
+
+namespace OHOS
+{
+ static constexpr const char *MOBILEDATAOPTIONSVIEWID = "mobiledataoptionsview";
+ class MobileDataOptionsView
+ {
+ public:
+ MobileDataOptionsView();
+ virtual ~MobileDataOptionsView();
+ static MobileDataOptionsView *GetInstance(void);
+ UIScrollView *MobileDataOptionsViewInit(void);
+ UIToggleButton *GetSystemUpdateToggleButton(void);
+ UIToggleButton *GetOnlineMusicToggleButton(void);
+
+ private:
+ void ClearAll(void);
+ UIScrollView *scrollView{nullptr};
+ UILabelExt *Title{nullptr};
+ UIImageView *MobileDataOptionsImage[2]{nullptr};
+ UILabelExt *MobileDataOptionsImageLabel[2]{nullptr};
+ UIToggleButton *SystemUpdateToggleButton{nullptr}; // 系统更新开关:开启系统更新时闲时将安装包下载到本地并添加小红点提示
+ UIToggleButton *OnlineMusicToggleButton{nullptr}; // 在线音乐开关
+ };
+}
+#endif
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-23 09:57:53
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-23 14:51:33
+ * @LastEditTime: 2024-04-23 16:24:32
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/include/NetworkAndCallView.h
*/
#include "components/ui_image_view.h"
#include "components/ui_toggle_button.h"
#include "components/ui_scroll_view.h"
+#include "networkandcall/include/MobileDataOptionsView.h"
+
namespace OHOS
{
+ typedef enum
+ {
+ NETWORKANDCALLVIEW = 0,
+ MOBILEDATAOPTIONSVIEW,
+ MAX_NETWORKANDCALLVIEWID,
+ } NETWORKANDCALLVIEWID;
+
+ static constexpr const uint8_t ITEM_NUM = 3;
+
class NetworkAndCallPresenter;
class NetworkAndCallView : public View<NetworkAndCallPresenter>
{
static NetworkAndCallView *GetInstance(void);
UIToggleButton *GetVoLTEToggleButton(void);
UIToggleButton *GetMobileDataToggleButton(void);
+ UIImageView *GetNetworkAndCallImage(int index);
+ MobileDataOptionsView *GetMobileDataOptionsView(void);
+ bool ChangeNetworkAndCallView(int16_t thisView);
+ bool ChangeMobileDataOptionsView(int16_t thisView);
+ bool ClickFunc(int16_t interface);
+ void ChangeView(int16_t hideView, int16_t showView);
void OnStart() override;
void OnSetUpView() override;
void OnTearDownView() override;
void OnStop() override;
+ private:
+ MobileDataOptionsView *mobileDataOptionsView{nullptr};
+
private:
void NetworkAndCallViewInit(void);
void ClearAll(void);
- UIScrollView *NetworkAndCallScrollView{nullptr};
+ UIScrollView *NetworkAndCallScrollView[MAX_NETWORKANDCALLVIEWID]{nullptr};
UILabelExt *Title{nullptr};
- UIImageView *NetworkAndCallImage[3]{nullptr};
- UILabelExt *NetworkAndCallLabel[3]{nullptr};
+ UIImageView *NetworkAndCallImage[ITEM_NUM]{nullptr};
+ UILabelExt *NetworkAndCallLabel[ITEM_NUM]{nullptr};
UIToggleButton *VoLTE_toggleButton{nullptr}; // VoLTE通话开关
UIToggleButton *MobileData_toggleButton{nullptr}; // 移动数据开关
UIImageView *NextImage{nullptr};
--- /dev/null
+#include "networkandcall/include/MobileDataOptionsView.h"
+#include "networkandcall/include/NetworkAndCallPresenter.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ static MobileDataOptionsView *g_pMobileDataOptionsView{nullptr};
+ MobileDataOptionsView::MobileDataOptionsView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileDataOptionsView::MobileDataOptionsView");
+ g_pMobileDataOptionsView = this;
+ }
+
+ MobileDataOptionsView::~MobileDataOptionsView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileDataOptionsView::~MobileDataOptionsView");
+ ClearAll();
+ g_pMobileDataOptionsView = nullptr;
+ }
+
+ MobileDataOptionsView *MobileDataOptionsView::GetInstance(void)
+ {
+ return g_pMobileDataOptionsView;
+ }
+
+ UIScrollView *MobileDataOptionsView::MobileDataOptionsViewInit(void)
+ {
+ if (scrollView == nullptr)
+ {
+ scrollView = new UIScrollView();
+ if (scrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::scrollView new fail!");
+ return nullptr;
+ }
+ scrollView->SetPosition(0, 0, 466, 466);
+ scrollView->SetViewId(MOBILEDATAOPTIONSVIEWID);
+ 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 nullptr;
+ }
+ scrollView->SetOnDragListener(draglistener);
+ scrollView->SetScrollBlankSize(50);
+ scrollView->SetReboundSize(35);
+ scrollView->SetHorizontalScrollState(false);
+ scrollView->SetTouchable(true);
+ scrollView->SetDraggable(true);
+ /* ---------------------------------- Title --------------------------------- */
+ Title = new UILabelExt();
+ if (Title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::Title is nullptr!");
+ return nullptr;
+ }
+ Title->SetPosition(83, 50, 300, 40);
+ Title->SetStyle(STYLE_TEXT_FONT, 30);
+ Title->SetStyle(STYLE_LINE_HEIGHT, 35);
+ Title->SetText("移动数据选项");
+ Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ Title->SetRollSpeed(40);
+ Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ scrollView->Add(Title);
+ /* -------------------------------------------------------------------------- */
+ int positionY_Img = 120;
+ const char *text[] = {"系统更新", "在线音乐"};
+ for (int i = 0; i < 2; i++)
+ {
+ MobileDataOptionsImage[i] = new UIImageView(); // Create a new UIImageView for each iteration
+ if (MobileDataOptionsImage[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::MobileDataOptionsImage[%d] is nullptr!", i);
+ return nullptr;
+ }
+ MobileDataOptionsImage[i]->SetPosition(43, positionY_Img + (i * 120), 380, 100); // Adjust Y position based on iteration
+ MobileDataOptionsImage[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ MobileDataOptionsImage[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ MobileDataOptionsImage[i]->SetStyle(STYLE_BORDER_RADIUS, 100);
+ scrollView->Add(MobileDataOptionsImage[i]);
+ /* -------------------------------------------------------------------------- */
+ MobileDataOptionsImageLabel[i] = new UILabelExt(); // Create a new UILabel for each iteration
+ if (MobileDataOptionsImageLabel[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::MobileDataOptionsImageLabel[%d] is nullptr!", i);
+ return nullptr;
+ }
+ MobileDataOptionsImageLabel[i]->SetPosition(90, 153 + (i * 120), 180, 40); // Adjust Y position based on iteration
+ MobileDataOptionsImageLabel[i]->SetStyle(STYLE_TEXT_FONT, 30);
+ MobileDataOptionsImageLabel[i]->SetStyle(STYLE_LINE_HEIGHT, 35);
+ MobileDataOptionsImageLabel[i]->SetText(text[i]);
+ MobileDataOptionsImageLabel[i]->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ MobileDataOptionsImageLabel[i]->SetRollSpeed(40);
+ MobileDataOptionsImageLabel[i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ scrollView->Add(MobileDataOptionsImageLabel[i]);
+ }
+ /* -------------------------------------------------------------------------- */
+ SystemUpdateToggleButton = new UIToggleButton();
+ if (SystemUpdateToggleButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::SystemUpdateToggleButton is nullptr!");
+ return nullptr;
+ }
+ SystemUpdateToggleButton->SetPosition(298, 145, 100, 50);
+ SystemUpdateToggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ const char *selectedImg = "/user/res/TOGGLEBUTTON_ON.bin";
+ const char *unSelectedImg = "/user/res/TOGGLEBUTTON_OFF.bin";
+ SystemUpdateToggleButton->SetImages(selectedImg, unSelectedImg);
+ scrollView->Add(SystemUpdateToggleButton);
+ /* -------------------------------------------------------------------------- */
+ OnlineMusicToggleButton = new UIToggleButton();
+ if (OnlineMusicToggleButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnlineMusicToggleButton is nullptr!");
+ return nullptr;
+ }
+ OnlineMusicToggleButton->SetPosition(298, 265, 100, 50);
+ OnlineMusicToggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ OnlineMusicToggleButton->SetImages(selectedImg, unSelectedImg);
+ scrollView->Add(OnlineMusicToggleButton);
+ /* ----------------------------- onclickListener ---------------------------- */
+ UIView::OnClickListener *toggleButtonClick = static_cast<UIView::OnClickListener *>(NetworkAndCallPresenter::GetInstance());
+ SystemUpdateToggleButton->SetOnClickListener(toggleButtonClick);
+ OnlineMusicToggleButton->SetOnClickListener(toggleButtonClick);
+ }
+ return scrollView;
+ }
+
+ void MobileDataOptionsView::ClearAll(void)
+ {
+ if (scrollView != nullptr)
+ {
+ scrollView->RemoveAll();
+
+ delete Title;
+ Title = nullptr;
+
+ for (int i = 0; i < 2; i++)
+ {
+ delete MobileDataOptionsImage[i];
+ MobileDataOptionsImage[i] = nullptr;
+
+ delete MobileDataOptionsImageLabel[i];
+ MobileDataOptionsImageLabel[i] = nullptr;
+ }
+
+ delete SystemUpdateToggleButton;
+ SystemUpdateToggleButton = nullptr;
+
+ delete OnlineMusicToggleButton;
+ OnlineMusicToggleButton = nullptr;
+
+ delete scrollView;
+ scrollView = nullptr;
+ }
+ }
+
+ UIToggleButton *MobileDataOptionsView::GetSystemUpdateToggleButton(void)
+ {
+ return SystemUpdateToggleButton;
+ }
+
+ UIToggleButton *MobileDataOptionsView::GetOnlineMusicToggleButton(void)
+ {
+ return OnlineMusicToggleButton;
+ }
+
+}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-23 09:59:32
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-23 15:05:02
+ * @LastEditTime: 2024-04-23 17:00:37
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
*/
#include "AppViewIDs.h"
#include "common/key_code.h"
#include <custom_utils.h>
#include "networkandcall/include/NetworkAndCallView.h"
+#include "map"
+#include "functional"
+#include "iostream"
namespace OHOS
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NetworkAndCallView::GetInstance fail!!");
return false;
}
+
+
+ std::map<UIView *, std::string> buttonMap = {
+ {p_NetworkAndCallView->GetVoLTEToggleButton(), "VoLTE"},
+ {p_NetworkAndCallView->GetMobileDataToggleButton(), "MobileData"},
+ {p_NetworkAndCallView->GetMobileDataOptionsView()->GetSystemUpdateToggleButton(), "SystemUpdate"},
+ {p_NetworkAndCallView->GetMobileDataOptionsView()->GetOnlineMusicToggleButton(), "OnlineMusic"}};
- if (&view == p_NetworkAndCallView->GetVoLTEToggleButton()) // 如果点击的是VOLTE按钮
+ auto it = buttonMap.find(&view);
+ if (it != buttonMap.end())
{
- if (p_NetworkAndCallView->GetVoLTEToggleButton()->GetState() == true)
+ UIToggleButton *toggleButton = dynamic_cast<UIToggleButton *>(&view);
+ if (toggleButton != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoLTE is enable!");
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoLTE is disable!");
+ if (toggleButton->GetState() == true)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is enable!", it->second.c_str());
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is disable!", it->second.c_str());
+ }
}
+ return true;
}
- else if (&view == p_NetworkAndCallView->GetMobileDataToggleButton()) // 如果点击的是移动数据按钮
+
+ if (&view == p_NetworkAndCallView->GetNetworkAndCallImage(2) && p_NetworkAndCallView->GetMobileDataToggleButton()->GetState() == true)
{
- if (p_NetworkAndCallView->GetMobileDataToggleButton()->GetState() == true)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData is enable!");
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData is disable!");
- }
+ p_NetworkAndCallView->ChangeView(NETWORKANDCALLVIEW, MOBILEDATAOPTIONSVIEW);
+ return true;
}
- return true;
+ return false;
}
bool NetworkAndCallPresenter::OnDrag(UIView &view, const DragEvent &event)
bool NetworkAndCallPresenter::OnDragEnd(UIView &view, const DragEvent &event)
{
- UNUSED(view);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NetworkAndCallPresenter::OnDragEnd");
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
- NativeAbility::GetInstance().Back();
+ if (strcmp(view.GetViewId(), MOBILEDATAOPTIONSVIEWID) == 0)
+ {
+ NetworkAndCallView::GetInstance()->ChangeView(MOBILEDATAOPTIONSVIEW, NETWORKANDCALLVIEW);
+ }
+ else
+ {
+ NativeAbility::GetInstance().Back();
+ }
}
return true;
}
void NetworkAndCallView::ClearAll(void)
{
- if (NetworkAndCallScrollView != nullptr)
+ if (NetworkAndCallScrollView[NETWORKANDCALLVIEW] != nullptr)
{
- NetworkAndCallScrollView->RemoveAll();
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->RemoveAll();
delete Title;
Title = nullptr;
- for (int i = 0; i < 3; i++)
+ for (int i = 0; i < ITEM_NUM; i++)
{
delete NetworkAndCallImage[i];
NetworkAndCallImage[i] = nullptr;
delete NextImage;
NextImage = nullptr;
- delete NetworkAndCallScrollView;
- NetworkAndCallScrollView = nullptr;
+ delete NetworkAndCallScrollView[NETWORKANDCALLVIEW];
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW] = nullptr;
}
}
void NetworkAndCallView::NetworkAndCallViewInit(void)
{
- if (NetworkAndCallScrollView == nullptr)
+ if (NetworkAndCallScrollView[NETWORKANDCALLVIEW] == nullptr)
{
- NetworkAndCallScrollView = new UIScrollView();
- if (NetworkAndCallScrollView == nullptr)
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW] = new UIScrollView();
+ if (NetworkAndCallScrollView[NETWORKANDCALLVIEW] == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::NetworkAndCallScrollView new fail!");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::NetworkAndCallScrollView[NETWORKANDCALLVIEW] new fail!");
return;
}
- NetworkAndCallScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ 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->SetOnDragListener(draglistener);
- NetworkAndCallScrollView->SetScrollBlankSize(50);
- NetworkAndCallScrollView->SetReboundSize(35);
- NetworkAndCallScrollView->SetHorizontalScrollState(false);
- NetworkAndCallScrollView->SetTouchable(true);
- NetworkAndCallScrollView->SetDraggable(true);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetOnDragListener(draglistener);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetScrollBlankSize(50);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetReboundSize(35);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetHorizontalScrollState(false);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetTouchable(true);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->SetDraggable(true);
/* ---------------------------------- Title --------------------------------- */
Title = new UILabelExt();
if (Title == nullptr)
/* -------------------------------------------------------------------------- */
int positionY_Img = 120;
const char *text[] = {"VoLTE 通话", "移动数据", "移动数据选项"};
- for (int i = 0; i < 3; i++)
+ for (int i = 0; i < ITEM_NUM; i++)
{
NetworkAndCallImage[i] = new UIImageView(); // Create a new UIImageView for each iteration
if (NetworkAndCallImage[i] == nullptr)
UIView::OnClickListener *toggleButtonClick = static_cast<UIView::OnClickListener *>(NetworkAndCallPresenter::GetInstance());
VoLTE_toggleButton->SetOnClickListener(toggleButtonClick);
MobileData_toggleButton->SetOnClickListener(toggleButtonClick);
+ NetworkAndCallImage[2]->SetTouchable(true);
+ NetworkAndCallImage[2]->SetOnClickListener(toggleButtonClick);
/* -------------------------------------------------------------------------- */
NextImage = new UIImageView();
if (NextImage == nullptr)
void NetworkAndCallView::OnSetUpView()
{
View<NetworkAndCallPresenter>::OnSetUpView();
- NetworkAndCallScrollView->Add(Title);
- for (int i = 0; i < 3; i++)
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(Title);
+ for (int i = 0; i < ITEM_NUM; i++)
{
- NetworkAndCallScrollView->Add(NetworkAndCallImage[i]);
- NetworkAndCallScrollView->Add(NetworkAndCallLabel[i]);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NetworkAndCallImage[i]);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NetworkAndCallLabel[i]);
}
- NetworkAndCallScrollView->Add(VoLTE_toggleButton);
- NetworkAndCallScrollView->Add(MobileData_toggleButton);
- NetworkAndCallScrollView->Add(NextImage);
- RootView::GetInstance()->Add(NetworkAndCallScrollView);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(VoLTE_toggleButton);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(MobileData_toggleButton);
+ NetworkAndCallScrollView[NETWORKANDCALLVIEW]->Add(NextImage);
+ RootView::GetInstance()->Add(NetworkAndCallScrollView[NETWORKANDCALLVIEW]);
Draw();
}
return;
}
- //获取VOLTE button
- UIToggleButton * NetworkAndCallView::GetVoLTEToggleButton(void)
+ // 获取VOLTE button
+ UIToggleButton *NetworkAndCallView::GetVoLTEToggleButton(void)
{
return VoLTE_toggleButton;
}
- //获取移动数据 button
- UIToggleButton * NetworkAndCallView::GetMobileDataToggleButton(void)
+ // 获取移动数据 button
+ UIToggleButton *NetworkAndCallView::GetMobileDataToggleButton(void)
{
return MobileData_toggleButton;
}
+
+ UIImageView *NetworkAndCallView::GetNetworkAndCallImage(int index)
+ {
+ return NetworkAndCallImage[index];
+ }
+
+ MobileDataOptionsView *NetworkAndCallView::GetMobileDataOptionsView(void)
+ {
+ return mobileDataOptionsView;
+ }
+
+ // 切换到网络与通话视图
+ bool NetworkAndCallView::ChangeNetworkAndCallView(int16_t thisView)
+ {
+ if (NetworkAndCallScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NetworkAndCallView::ChangeNetworkAndCallView");
+ RootView::GetInstance()->Add(NetworkAndCallScrollView[thisView]);
+ }
+ return true;
+ }
+
+ // 切换到数据选项视图
+ bool NetworkAndCallView::ChangeMobileDataOptionsView(int16_t thisView)
+ {
+ if (NetworkAndCallScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView");
+ mobileDataOptionsView = new MobileDataOptionsView();
+ if (mobileDataOptionsView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ NetworkAndCallScrollView[thisView] = mobileDataOptionsView->MobileDataOptionsViewInit();
+ RootView::GetInstance()->Add(NetworkAndCallScrollView[thisView]);
+ }
+ return true;
+ }
+
+ struct NetworkAndCallViewMapper
+ {
+ const int16_t viewId;
+ bool (NetworkAndCallView::*func)(int16_t thisView);
+ };
+
+ static const NetworkAndCallViewMapper ViewMapper[] = {
+ {NETWORKANDCALLVIEW, &NetworkAndCallView::ChangeNetworkAndCallView},
+ {MOBILEDATAOPTIONSVIEW, &NetworkAndCallView::ChangeMobileDataOptionsView},
+ };
+
+ bool NetworkAndCallView::ClickFunc(int16_t interface)
+ {
+ int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);
+ for (int i = 0; i < funcSize; i++)
+ {
+ if (interface == ViewMapper[i].viewId)
+ {
+ bool jug = (this->*(ViewMapper[i].func))(interface);
+ if (jug == false)
+ {
+ return false;
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ void NetworkAndCallView::ChangeView(int16_t hideView, int16_t showView)
+ {
+ if (hideView > MAX_NETWORKANDCALLVIEWID)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NetworkAndCallView::ViewId Overstep ones bounds");
+ return;
+ }
+ NetworkAndCallScrollView[hideView]->SetVisible(false);
+ ClickFunc(showView);
+ NetworkAndCallScrollView[showView]->SetVisible(true);
+ Draw();
+ }
}
\ No newline at end of file