${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PullUpDownView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ConnectedStatusView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/AppItemView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistAdapter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistModel.cpp
--- /dev/null
+#ifndef CONNECTED_STATUS_VIEW_H
+#define CONNECTED_STATUS_VIEW_H
+
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_button.h"
+namespace OHOS
+{
+ typedef enum : uint8_t
+ {
+ PHONECONNECTEDSTATUS_ID = 0,
+ EARPHONECONNECTESTATUS_ID,
+ BLUETOOTHCONNECTEDSTATUS,
+ MAX_CONNECTEDSTATUS_ID,
+ } CONNECTEDSTATUS_ID;
+
+ class ConnectedStatusView
+ {
+
+ public:
+ ConnectedStatusView();
+ ~ConnectedStatusView();
+ static ConnectedStatusView *GetInstance(void);
+ UIViewGroup *ConnectedStatusViewInit(void);
+ UIButton *GetCloseButton();
+
+ struct LabelConfig
+ {
+ int x;
+ int y;
+ int width;
+ int height;
+ int fontSize;
+ int lineHeight;
+ const char *text;
+ };
+
+ typedef struct
+ {
+ int x;
+ int y;
+ int width;
+ int height;
+ uint32_t connectedImage;
+ uint32_t disconnectedImage;
+ bool isConnected;
+ } StatusImageParams;
+
+ private:
+ UILabelExt *InitLabel(const LabelConfig &config);
+ UILabelExt *InitConnectedStatusLabel(const LabelConfig &config);
+
+ UIImageView *InitStatusImage(StatusImageParams params);
+ void ClearAll(void);
+ UIViewGroup *group{nullptr};
+ UILabelExt *Title{nullptr};
+ UIImageView *background[MAX_CONNECTEDSTATUS_ID]{nullptr};
+
+ UIImageView *PhoneConnectedStatusImage{nullptr}; // 显示手机连接状态
+ UIImageView *EarPhoneConnectedStatusImage{nullptr}; // 显示耳机连接状态
+ UIImageView *BluetoothConnectedStatusImage{nullptr}; // 显示蓝牙连接状态
+
+ UILabelExt *PhoneAndEarAndBluetooth[MAX_CONNECTEDSTATUS_ID]{nullptr};
+
+ UILabelExt *ConnectedStatusLabel[MAX_CONNECTEDSTATUS_ID]{nullptr};
+
+ UIButton *CloseButton{nullptr}; // 关闭按钮
+ UILabel *CloseLabel{nullptr}; // 关闭标签
+ };
+
+}
+
+#endif
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-01 15:10:34
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-26 11:45:11
+ * @LastEditTime: 2024-04-27 10:00:11
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
*/
static constexpr const char *DROPDOWN_CLICK_FINDMYPHONE = "dropdownclickfindmyphone"; // 找手机
static constexpr const char *CONNECTEDSTATUSBACKGROUNDBUTTON = "connectedstatusbackgroundbutton"; // 连接状态按钮
+ static constexpr const char *CONNECTEDSTATUSVIEWCLOSEBUTTON = "connectedstatusviewclosebutton"; // 连接状态视图的关闭按钮
constexpr uint16_t VERTICAL_STATUS = 1;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-17 15:26:49
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-26 15:17:25
+ * @LastEditTime: 2024-04-27 11:48:15
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h
*/
/*
#include "components/ui_box_progress.h"
#include "components/ui_image_animator.h"
#include "battery_hal.h"
+#include "main/include/ConnectedStatusView.h"
extern uint8_t battery_get_voltage(float *voltage);
static constexpr int16_t SAVEPOWER_INDEX = 3;
static constexpr int16_t FINDPHONE_INDEX = 4;
static constexpr int16_t MAX_INDEX = 5;
-
+
+ typedef enum : uint8_t
+ {
+ DROPDOWNVIEW = 0,
+ CONNECTEDSTATUSVIEW,
+ MAX_DROPDOWNVIEWID,
+ } DROPDOWNVIEWID;
+
class PullUpDownView : public UICardPage
{
public:
bool GetEarPhoneConnectedStatus(void);
bool GetBluetoothConnectedStatus(void);
+ bool ChangeDropDownView(int16_t thisView); // 切换到"下拉控制中心"视图
+ bool ChangeConnectedStatusView(int16_t thisView); // 切换到"连接状态"视图
+ bool ClickFunc(int16_t interface);
+ void ChangeView(int16_t hideView, int16_t showView);
+ ConnectedStatusView *GetConnectedStatusView(void);
+ private:
+ ConnectedStatusView *connectedStatusView{nullptr};
private:
- UIImageView *dropSetting{nullptr}; // 设置
- UIImageView *dropLighting{nullptr}; // 蓝牙
- UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式
- UIImageView *dropSavePower{nullptr}; // 省电
- UIImageView *drofindPhone{nullptr}; // 找手机
- UIImageView *dropIconBackground[MAX_INDEX]{nullptr}; // 放置各个icon的背景
- UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮
- UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态
- UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态
- UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态
- UIImageView *dropLine{nullptr}; // 线
- UILabel *showTimeLabel{nullptr}; // 显示时间
- UILabel *showDateLabel{nullptr}; // 显示日期
- UILabel *showWeekLabel{nullptr}; // 显示星期
- UIImageView *showSignalStrength[4]{nullptr}; // 信号强度
- UILabel *Singal_4{nullptr}; // 4G图标
- UIImageView *NoSignal{nullptr}; // 无信号
+ UIViewGroup *group[MAX_DROPDOWNVIEWID]{nullptr};
+ UIImageView *dropSetting{nullptr}; // 设置
+ UIImageView *dropLighting{nullptr}; // 蓝牙
+ UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式
+ UIImageView *dropSavePower{nullptr}; // 省电
+ UIImageView *drofindPhone{nullptr}; // 找手机
+ UIImageView *dropIconBackground[MAX_INDEX]{nullptr}; // 放置各个icon的背景
+ UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮
+ UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态
+ UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态
+ UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态
+ UIImageView *dropLine{nullptr}; // 线
+ UILabel *showTimeLabel{nullptr}; // 显示时间
+ UILabel *showDateLabel{nullptr}; // 显示日期
+ UILabel *showWeekLabel{nullptr}; // 显示星期
+ UIImageView *showSignalStrength[4]{nullptr}; // 信号强度
+ UILabel *Singal_4{nullptr}; // 4G图标
+ UIImageView *NoSignal{nullptr}; // 无信号
UIImageView *batteryimage = nullptr;
UIBoxProgress *progress = nullptr;
--- /dev/null
+#include "main/include/ConnectedStatusView.h"
+#include "main/include/PullUpDownView.h"
+#include "wearable_log.h"
+#include "SettingModel.h"
+#include <ui_resource_image.h>
+#include "screensetting/include/ScreenModels.h"
+#include "main/include/MainPresenterSample.h"
+namespace OHOS
+{
+ static ConnectedStatusView *g_pConnectedStatusView = nullptr;
+ ConnectedStatusView::ConnectedStatusView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectedStatusView::ConnectedStatusView");
+ g_pConnectedStatusView = this;
+ }
+
+ ConnectedStatusView::~ConnectedStatusView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectedStatusView::~ConnectedStatusView");
+ ClearAll();
+ g_pConnectedStatusView = nullptr;
+ }
+
+ ConnectedStatusView *ConnectedStatusView::GetInstance()
+ {
+ return g_pConnectedStatusView;
+ }
+
+ void ConnectedStatusView::ClearAll(void)
+ {
+ if (group != nullptr)
+ {
+ group->RemoveAll();
+
+ delete Title;
+ Title = nullptr;
+
+ for (int i = 0; i < MAX_CONNECTEDSTATUS_ID; i++)
+ {
+ delete background[i];
+ background[i];
+
+ delete PhoneAndEarAndBluetooth[i];
+ PhoneAndEarAndBluetooth[i];
+
+ delete ConnectedStatusLabel[i];
+ ConnectedStatusLabel[i];
+ }
+
+ delete PhoneConnectedStatusImage;
+ PhoneConnectedStatusImage = nullptr;
+
+ delete EarPhoneConnectedStatusImage;
+ EarPhoneConnectedStatusImage = nullptr;
+
+ delete BluetoothConnectedStatusImage;
+ BluetoothConnectedStatusImage = nullptr;
+
+ delete CloseButton;
+ CloseButton = nullptr;
+
+ delete CloseLabel;
+ CloseLabel = nullptr;
+
+ delete group;
+ group = nullptr;
+ }
+ }
+
+ UILabelExt *ConnectedStatusView::InitLabel(const LabelConfig &config)
+ {
+ UILabelExt *titleLabel = new UILabelExt();
+ if (titleLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail!!");
+ return nullptr;
+ }
+
+ titleLabel->SetPosition(config.x, config.y, config.width, config.height);
+ titleLabel->SetStyle(STYLE_TEXT_FONT, config.fontSize);
+ titleLabel->SetStyle(STYLE_LINE_HEIGHT, config.lineHeight);
+ titleLabel->SetText(config.text);
+ titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ // titleLabel->SetRollSpeed(40);系统默认为35
+ titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, config.fontSize);
+
+ return titleLabel;
+ }
+
+ UILabelExt *ConnectedStatusView::InitConnectedStatusLabel(const LabelConfig &config)
+ {
+ UILabelExt *titleLabel = new UILabelExt();
+ if (titleLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail!!");
+ return nullptr;
+ }
+
+ titleLabel->SetPosition(config.x, config.y, config.width, config.height);
+ titleLabel->SetStyle(STYLE_TEXT_FONT, config.fontSize);
+ titleLabel->SetStyle(STYLE_LINE_HEIGHT, config.lineHeight);
+ titleLabel->SetText(config.text);
+ titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, config.fontSize);
+
+ return titleLabel;
+ }
+
+ UIImageView *ConnectedStatusView::InitStatusImage(StatusImageParams params)
+ {
+ UIImageView *statusImage = new UIImageView();
+ if (statusImage == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s new fail");
+ return nullptr;
+ }
+ statusImage->SetPosition(params.x, params.y, params.width, params.height);
+ statusImage->SetAutoEnable(false);
+ statusImage->SetResizeMode(UIImageView::CENTER);
+ statusImage->SetStyle(STYLE_BORDER_RADIUS, 30);
+
+ if (params.isConnected)
+ {
+ ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, statusImage, params.connectedImage);
+ }
+ else
+ {
+ ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, statusImage, params.disconnectedImage);
+ }
+
+ return statusImage;
+ }
+
+ UIViewGroup *ConnectedStatusView::ConnectedStatusViewInit(void)
+ {
+ if (group == nullptr)
+ {
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail!!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, 466, 466);
+ group->SetViewIndex(1);
+ /* -------------------------------------------------------------------------- */
+ LabelConfig titleConfig = {93, 53, 280, 35, 30, 35, "连接状态"};
+ Title = InitLabel(titleConfig);
+ /* -------------------------------------------------------------------------- */
+ int background_position_x = 33;
+ for (int i = 0; i < 3; i++)
+ {
+ background[i] = new UIImageView();
+ if (background[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "background[%d] new fail!!", i);
+ return nullptr;
+ }
+ background[i]->SetPosition(background_position_x + i * 140, 113, 120, 200);
+ background[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ background[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ background[i]->SetStyle(STYLE_BORDER_RADIUS, 40);
+ }
+ /* -------------------------------------------------------------------------- */
+ PullUpDownView *pullUpDownView = PullUpDownView::GetInstance();
+ if (pullUpDownView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetInstance() fail");
+ return nullptr;
+ }
+ StatusImageParams params = {
+ .x = 63,
+ .y = 135,
+ .width = 60,
+ .height = 60,
+ .connectedImage = DROPDOWN_PHONECONNECTED,
+ .disconnectedImage = DROPDOWN_PHONEDISCONNECTED,
+ .isConnected = pullUpDownView->GetPhoneConnectedStatus(),
+ };
+ PhoneConnectedStatusImage = InitStatusImage(params);
+ /* -------------------------------------------------------------------------- */
+ params = {
+ .x = 203,
+ .y = 135,
+ .width = 60,
+ .height = 60,
+ .connectedImage = DROPDOWN_EARPHONESCONNECTED,
+ .disconnectedImage = DROPDOWN_EARPHONESDISCONNECTED,
+ .isConnected = pullUpDownView->GetEarPhoneConnectedStatus(),
+ };
+ EarPhoneConnectedStatusImage = InitStatusImage(params);
+ /* -------------------------------------------------------------------------- */
+ params = {
+ .x = 343,
+ .y = 135,
+ .width = 60,
+ .height = 60,
+ .connectedImage = DROPDOWN_BLUETOOTHCONNECTED,
+ .disconnectedImage = DROPDOWN_BLUETOOTHDISCONNECTED,
+ .isConnected = pullUpDownView->GetBluetoothConnectedStatus(),
+ };
+ BluetoothConnectedStatusImage = InitStatusImage(params);
+ /* -------------------------------------------------------------------------- */
+ const char *connectedText[MAX_CONNECTEDSTATUS_ID] = {
+ "已连接",
+ "已连接",
+ "已连接",
+ }; // 初始化连接状态文字数组
+ const char *disconnectedText[MAX_CONNECTEDSTATUS_ID] = {
+ "未连接",
+ "未连接",
+ "未连接",
+ }; // 初始化未连接状态文字数组
+ const char *deviceName[MAX_CONNECTEDSTATUS_ID] = {
+ "手机",
+ "耳机",
+ "蓝牙",
+ }; // 初始化设备名称数组
+ OHOS::ColorType connectedColor[MAX_CONNECTEDSTATUS_ID] = {
+ Color::GetColorFromRGBA(0xff, 0x8f, 0x00, 0xff),
+ Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff),
+ Color::GetColorFromRGBA(0x01, 0x76, 0xff, 0xff),
+ }; // 初始化连接状态颜色数组
+ OHOS::ColorType disconnectedColor = Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff); // 初始化未连接状态颜色
+ int PhoneAndEarAndBluetooth_position_x = 53;
+ int ConnectedStatusLabel_position_x = 59;
+
+ for (int i = 0; i < MAX_CONNECTEDSTATUS_ID; i++)
+ {
+ titleConfig = {PhoneAndEarAndBluetooth_position_x + i * 140, 220, 80, 35, 30, 35, deviceName[i]};
+ PhoneAndEarAndBluetooth[i] = InitLabel(titleConfig);
+ /* -------------------------------------------------------------------------- */
+ ConnectedStatusLabel[i] = new UILabelExt();
+ if (ConnectedStatusLabel[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectedStatusLabel[%d] new fail!!", i);
+ return nullptr;
+ }
+ ConnectedStatusLabel[i]->SetPosition(ConnectedStatusLabel_position_x + i * 140, 258, 70, 27);
+ ConnectedStatusLabel[i]->SetStyle(STYLE_TEXT_FONT, 23);
+ ConnectedStatusLabel[i]->SetStyle(STYLE_LINE_HEIGHT, 27);
+ ConnectedStatusLabel[i]->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ ConnectedStatusLabel[i]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ ConnectedStatusLabel[i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 23);
+
+ if (i == PHONECONNECTEDSTATUS_ID && pullUpDownView->GetPhoneConnectedStatus())
+ {
+ ConnectedStatusLabel[i]->SetText(connectedText[i]);
+ ConnectedStatusLabel[i]->SetTextColor(connectedColor[i]);
+ }
+ else if (i == EARPHONECONNECTESTATUS_ID && pullUpDownView->GetEarPhoneConnectedStatus())
+ {
+ ConnectedStatusLabel[i]->SetText(connectedText[i]);
+ ConnectedStatusLabel[i]->SetTextColor(connectedColor[i]);
+ }
+ else if (i == BLUETOOTHCONNECTEDSTATUS && pullUpDownView->GetBluetoothConnectedStatus())
+ {
+ ConnectedStatusLabel[i]->SetText(connectedText[i]);
+ ConnectedStatusLabel[i]->SetTextColor(connectedColor[i]);
+ }
+ else
+ {
+ ConnectedStatusLabel[i]->SetText(disconnectedText[i]);
+ ConnectedStatusLabel[i]->SetTextColor(disconnectedColor);
+ }
+ }
+
+ /* -------------------------------------------------------------------------- */
+ CloseButton = new UIButton();
+ if (CloseButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CloseButton new fail!");
+ return nullptr;
+ }
+ CloseButton->SetPosition(118, 340, 230, 80);
+ CloseButton->SetViewId(CONNECTEDSTATUSVIEWCLOSEBUTTON);
+ CloseButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ UIView::OnClickListener *listener = static_cast<UIView::OnClickListener *>(MainPresenterSample::GetInstance());
+ CloseButton->SetOnClickListener(listener);
+ /* -------------------------------------------------------------------------- */
+ titleConfig = {143, 363, 180, 35, 26, 35, "关闭"};
+ CloseLabel = InitLabel(titleConfig);
+
+ /* ----------------------------------- Add ---------------------------------- */
+ group->Add(Title);
+ for (int i = 0; i < MAX_CONNECTEDSTATUS_ID; i++)
+ {
+ group->Add(background[i]);
+ group->Add(PhoneAndEarAndBluetooth[i]);
+ group->Add(ConnectedStatusLabel[i]);
+ }
+ group->Add(PhoneConnectedStatusImage);
+ group->Add(EarPhoneConnectedStatusImage);
+ group->Add(BluetoothConnectedStatusImage);
+
+ group->Add(CloseButton);
+ group->Add(CloseLabel);
+ }
+
+ return group;
+ }
+
+ UIButton *ConnectedStatusView::GetCloseButton()
+ {
+ return CloseButton;
+ }
+}
\ No newline at end of file
MainPresenterSample::~MainPresenterSample()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "~MainPresenterSample");
+ g_pMainPresenterSample = nullptr;
}
MainPresenterSample *MainPresenterSample::GetInstance(void)
#endif
}
+ if(curViewId == CONNECTEDSTATUSBACKGROUNDBUTTON)
+ {
+ PullUpDownView::GetInstance()->ChangeView(DROPDOWNVIEW,CONNECTEDSTATUSVIEW);
+ return true;
+ }
+ else if(curViewId == CONNECTEDSTATUSVIEWCLOSEBUTTON)
+ {
+ PullUpDownView::GetInstance()->ChangeView(CONNECTEDSTATUSVIEW,DROPDOWNVIEW);
+ return true;
+ }
+ // if(&view == PullUpDownView::GetInstance()->GetConnectedStatusView()->GetCloseButton())
+ // {
+ // PullUpDownView::GetInstance()->ChangeView(CONNECTEDSTATUSVIEW,DROPDOWNVIEW);
+ // return true;
+ // }
+
// 如果勿扰模式是开启状态,在下拉界面点击勿扰快捷入口会关闭勿扰模式不进入勿扰视图
if (g_jumpView[curViewId] == VIEW_DNOTDISTURB && DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() == true)
{
MainViewSample::~MainViewSample()
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::~MainViewSample");
mainSwipeGroup->RemoveAll();
dropDownView->ClearBackgroundBlur();
void MainViewSample::HorViewLoad(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorViewLoad");
uint8_t cardSettingNum = presenter_->GetCardSettingCount();
CardId *cardSettings = presenter_->GetCardSettings();
for (int16_t i = 0; i < cardSettingNum; i++)
void MainViewSample::VerticalViewInit(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::VerticalViewInit");
#ifdef FD230
dropDownView = new PullUpDownView();
if (dropDownView == nullptr)
PullUpDownView *MainViewSample::GetPullUpView()
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::GetPullUpView");
return dropDownView;
}
void MainViewSample::VertViewLoad(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::VertViewLoad");
mainSwipeGroup->VerAdd(dropDownView, UICrossView::VPage::UP_PAGE);
mainSwipeGroup->VerAdd(messageView, UICrossView::VPage::DOWN_PAGE);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::PullViewLoad::Pull View Load complete");
}
UICardPage *MainViewSample::InitWathOffDial(DialSetting &setting)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitWathOffDial");
DialViewGroup *dial = new DialViewGroup();
dial->SetDial(setting.dialFullName);
// dial->SetDial(DEFAULT_DIAL_PATH);
}
UICardPage *MainViewSample::InitWathDial(DialSetting &setting)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitWathDial");
switch (setting.dialId)
{
case DIAL_CLOCK:
}
UICardPage *MainViewSample::InitWatchFacePage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitWatchFacePage");
DialSetting &setting = presenter_->GetDialSetting();
if (setting.dialFlag)
{
// 指南针卡片
UICardPage *MainViewSample::InitCompassPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitCompassPage");
compassControlView = new CompassControlView();
if (compassControlView == nullptr)
{
// 音乐卡片
UICardPage *MainViewSample::InitMusicPlayerPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitMusicPlayerPage");
playersView = new PlayersView();
if (playersView == nullptr)
{
// 主界面血氧卡片
UICardPage *MainViewSample::InitBloodOxygenPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitBloodOxygenPage");
bloodView = new BloodCardView();
if (bloodView == nullptr)
{
// 主界面训练卡片
UICardPage *MainViewSample::InitTrainingPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitTrainingPage");
traingView = new Training_CardView();
if (traingView == nullptr)
{
// 主界面天气卡片
UICardPage *MainViewSample::InitWeatherPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitWeatherPage");
weatherControlView = new WeatherControlView();
if (weatherControlView == nullptr)
{
// 主界面心率卡片
UICardPage *MainViewSample::InitHeartRatePage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitHeartRatePage");
heartRateView = new HeartRateView();
if (heartRateView == nullptr)
{
// 运动界面
UICardPage *MainViewSample::InitActivityPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitActivityPage");
activityWeekView = new ActivityWeekView();
if (activityWeekView == nullptr)
{
void MainViewSample::SetPage(int16_t page)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::SetPage");
if (mainSwipeGroup != nullptr)
{
mainSwipeGroup->SetHorCurrentPage(page);
bool MainViewSample::IsMainClockPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::IsMainClockPage");
if (mainSwipeGroup->GetCurrentPageId(0) == mainClockView->GetViewIndex() &&
mainSwipeGroup->GetCurrentPageId(1) == 1)
{ // 0: horizontal; 1: vertical
}
bool MainViewSample::IsPullUpViewPage(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::IsPullUpViewPage");
if (mainSwipeGroup->GetCurrentPageId(0) == mainClockView->GetViewIndex() &&
mainSwipeGroup->GetCurrentPageId(1) == 0)
{
static PullUpDownView *g_pPullUpDownView = nullptr;
PullUpDownView::PullUpDownView()
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PullUpDownView");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PullUpDownView");
g_pPullUpDownView = this;
}
PullUpDownView::~PullUpDownView()
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::~PullUpDownView");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::~PullUpDownView");
ClearAll();
g_pPullUpDownView = nullptr;
}
void PullUpDownView::ClearAll()
{
- RemoveAll();
-
- for (int i = 0; i < MAX_INDEX; i++)
+ if (group[DROPDOWNVIEW] != nullptr)
{
- delete dropIconBackground[i];
- dropIconBackground[i] = nullptr;
- }
+ group[DROPDOWNVIEW]->RemoveAll();
+ group[DROPDOWNVIEW]->ClearBackgroundBlur();
- delete dropSetting;
- dropSetting = nullptr;
+ for (int i = 0; i < MAX_INDEX; i++)
+ {
+ delete dropIconBackground[i];
+ dropIconBackground[i] = nullptr;
+ }
- delete dropLighting;
- dropLighting = nullptr;
+ delete dropSetting;
+ dropSetting = nullptr;
- delete dropDnotDisturb;
- dropDnotDisturb = nullptr;
+ delete dropLighting;
+ dropLighting = nullptr;
- delete dropLine;
- dropLine = nullptr;
+ delete dropDnotDisturb;
+ dropDnotDisturb = nullptr;
- delete dropSavePower;
- dropSavePower = nullptr;
+ delete dropLine;
+ dropLine = nullptr;
- delete drofindPhone;
- drofindPhone = nullptr;
+ delete dropSavePower;
+ dropSavePower = nullptr;
- delete showTimeLabel;
- showTimeLabel = nullptr;
+ delete drofindPhone;
+ drofindPhone = nullptr;
- delete showDateLabel;
- showDateLabel = nullptr;
+ delete showTimeLabel;
+ showTimeLabel = nullptr;
- delete showWeekLabel;
- showWeekLabel = nullptr;
- /* -------------------------------------------------------------------------- */
- ClearAllSingalComponentsView();
- ClearAllConnectedStatusComponentsView();
- /* -------------------------------------------------------------------------- */
- delete progress;
- progress = nullptr;
+ delete showDateLabel;
+ showDateLabel = nullptr;
- if (progresscallback_ != nullptr)
- {
- delete progresscallback_;
- progresscallback_ = nullptr;
+ delete showWeekLabel;
+ showWeekLabel = nullptr;
+ /* -------------------------------------------------------------------------- */
+ ClearAllSingalComponentsView();
+ ClearAllConnectedStatusComponentsView();
+ /* -------------------------------------------------------------------------- */
+ delete progress;
+ progress = nullptr;
+
+ if (progresscallback_ != nullptr)
+ {
+ delete progresscallback_;
+ progresscallback_ = nullptr;
+ }
+
+ if (progressanimator_ != nullptr)
+ {
+ progressanimator_->Stop();
+ delete progressanimator_;
+ progressanimator_ = nullptr;
+ }
+
+ Remove(group[DROPDOWNVIEW]);
+
+ delete group[DROPDOWNVIEW];
+ group[DROPDOWNVIEW] = nullptr;
}
- if (progressanimator_ != nullptr)
+ if (connectedStatusView != nullptr)
{
- progressanimator_->Stop();
- delete progressanimator_;
- progressanimator_ = nullptr;
+ delete connectedStatusView;
+ connectedStatusView = nullptr;
}
}
{
ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEBLACK);
}
- Add(dropIconBackground[i]);
+ group[DROPDOWNVIEW]->Add(dropIconBackground[i]);
}
}
dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLine, DROPDOWN_LINE);
/* -------------------------------- 添加组件到视图上 -------------------------------- */
- Add(dropSetting);
- Add(dropLighting);
- Add(dropDnotDisturb);
- Add(dropSavePower);
- Add(drofindPhone);
- Add(dropLine);
+ group[DROPDOWNVIEW]->Add(dropSetting);
+ group[DROPDOWNVIEW]->Add(dropLighting);
+ group[DROPDOWNVIEW]->Add(dropDnotDisturb);
+ group[DROPDOWNVIEW]->Add(dropSavePower);
+ group[DROPDOWNVIEW]->Add(drofindPhone);
+ group[DROPDOWNVIEW]->Add(dropLine);
}
// 获取手机连接状态
// connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
// connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
- // connectedStatusBackgroundButton->SetOnClickListener(clickListener);
- Add(connectedStatusBackgroundButton);
+ connectedStatusBackgroundButton->SetOnClickListener(clickListener);
+ group[DROPDOWNVIEW]->Add(connectedStatusBackgroundButton);
/* -------------------------------- 显示手机连接状态 -------------------------------- */
showPhoneConnectedStatus = new UIImageView();
if (showPhoneConnectedStatus == nullptr)
ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, DROPDOWN_BLUETOOTHDISCONNECTED);
}
/* -------------------------------------------------------------------------- */
- Add(showPhoneConnectedStatus);
- Add(showEarPhoneConnectedStatus);
- Add(showBluetoothConnectedStatus);
+ group[DROPDOWNVIEW]->Add(showPhoneConnectedStatus);
+ group[DROPDOWNVIEW]->Add(showEarPhoneConnectedStatus);
+ group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus);
}
// 清除所有与连接状态相关的视图组件
}
std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin";
batteryimage->SetSrc(batteryimagesPath.c_str());
- Add(batteryimage);
/* -------------------------------------------------------------------------- */
progress = new UIBoxProgress();
if (progress == nullptr)
progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
- Add(progress);
- Add(showTimeLabel);
- Add(showDateLabel);
- Add(showWeekLabel);
+ group[DROPDOWNVIEW]->Add(progress);
+ group[DROPDOWNVIEW]->Add(batteryimage);
+ group[DROPDOWNVIEW]->Add(showTimeLabel);
+ group[DROPDOWNVIEW]->Add(showDateLabel);
+ group[DROPDOWNVIEW]->Add(showWeekLabel);
return true;
}
NoSignal->SetResizeMode(UIImageView::CENTER);
ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, NoSignal, DROPDOWN_NOSIGNAL);
NoSignal->SetVisible(false);
- Add(NoSignal);
+ group[DROPDOWNVIEW]->Add(NoSignal);
/* -------------------------------------------------------------------------- */
// 定义一个结构体,用于存储 ImageView 的信息
struct ImageViewInfo
}
showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10);
- Add(showSignalStrength[i]);
+ group[DROPDOWNVIEW]->Add(showSignalStrength[i]);
showSignalStrength[i]->SetVisible(false);
}
/* -------------------------------------------------------------------------- */
Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34);
Singal_4->SetVisible(false);
- Add(Singal_4);
+ group[DROPDOWNVIEW]->Add(Singal_4);
/* -------------------------------------------------------------------------- */
SetSingalComponentsVisible(GetSignalStrength());
bool PullUpDownView::InitView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitDropDownView caller:");
+
+ 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);
InitViewImg();
InitTimeDateWeekLabelAndConnectedStatusImage();
}
SetTouchable(true);
SetIntercept(true);
+ Add(group[DROPDOWNVIEW]);
return true;
}
{
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;
+ }
}