+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-06-26 18:14:24
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-29 15:08:41
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp
+ */
+
+#if 1
+#include "PullUpDownView.h"
+#include "wearable_log.h"
+#include "UiConfig.h"
+#include "common/screen.h"
+#include "main/include/MainPresenterSample.h"
+#include "screensetting/include/ScreenModels.h"
+#include "settings/include/SettingModel.h"
+#include "ui_resource_image.h"
+#include "dnotdisturb/include/DnotDisturbModel.h"
+#include "custom_utils.h"
+#include "custom_runtime.h"
+namespace OHOS
+{
+
+ /* ---------------------------------- 坐标位置 ---------------------------------- */
+ // 设置
+ static constexpr uint16_t SETTING_IMG_X = 30;
+ static constexpr uint16_t SETTING_IMG_Y = 186;
+ static constexpr const char *DROPDOWN_SETTING_IMAGE = "/user/res/dropdown/DROPDOWN_SETTING.bin";
+
+ // 蓝牙
+ static constexpr uint16_t BLUETOOTH_IMG_X = 76;
+ static constexpr uint16_t BLUETOOTH_IMG_Y = 76;
+ static constexpr const char *DROPDOWN_BLUETOOTH_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTH.bin";
+
+ // 勿扰
+ static constexpr uint16_t DNOTDISTURB_IMG_X = 186;
+ static constexpr uint16_t DNOTDISTURB_IMG_Y = 30;
+ static constexpr const char *DROPDOWN_DNOTDISTURB_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB.bin";
+
+ // 省电
+ static constexpr uint16_t SAVEPOWER_IMG_X = 296;
+ static constexpr uint16_t SAVEPOWER_IMG_Y = 76;
+ static constexpr const char *DROPDOWN_SAVEPOWER_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER.bin";
+
+ // 找手机
+ static constexpr uint16_t FINDPHONE_IMG_X = 342;
+ static constexpr uint16_t FINDPHONE_IMG_Y = 186;
+ static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_FINDPHONE.bin";
+
+ // line
+ static constexpr uint16_t LINE_IMG_X = 193;
+ static constexpr uint16_t LINE_IMG_Y = 430;
+ static constexpr const char *DROPDOWN_LINE_IMAGE = "/user/res/dropdown/DROPDOWN_LINE.bin";
+
+ // icon图片大小
+ static constexpr uint16_t ICON_IMG_SIZE_W = 94;
+ static constexpr uint16_t ICON_IMG_SIZE_H = 94;
+
+ // 电池
+ static constexpr uint16_t BATTERY_X = 209;
+ static constexpr uint16_t BATTERY_Y = 180;
+
+ // 时间
+ static constexpr uint16_t TIME_LABEL_X = 172;
+ static constexpr uint16_t TIME_LABEL_Y = 230;
+
+ // 日期
+ static constexpr uint16_t DATE_LABEL_X = 110;
+ static constexpr uint16_t DATE_LABEL_Y = 300;
+
+ // 星期
+ static constexpr uint16_t WEEK_LABEL_X = 295;
+ static constexpr uint16_t WEEK_LABEL_Y = 300;
+
+ // 手机连接状态
+ static constexpr uint16_t PHONECONNECTSTATUS_IMG_X = 123;
+ static constexpr uint16_t PHONECONNECTSTATUS_IMG_Y = 350;
+ static constexpr const char *DROPDOWN_PHONECONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONECONNECTED.bin";
+ static constexpr const char *DROPDOWN_PHONEDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONEDISCONNECTED.bin";
+
+ // 耳机连接状态
+ static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_X = 203;
+ static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_Y = 350;
+ static constexpr const char *DROPDOWN_EARPHONESCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESCONNECTED.bin";
+ static constexpr const char *DROPDOWN_EARPHONESDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESDISCONNECTED.bin";
+
+ // 蓝牙连接状态
+ static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_X = 283;
+ static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_Y = 350;
+ static constexpr const char *DROPDOWN_BLUETOOTHCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHCONNECTED.bin";
+ static constexpr const char *DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHDISCONNECTED.bin";
+
+ static constexpr uint16_t CONNECTSTATUS_IMG_W = 60;
+ static constexpr uint16_t CONNECTSTATUS_IMG_H = 60;
+
+ static constexpr const char *DROPDOWN_NOSIGNAL_IMAGE = "/user/res/dropdown/DROPDOWN_NOSIGNAL.bin";
+ static const int64_t COLOR_SIGNAL_ON = 0xffffffff;
+ static const int64_t COLOR_SIGNAL_OFF = 0xff383838;
+ static const int BATTERY_IMAGE_WIDTH = 48;
+ static const int BATTERY_IMAGE_HEIGHT = 30;
+ static const int PROGRESS_WIDTH = 30;
+ static const int PROGRESS_HEIGHT = 18;
+ /* -------------------------------------------------------------------------- */
+ std::string getWeekString(int wday)
+ {
+ std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+ return weekDays[wday];
+ }
+ /* -------------------------------------------------------------------------- */
+ static PullUpDownView *g_pPullUpDownView = nullptr;
+ PullUpDownView::PullUpDownView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PullUpDownView");
+ g_pPullUpDownView = this;
+ }
+
+ PullUpDownView::~PullUpDownView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::~PullUpDownView");
+ ClearAll();
+ g_pPullUpDownView = nullptr;
+ }
+
+ PullUpDownView *PullUpDownView::GetInstance(void)
+ {
+ return g_pPullUpDownView;
+ }
+
+ // 清除信号强度相关组件
+ void PullUpDownView::ClearAllSingalComponentsView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllSingalComponentsView");
+ if (NoSignal != nullptr)
+ {
+ delete NoSignal;
+ NoSignal = nullptr;
+ }
+
+ for (int i = 0; i < 4; i++)
+ {
+ if (showSignalStrength[i] != nullptr)
+ {
+ delete showSignalStrength[i];
+ showSignalStrength[i] = nullptr;
+ }
+ }
+
+ if (Singal_4 != nullptr)
+ {
+ delete Singal_4;
+ Singal_4 = nullptr;
+ }
+ }
+
+ // 清除所有与连接状态相关的视图组件
+ void PullUpDownView::ClearAllConnectedStatusComponentsView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView");
+ if (connectedStatusBackgroundButton != nullptr)
+ {
+ delete connectedStatusBackgroundButton;
+ connectedStatusBackgroundButton = nullptr;
+ }
+
+ if (showPhoneConnectedStatus != nullptr)
+ {
+ delete showPhoneConnectedStatus;
+ showPhoneConnectedStatus = nullptr;
+ }
+
+ if (showEarPhoneConnectedStatus != nullptr)
+ {
+ delete showEarPhoneConnectedStatus;
+ showEarPhoneConnectedStatus = nullptr;
+ }
+
+ if (showBluetoothConnectedStatus != nullptr)
+ {
+ delete showBluetoothConnectedStatus;
+ showBluetoothConnectedStatus = nullptr;
+ }
+ }
+
+ void PullUpDownView::ClearAll()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll");
+ RemoveAll();
+ if (group[DROPDOWNVIEW] != nullptr)
+ {
+ group[DROPDOWNVIEW]->RemoveAll();
+ group[DROPDOWNVIEW]->ClearBackgroundBlur();
+ delete group[DROPDOWNVIEW];
+ group[DROPDOWNVIEW] = nullptr;
+ }
+
+ if (dropSetting != nullptr)
+ {
+ delete dropSetting;
+ dropSetting = nullptr;
+ }
+
+ if (dropBluetooth != nullptr)
+ {
+ delete dropBluetooth;
+ dropBluetooth = nullptr;
+ }
+
+ if (dropDnotDisturb != nullptr)
+ {
+ delete dropDnotDisturb;
+ dropDnotDisturb = nullptr;
+ }
+
+ if (dropSavePower != nullptr)
+ {
+ delete dropSavePower;
+ dropSavePower = nullptr;
+ }
+
+ if (drofindPhone != nullptr)
+ {
+ delete drofindPhone;
+ drofindPhone = nullptr;
+ }
+
+ if (dropLine != nullptr)
+ {
+ delete dropLine;
+ dropLine = nullptr;
+ }
+
+ if (showTimeLabel != nullptr)
+ {
+ delete showTimeLabel;
+ showTimeLabel = nullptr;
+ }
+
+ if (showDateLabel != nullptr)
+ {
+ delete showDateLabel;
+ showDateLabel = nullptr;
+ }
+
+ if (showWeekLabel != nullptr)
+ {
+ delete showWeekLabel;
+ showWeekLabel = nullptr;
+ }
+ /* -------------------------------------------------------------------------- */
+ ClearAllSingalComponentsView();
+ ClearAllConnectedStatusComponentsView();
+ /* -------------------------------------------------------------------------- */
+ if (batteryimage != nullptr)
+ {
+ delete batteryimage;
+ batteryimage = nullptr;
+ }
+
+ if (progress != nullptr)
+ {
+ delete progress;
+ progress = nullptr;
+ }
+
+ if (connectedStatusView != nullptr)
+ {
+ delete connectedStatusView;
+ connectedStatusView = nullptr;
+ group[CONNECTEDSTATUSVIEW] = nullptr;
+ }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!");
+ }
+
+ UIImageView *PullUpDownView::dropDownIconImageViweInit(ImageConfig &imageconfig)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDownIconImageViweInit");
+ UIImageView *Image = new UIImageView();
+ if (Image == nullptr)
+ {
+ return nullptr;
+ }
+ Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);
+ Image->SetViewId(imageconfig.viewid);
+ Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ Image->SetStyle(STYLE_BORDER_RADIUS, 100);
+ Image->SetAutoEnable(false);
+ Image->SetResizeMode(UIImageView::CENTER);
+ Image->SetSrc(imageconfig.src);
+ Image->SetTouchable(true);
+ Image->SetOnClickListener(imageconfig.clicklistener);
+
+ return Image;
+ }
+
+ /// @brief 创建icon图标
+ void PullUpDownView::createDropDownIconImageViwe(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImg");
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
+ if (clickListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!");
+ return;
+ }
+ /* ---------------------------------- 下拉设置图片 ---------------------------------- */
+ ImageConfig imageconfig = {
+ .x = SETTING_IMG_X,
+ .y = SETTING_IMG_Y,
+ .w = ICON_IMG_SIZE_W,
+ .h = ICON_IMG_SIZE_H,
+ .viewid = DROPDOWN_CLICK_SETTING,
+ .src = DROPDOWN_SETTING_IMAGE,
+ .clicklistener = clickListener,
+ };
+ dropSetting = dropDownIconImageViweInit(imageconfig);
+ if (dropSetting == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSetting new fail");
+ return;
+ }
+ /* ----------------------------------- 蓝牙 ----------------------------------- */
+ imageconfig = {
+ .x = BLUETOOTH_IMG_X,
+ .y = BLUETOOTH_IMG_Y,
+ .w = ICON_IMG_SIZE_W,
+ .h = ICON_IMG_SIZE_H,
+ .viewid = DROPDOWN_CLICK_BLUETOOTH,
+ .src = DROPDOWN_BLUETOOTH_IMAGE,
+ .clicklistener = clickListener,
+ };
+ dropBluetooth = dropDownIconImageViweInit(imageconfig);
+ if (dropBluetooth == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropBluetooth new fail");
+ return;
+ }
+ /* ----------------------------------- 勿扰模式 ----------------------------------- */
+ imageconfig = {
+ .x = DNOTDISTURB_IMG_X,
+ .y = DNOTDISTURB_IMG_Y,
+ .w = ICON_IMG_SIZE_W,
+ .h = ICON_IMG_SIZE_H,
+ .viewid = DROPDOWN_CLICK_DNOTDISTURB,
+ .src = DROPDOWN_DNOTDISTURB_IMAGE,
+ .clicklistener = clickListener,
+ };
+ dropDnotDisturb = dropDownIconImageViweInit(imageconfig);
+ if (dropDnotDisturb == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDnotDisturb new fail");
+ return;
+ }
+ UpdateDnotDisturbStatus(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled());
+ /* ----------------------------------- 省电 ----------------------------------- */
+ imageconfig = {
+ .x = SAVEPOWER_IMG_X,
+ .y = SAVEPOWER_IMG_Y,
+ .w = ICON_IMG_SIZE_W,
+ .h = ICON_IMG_SIZE_H,
+ .viewid = DROPDOWN_CLICK_SAVEELE,
+ .src = DROPDOWN_DNOTDISTURB_IMAGE,
+ .clicklistener = clickListener,
+ };
+ dropSavePower = dropDownIconImageViweInit(imageconfig);
+ if (dropSavePower == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSavePower new fail");
+ return;
+ }
+ /* ----------------------------------- 找手机 ---------------------------------- */
+ imageconfig = {
+ .x = FINDPHONE_IMG_X,
+ .y = FINDPHONE_IMG_Y,
+ .w = ICON_IMG_SIZE_W,
+ .h = ICON_IMG_SIZE_H,
+ .viewid = DROPDOWN_CLICK_FINDMYPHONE,
+ .src = DROPDOWN_DNOTDISTURB_IMAGE,
+ .clicklistener = clickListener,
+ };
+ drofindPhone = dropDownIconImageViweInit(imageconfig);
+ if (drofindPhone == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::drofindPhone new fail");
+ return;
+ }
+ /* -------------------------------- dropLine -------------------------------- */
+ dropLine = new UIImageView();
+ if (dropLine == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLine new fail");
+ return;
+ }
+ dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
+ dropLine->SetSrc(DROPDOWN_LINE_IMAGE);
+ /* -------------------------------- 添加组件到视图上 -------------------------------- */
+ group[DROPDOWNVIEW]->Add(dropSetting);
+ group[DROPDOWNVIEW]->Add(dropBluetooth);
+ group[DROPDOWNVIEW]->Add(dropDnotDisturb);
+ group[DROPDOWNVIEW]->Add(dropSavePower);
+ group[DROPDOWNVIEW]->Add(drofindPhone);
+ group[DROPDOWNVIEW]->Add(dropLine);
+ }
+
+ // 获取手机连接状态
+ bool PullUpDownView::GetPhoneConnectedStatus(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetPhoneConnectedStatus");
+ // uint8_t ret = uapi_dev_runtime_get_ble_connect_stat();
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ble phone connect stat = %d", ret);
+ // if (ret == 1)
+ // return true;
+ // else
+ // return false;
+
+ return SettingModel::GetInstance().GetPhoneConnectStatus();
+ }
+
+ // 获取蓝牙耳机连接状态
+ bool PullUpDownView::GetEarPhoneConnectedStatus(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetEarPhoneConnectedStatus");
+ // uint8_t ret = uapi_dev_runtime_get_earphone_connect_stat();
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "earphone connect stat = %d", ret);
+ // if (ret == 1)
+ // return true;
+ // else
+ // return false;
+
+ return SettingModel::GetInstance().GetEarPhoneConnectStatus();
+ }
+
+ // 获取蓝牙连接状态
+ bool PullUpDownView::GetBlueToothConnectedStatus(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetBlueToothConnectedStatus");
+ // uint8_t ret = uapi_dev_runtime_get_br_connect_stat();
+ // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "br connect stat = %d [0 no connect, 1 a2dp, 2 hfp, 3 both]", ret);
+ // if (ret != 0)
+ // return true;
+ // else
+ // return false;
+
+ return SettingModel::GetInstance().GetBlueToothConnectStatus();
+ }
+
+ UIImageView *PullUpDownView::dropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h)
+ {
+ UIImageView *img = new UIImageView();
+ if (img == nullptr)
+ {
+ return nullptr;
+ }
+ img->SetPosition(x, y, w, h);
+ img->SetAutoEnable(false);
+ img->SetResizeMode(UIImageView::CENTER);
+ img->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+ return img;
+ }
+
+ /// @brief 创建与连接状态相关组件
+ void PullUpDownView::createDropDownConnectedStatusImageViwe(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitConnectedStatusImage");
+ connectedStatusBackgroundButton = new UIButton();
+ if (connectedStatusBackgroundButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail");
+ return;
+ }
+ connectedStatusBackgroundButton->SetPosition(113, 348, 240, 64);
+ connectedStatusBackgroundButton->SetViewId(CONNECTEDSTATUSBACKGROUNDBUTTON);
+ connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+ connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
+ connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
+ if (clickListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!");
+ return;
+ }
+ connectedStatusBackgroundButton->SetOnClickListener(clickListener);
+ /* -------------------------------- 显示手机连接状态 -------------------------------- */
+
+ showPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(PHONECONNECTSTATUS_IMG_X, PHONECONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
+ if (showPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail");
+ return;
+ }
+ /* -------------------------------- 显示耳机连接状态 -------------------------------- */
+ showEarPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(EARPHONESCONNECTSTATUS_IMG_X, EARPHONESCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
+ if (showEarPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail");
+ return;
+ }
+ /* -------------------------------- 显示蓝牙连接状态 -------------------------------- */
+ showBluetoothConnectedStatus = dropDownConnectedStatusImageViweInit(BLUETOOTHCONNECTSTATUS_IMG_X, BLUETOOTHCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
+ if (showBluetoothConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail");
+ return;
+ }
+ /* -------------------------------------------------------------------------- */
+ UpdatePhoneStatus(GetPhoneConnectedStatus());
+ UpdateEarPhoneStatus(GetEarPhoneConnectedStatus());
+ UpdateBlueToothStatus(GetBlueToothConnectedStatus());
+ /* -------------------------------------------------------------------------- */
+ group[DROPDOWNVIEW]->Add(connectedStatusBackgroundButton);
+ group[DROPDOWNVIEW]->Add(showPhoneConnectedStatus);
+ group[DROPDOWNVIEW]->Add(showEarPhoneConnectedStatus);
+ group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus);
+ }
+
+ /***
+ * @brief 初始化时间,日期,星期,电池,信号强度
+ */
+ bool PullUpDownView::InitBaseData()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData");
+ if (!InitSingalComponentsView())
+ {
+ return false;
+ }
+
+ /* ---------------------------------- 时间显示 ---------------------------------- */
+ showTimeLabel = new UILabel();
+ if (showTimeLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimeLabel new fail");
+ return false;
+ }
+ showTimeLabel->SetPosition(TIME_LABEL_X, TIME_LABEL_Y);
+ showTimeLabel->SetStyle(STYLE_TEXT_FONT, 50);
+ showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 59);
+ showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50);
+ /* ---------------------------------- 日期显示 ---------------------------------- */
+ showDateLabel = new UILabel();
+ if (showDateLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateLabel new fail");
+ return false;
+ }
+ showDateLabel->SetPosition(DATE_LABEL_X, DATE_LABEL_Y);
+ showDateLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ showDateLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ showDateLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ showDateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ showDateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ /* ---------------------------------- 星期显示 ---------------------------------- */
+ showWeekLabel = new UILabel();
+ if (showWeekLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showWeekLabel new fail");
+ return false;
+ }
+ showWeekLabel->SetPosition(WEEK_LABEL_X, WEEK_LABEL_Y);
+ showWeekLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ showWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ showWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ showWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ showWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ /* ----------------------------------- 电池 ----------------------------------- */
+ batteryimage = new UIImageView();
+ if (batteryimage == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail");
+ return false;
+ }
+ batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
+ std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin";
+ batteryimage->SetSrc(batteryimagesPath.c_str());
+ /* -------------------------------------------------------------------------- */
+ progress = new UIBoxProgress();
+ if (progress == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail");
+ return false;
+ }
+ progress->SetPosition(206, 180, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ progress->SetValidHeight(PROGRESS_HEIGHT);
+ progress->SetValidWidth(PROGRESS_WIDTH);
+
+ // progress->SetValue(value);
+ const char *progressImageSrc = "/user/res/Battery/Battery_Normal.bin";
+ progress->SetImage(progressImageSrc, nullptr);
+ progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
+ progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);
+ progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
+ progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
+
+ group[DROPDOWNVIEW]->Add(progress);
+ group[DROPDOWNVIEW]->Add(batteryimage);
+ group[DROPDOWNVIEW]->Add(showTimeLabel);
+ group[DROPDOWNVIEW]->Add(showDateLabel);
+ group[DROPDOWNVIEW]->Add(showWeekLabel);
+
+ /* -------------------------------------------------------------------------- */
+ UpdateSignalStrengthStatusAndBatteryPosition();
+ /* -------------------------------------------------------------------------- */
+
+ return true;
+ }
+
+ // 初始化信号强度相关组件
+ bool PullUpDownView::InitSingalComponentsView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitSingalComponentsView");
+ /* -------------------------------------------------------------------------- */
+ NoSignal = new UIImageView();
+ if (NoSignal == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail");
+ return false;
+ }
+ NoSignal->SetPosition(160, 176, 36, 38);
+ NoSignal->SetAutoEnable(false);
+ NoSignal->SetResizeMode(UIImageView::CENTER);
+ NoSignal->SetSrc(DROPDOWN_NOSIGNAL_IMAGE);
+ NoSignal->SetVisible(false);
+ group[DROPDOWNVIEW]->Add(NoSignal);
+ /* -------------------------------------------------------------------------- */
+ // 定义一个结构体,用于存储 ImageView 的信息
+ struct ImageViewInfo
+ {
+ int posX;
+ int posY;
+ int width;
+ int height;
+ };
+ // 待添加的 ImageView 信息列表
+ std::vector<ImageViewInfo> imageViewList = {
+ {160, 204, 6, 6},
+ {170, 196, 6, 14},
+ {180, 188, 6, 22},
+ {190, 180, 6, 30},
+ };
+
+ // 循环添加 ImageView 到相应的容器中
+ for (int i = 0; i < 4; i++)
+ {
+ if (showSignalStrength[i] == nullptr)
+ {
+ showSignalStrength[i] = new UIImageView();
+ if (showSignalStrength[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showSignalStrength[%d] new fail", i);
+ return false;
+ }
+ }
+ showSignalStrength[i]->SetPosition(imageViewList[i].posX, imageViewList[i].posY, imageViewList[i].width, imageViewList[i].height);
+ showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10);
+ group[DROPDOWNVIEW]->Add(showSignalStrength[i]);
+ showSignalStrength[i]->SetVisible(false);
+ }
+ /* -------------------------------------------------------------------------- */
+ if (Singal_4 == nullptr)
+ {
+ Singal_4 = new UILabel();
+ }
+ Singal_4->SetPosition(201, 176, 40, 47);
+ Singal_4->SetStyle(STYLE_TEXT_FONT, 34);
+ Singal_4->SetStyle(STYLE_LINE_HEIGHT, 40);
+ Singal_4->SetText("4G");
+ Singal_4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34);
+ Singal_4->SetVisible(false);
+ group[DROPDOWNVIEW]->Add(Singal_4);
+
+ return true;
+ }
+
+ // 获取信号强度
+ int PullUpDownView::GetSignalStrength(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetSignalStrength");
+ int SignalStrength = uapi_dev_runtime_get_cat1_signal(); // 信号强度
+ return CalculateSignalBars(SignalStrength);
+ }
+
+ // 计算信号格
+ int PullUpDownView::CalculateSignalBars(int signalStrength)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CalculateSignalBars");
+ if (signalStrength < 0 || signalStrength > 32 || signalStrength == 0)
+ return 99; // 无信号 or Invalid signal strength
+
+ // if (signalStrength == 32)
+ // return 4; // Edge case where signalStrength is exactly at the upper boundary
+
+ return (signalStrength / 8) + 1;
+ }
+
+#if 0
+ // 函数用于更新信号显示的UI
+ void PullUpDownView::updateSignalDisplay()
+ {
+ int sim = uapi_dev_runtime_get_cat1_simstat();
+ int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat();
+ int signal = uapi_dev_runtime_get_cat1_signal();
+ int network_on = uapi_dev_runtime_get_cat1_networkstat();
+ int cat1_network_type = uapi_dev_runtime_get_cat1_networtype();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type);
+
+ const int SIGNAL_NO_SIGNAL = 99;
+ const int NETWORK_TYPE_NO_NETWORK = 0;
+ const int NETWORK_TYPE_4G = 4;
+
+ if (sim == 0 || cat1_powerOn == 0)
+ {
+ // 无信号,无4G图标
+ UpdateCat1NoSignalisplay(true);
+ UpdateCat14GDisplay(false);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ }
+ else if (cat1_powerOn == 1 && sim == 1)
+ {
+ if (signal == SIGNAL_NO_SIGNAL)
+ {
+ // 无信号UI显示
+ UpdateCat1NoSignalisplay(true);
+ UpdateCat14GDisplay(false);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ }
+ else
+ {
+ // 信号强度显示
+ UpdateCat1NoSignalisplay(false);
+ UpdateCat14GDisplay(true);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
+ }
+ if (network_on == 0)
+ {
+ // 无信号,无4G图标 显示
+ UpdateCat1NoSignalisplay(true);
+ UpdateCat14GDisplay(false);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ }
+ else
+ {
+ if (cat1_network_type == NETWORK_TYPE_NO_NETWORK)
+ {
+ // 无信号,无4G图标 显示
+ UpdateCat1NoSignalisplay(true);
+ UpdateCat14GDisplay(false);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ }
+ else if (cat1_network_type == NETWORK_TYPE_4G)
+ {
+ // 有4G图标,正常显示信号
+ UpdateCat1NoSignalisplay(false);
+ UpdateCat14GDisplay(true);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
+ }
+ else
+ {
+ // 无4G图标,正常显示信号
+ UpdateCat1NoSignalisplay(false);
+ UpdateCat14GDisplay(false);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
+ }
+ }
+ }
+ }
+#else
+ // 函数用于更新信号显示的UI
+ void PullUpDownView::updateSignalDisplay()
+ {
+ int sim = uapi_dev_runtime_get_cat1_simstat();
+ int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat();
+ int signal = uapi_dev_runtime_get_cat1_signal();
+ int network_on = uapi_dev_runtime_get_cat1_networkstat();
+ int cat1_network_type = uapi_dev_runtime_get_cat1_networtype();
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type);
+
+ const int SIGNAL_NO_SIGNAL = 99;
+ const int NETWORK_TYPE_NO_NETWORK = 0;
+ const int NETWORK_TYPE_4G = 4;
+
+ bool showNoSignalUI = (sim == 0 || cat1_powerOn == 0 || signal == SIGNAL_NO_SIGNAL);
+ bool showNoNetworkUI = (network_on == 0 || cat1_network_type == NETWORK_TYPE_NO_NETWORK);
+
+ bool show4GIcon = (cat1_network_type == NETWORK_TYPE_4G);
+
+ UpdateCat1NoSignalisplay(showNoSignalUI);
+ UpdateCat14GDisplay(show4GIcon);
+ UpdateSignalBarDisplay(CalculateSignalBars(signal), !(showNoSignalUI || showNoNetworkUI));
+ }
+#endif
+
+ // 更新信号强度显示
+ void PullUpDownView::UpdateSignalBarDisplay(int signalBars, bool state)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalBarDisplay");
+ for (int i = 0; i < 4; i++)
+ {
+ showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, (i < signalBars) ? COLOR_SIGNAL_ON : COLOR_SIGNAL_OFF);
+ showSignalStrength[i]->Invalidate();
+ showSignalStrength[i]->SetVisible(state);
+ }
+ }
+
+ // 更新无信号图标显示
+ void PullUpDownView::UpdateCat1NoSignalisplay(bool state)
+ {
+ if (NoSignal != nullptr)
+ {
+ NoSignal->SetVisible(state);
+ }
+ }
+
+ // 更新4G图标显示
+ void PullUpDownView::UpdateCat14GDisplay(bool state)
+ {
+ if (Singal_4 != nullptr)
+ {
+ Singal_4->SetVisible(state);
+ }
+ }
+
+ // 更新电池位置
+ void PullUpDownView::UpdateBatteryPosition(int signalBars)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBatteryPosition");
+ if (signalBars == 99)
+ {
+ batteryimage->SetPosition(209, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
+ progress->SetPosition(215, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ }
+ else
+ {
+ batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
+ progress->SetPosition(264, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ }
+ batteryimage->Invalidate();
+ progress->Invalidate();
+ }
+
+ // 更新信号强度和电池位置
+ void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition");
+ updateSignalDisplay();
+ UpdateBatteryPosition(GetSignalStrength());
+ }
+
+ // 下拉视图初始化
+ bool PullUpDownView::PullUpDownViewInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView");
+
+ group[DROPDOWNVIEW] = new UIViewGroup();
+ if (group[DROPDOWNVIEW] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!");
+ return false;
+ }
+ group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466);
+ group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+ group[DROPDOWNVIEW]->SetViewIndex(0);
+ group[DROPDOWNVIEW]->SetFullScreenBlur(true);
+ createDropDownIconImageViwe();
+ createDropDownConnectedStatusImageViwe();
+
+ if (InitBaseData())
+ {
+ MainPresenterSample::GetInstance()->UpdataBaseData();
+ }
+ else
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData Error!");
+ return false;
+ }
+ SetTouchable(true);
+ SetIntercept(true);
+ Add(group[DROPDOWNVIEW]);
+ return true;
+ }
+
+ void PullUpDownView::PreLoad(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad");
+ if (!viewiInitStatus)
+ {
+ PullUpDownViewInit();
+ viewiInitStatus = true;
+ }
+ }
+
+ void PullUpDownView::UnLoad(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad");
+ }
+
+ // 更新手机连接状态
+ void PullUpDownView::UpdatePhoneStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus");
+ if (showPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr");
+ return;
+ }
+ showPhoneConnectedStatus->SetSrc(status ? DROPDOWN_PHONECONNECTED_IMAGE : DROPDOWN_PHONEDISCONNECTED_IMAGE);
+ showPhoneConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdatePhoneConnectedStatus(status);
+
+ return;
+ }
+
+ // 更新蓝牙耳机连接状态
+ void PullUpDownView::UpdateEarPhoneStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus");
+ if (showEarPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr");
+ return;
+ }
+ showEarPhoneConnectedStatus->SetSrc(status ? DROPDOWN_EARPHONESCONNECTED_IMAGE : DROPDOWN_EARPHONESDISCONNECTED_IMAGE);
+ showEarPhoneConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status);
+
+ return;
+ }
+
+ // 更新蓝牙连接状态
+ void PullUpDownView::UpdateBlueToothStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus");
+ if (showBluetoothConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr");
+ return;
+ }
+ showBluetoothConnectedStatus->SetSrc(status ? DROPDOWN_BLUETOOTHCONNECTED_IMAGE : DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE);
+ showBluetoothConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status);
+
+ return;
+ }
+
+ /*更新勿扰模式状态*/
+ void PullUpDownView::UpdateDnotDisturbStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus");
+ if (dropDnotDisturb != nullptr)
+ {
+ dropDnotDisturb->SetStyle(STYLE_BACKGROUND_COLOR, status ? 0xff8e20e2 : 0xff191919);
+ dropDnotDisturb->Invalidate();
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[DNOTDISTURB_INDEX] is nullptr");
+ return;
+ }
+ }
+
+ UILabel *PullUpDownView::GetTimeLabel()
+ {
+ return showTimeLabel;
+ }
+ UILabel *PullUpDownView::GetDateLabel()
+ {
+ return showDateLabel;
+ }
+ UILabel *PullUpDownView::GetWeekLabel()
+ {
+ return showWeekLabel;
+ }
+ UIBoxProgress *PullUpDownView::GetProgress()
+ {
+ return progress;
+ }
+ /* ------------------------------ 下拉界面切换到连接状态视图 ----------------------------- */
+ // 切换到"下拉控制中心"视图
+ bool PullUpDownView::ChangeDropDownView(int16_t thisView)
+ {
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeDropDownView");
+ Add(group[thisView]);
+ }
+ return true;
+ }
+
+ // 切换到"连接状态"视图
+ bool PullUpDownView::ChangeConnectedStatusView(int16_t thisView)
+ {
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeConnectedStatusView");
+ connectedStatusView = new ConnectedStatusView();
+ if (connectedStatusView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ group[thisView] = connectedStatusView->ConnectedStatusViewInit();
+ Add(group[thisView]);
+ }
+ return true;
+ }
+
+ struct PullUpDownViewMapper
+ {
+ const int16_t viewId;
+ bool (PullUpDownView::*func)(int16_t thisView);
+ };
+
+ static const PullUpDownViewMapper ViewMapper[] = {
+ {DROPDOWNVIEW, &PullUpDownView::ChangeDropDownView},
+ {CONNECTEDSTATUSVIEW, &PullUpDownView::ChangeConnectedStatusView},
+ };
+
+ bool PullUpDownView::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 PullUpDownView::ChangeView(int16_t hideView, int16_t showView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeView");
+ if (hideView > MAX_DROPDOWNVIEWID)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: SystemViewId Overstep ones bounds");
+ return;
+ }
+ group[hideView]->SetVisible(false);
+ ClickFunc(showView);
+ group[showView]->SetVisible(true);
+ Invalidate();
+ }
+
+ ConnectedStatusView *PullUpDownView::GetConnectedStatusView(void)
+ {
+ return connectedStatusView;
+ }
+ /* -------------------------------------------------------------------------- */
+}
+#else
/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: WeekStep
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll");
RemoveAll();
- UnLoadPullUpDownImageRes(); //切换slice的时候也要卸载资源放在ImageCach空间不够
+ UnLoadPullUpDownImageRes(); // 切换slice的时候也要卸载资源放在ImageCach空间不够
if (group[DROPDOWNVIEW] != nullptr)
{
group[DROPDOWNVIEW]->RemoveAll();
dropLighting->SetAutoEnable(false);
dropLighting->SetResizeMode(UIImageView::CENTER);
// ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLighting, DROPDOWN_BLUETOOTH);
- dropLighting->SetViewId(DROPDOWN_CLICK_LIGHTING); // 进入亮屏界面
+ dropLighting->SetViewId(DROPDOWN_CLICK_BLUETOOTH); // 进入亮屏界面
dropLighting->SetTouchable(true);
dropLighting->SetOnClickListener(clickListener);
/* ----------------------------------- 勿扰模式 ----------------------------------- */
}
/* -------------------------------------------------------------------------- */
}
+#endif