bool InitBatteryView(BatteryDisplayType type); // 电量
bool InitColor(ColorTypeSet type); // 颜色
+ void UpdateStateShow(void);
+
private:
void InitStepValue();
bool InitLabelView(void);
Image *medCircle{nullptr};
Image *smallCircle{nullptr};
+ UIImageView *dialstateicon_{nullptr}; // 勿扰
+ UIImageView *messageicon_{nullptr}; // 未读图标
+
bool viewiInitStatus{false};
bool resLoadStatus{false};
*/
#include "MainClockView.h"
+#include "MainModel.h"
#include "MainPresenterSample.h"
#include "SetDialModel.h"
#include "battery_hal.h"
static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery_White.bin";
static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery_Black.bin";
+static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
+static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
+static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
+static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
+
// 定义一些常量
constexpr int HOURS_IN_DAY = 24;
constexpr int MINUTES_IN_HOUR = 60;
stepLabel = nullptr;
delete heartlabel; // 心率
heartlabel = nullptr;
+ if (dialstateicon_ != nullptr) {
+ delete dialstateicon_;
+ dialstateicon_ = nullptr;
+ }
+
+ if (messageicon_ != nullptr) {
+ delete messageicon_;
+ messageicon_ = nullptr;
+ }
g_pMainClockView = nullptr;
}
return true;
}
+ void MainClockView::UpdateStateShow()
+ {
+ if (messageicon_ == nullptr || dialstateicon_ == nullptr)
+ return;
+
+ /*配置未读状态*/
+ messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
+ /*配置表盘状态*/
+ dialstateicon_->SetVisible(true);
+ switch (MainModel::GetInstance().getHighestPriorityActiveState())
+ {
+ case DialState::DO_NOT_DISTURB:
+ dialstateicon_->SetSrc(DISTURBICON);
+ break;
+ case DialState::SLEEP:
+ dialstateicon_->SetSrc(SLEEPICON);
+ break;
+ case DialState::LOCK:
+ dialstateicon_->SetSrc(LOCKICON);
+ break;
+ default:
+ dialstateicon_->SetVisible(false);
+ break;
+ }
+ }
+
void MainClockView::PreLoad(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::PreLoad");
if (!viewiInitStatus)
{
InitView();
+
+ /*增加手表状态图标*/
+ InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
+ // dialstateicon_->SetVisible(false);
+
+ /*增加未读图标*/
+ InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
+
+ UpdateStateShow();
+
+ Add(dialstateicon_);
+ Add(messageicon_);
+
viewiInitStatus = true;
}
void SetDragFg(bool continFg);
bool GetDragFg(void);
void SetPage(int16_t page);
- void UpdateStateShow();
+ void UpdateStateShow(UIImageView *&messageicon,UIImageView *&dialstateicon);
void HandOnKeyEventSwitchMainPullDownView(void);
+ void UpdateStateShow(void);
private:
PullUpDownView *dropDownView{nullptr};
// ApplistCardView *applistCardView{nullptr};
UIButton *changebut{nullptr};
- UIImageView *dialstateicon_{nullptr}; // 勿扰图标
- UIImageView *messageicon_{nullptr}; // 未读图标
+ // UIImageView *dialstateicon_{nullptr}; // 勿扰图标
+ // UIImageView *messageicon_{nullptr}; // 未读图标
/* -------------------------------------------------------------------------- */
UICardPage *recordCard[MAX_CARD]{nullptr};
bool pageStatus[MAX_CARD]{false};
void StopDial();
void StartDial();
+ /*外部接口更新表盘状态*/
+ void UpdateStateShow();
+
MediaVideoPlay* GetVideoPlay();
private:
std::string filePath_;
FILE* fp_ = nullptr;
DialVideoView* video_ = nullptr;
- UIKaleidoscopeView* kaleidoscope_ = nullptr;
+ UIKaleidoscopeView *kaleidoscope_ = nullptr;
+ UIImageView *dialstateicon_{nullptr}; // 勿扰图标
+ UIImageView *messageicon_{nullptr}; // 未读图标
typedef struct {
Rect area;
#include "SetDialModel.h"\r
#include "dnotdisturb/include/DnotDisturbModel.h"\r
#include "custom_utils.h"\r
+#include "DialViewGroup.h"\r
\r
extern "C" void uapi_dev_runtime_set_lock_status(uint8_t status);\r
\r
namespace OHOS
{
- static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
- static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
- static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
- static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
static MainViewSample *g_pMainView = nullptr;
static constexpr uint16_t MESLABLE_X_TMP = 177;
delete MessageLable;
MessageLable = nullptr;
}
- if (dialstateicon_ != nullptr)
- {
- mainClockView->Remove(dialstateicon_);
- delete dialstateicon_;
- dialstateicon_ = nullptr;
- }
- if (messageicon_ != nullptr)
- {
- mainClockView->Remove(messageicon_);
- delete messageicon_;
- messageicon_ = nullptr;
- }
+ // if (dialstateicon != nullptr)
+ // {
+ // mainClockView->Remove(dialstateicon);
+ // delete dialstateicon;
+ // dialstateicon = nullptr;
+ // }
+ // if (messageicon != nullptr)
+ // {
+ // mainClockView->Remove(messageicon);
+ // delete messageicon;
+ // messageicon = nullptr;
+ // }
if (compassControlView != nullptr)
{
compassControlView->RemoveAll();
{
return g_pMainView;
}
- void MainViewSample::UpdateStateShow()
- {
- if (messageicon_ == nullptr || dialstateicon_ == nullptr)
- return;
- /*配置未读状态*/
- messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
- /*配置表盘状态*/
- dialstateicon_->SetVisible(true);
- switch (MainModel::GetInstance().getHighestPriorityActiveState())
- {
- case DialState::DO_NOT_DISTURB:
- dialstateicon_->SetSrc(DISTURBICON);
- break;
- case DialState::SLEEP:
- dialstateicon_->SetSrc(SLEEPICON);
- break;
- case DialState::LOCK:
- dialstateicon_->SetSrc(LOCKICON);
- break;
- default:
- dialstateicon_->SetVisible(false);
- break;
- }
- }
void MainViewSample::OnStart()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart");
}
}
-#if DIALSTATE
-
- /*增加手表状态图标*/
- InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
- // dialstateicon_->SetVisible(false);
-
- /*增加未读图标*/
- InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
-
- UpdateStateShow();
-
- mainClockView->Add(dialstateicon_);
- mainClockView->Add(messageicon_);
-#endif
SetContainerView(mainSwipeGroup);
}
+ void MainViewSample::UpdateStateShow() {
+ DialSetting &setting = presenter_->GetDialSetting();
+ //离线表盘
+ if (setting.dialFlag) {
+ if (mainClockView != nullptr) {
+ dynamic_cast<DialViewGroup *>(mainClockView)->UpdateStateShow();
+ }
+ }
+ //在线表盘
+ else {
+ if (mainClockView != nullptr) {
+ dynamic_cast<MainClockView *>(mainClockView)->UpdateStateShow();
+ }
+
+ }
+ }
+
bool MainViewSample::HorizontalViewInit(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit");
#include "message/include/MessageControlView.h"
#include "hal_tick.h"
#include "common/image_cache_manager.h"
+#include "MainViewSample.h"
#include "alipay_feature.h"
#ifdef SUPPORT_AT_OHOSFWK
#include "ui_screennotify.h"
#endif
namespace OHOS
{
- static DialVideoView *g_video = nullptr;
+static DialVideoView *g_video = nullptr;
+
+ static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
+ static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
+ static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
+ static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
#ifdef SUPPORT_AT_OHOSFWK
static void ScreenStatusNotify(ScreenStatus status)
video_ = nullptr;
+ if (dialstateicon_ != nullptr) {
+ delete dialstateicon_;
+ dialstateicon_ = nullptr;
+ }
+
+ if (messageicon_ != nullptr) {
+ delete messageicon_;
+ messageicon_ = nullptr;
+ }
+
if (fp_ != nullptr)
{
fclose(fp_);
filePath_ = filePath;
}
+ void DialViewGroup::UpdateStateShow()
+ {
+ if (messageicon_ == nullptr || dialstateicon_ == nullptr)
+ return;
+
+ /*配置未读状态*/
+ messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
+ /*配置表盘状态*/
+ dialstateicon_->SetVisible(true);
+ switch (MainModel::GetInstance().getHighestPriorityActiveState())
+ {
+ case DialState::DO_NOT_DISTURB:
+ dialstateicon_->SetSrc(DISTURBICON);
+ break;
+ case DialState::SLEEP:
+ dialstateicon_->SetSrc(SLEEPICON);
+ break;
+ case DialState::LOCK:
+ dialstateicon_->SetSrc(LOCKICON);
+ break;
+ default:
+ dialstateicon_->SetVisible(false);
+ break;
+ }
+ }
void DialViewGroup::PreLoad(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::PreLoad");
GRAPHIC_LOGE("cannot open file: %s\n", filePath_.c_str());
return;
}
- DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this);
+ DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this); // 添加主表盘卡片内容
+ // 添加自定义logo,例如勿扰模式
+
+ /*增加手表状态图标*/
+ InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
+ // dialstateicon_->SetVisible(false);
+
+ /*增加未读图标*/
+ InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
+
+ UpdateStateShow();
+
+ Add(dialstateicon_);
+ Add(messageicon_);
+
resPreloaded_ = true;
}
resLoadStatus = false;
}
}
+
void DialViewGroup::ProcessData(DialDataType type, DialView *view)
{