${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchRecordCycleToLimitView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchRecordTimeToLimitView.cpp
+ #勿扰
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/dnotdisturb/src/DnotDisturbPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/dnotdisturb/src/DnotDisturbView.cpp
+
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/language/LanguageInit.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/config/src/ConfigModel.cpp
VIEW_LANGUAGE_SWITCH, // 语言切换
VIEW_MAIN_STOPWATCH, // 秒表
VIEW_MAIN_COUNTDOWN, // 计时器
+ VIEW_DNOTDISTURB, // 勿扰模式
/* ----------------------------------- 录音 ----------------------------------- */
VIEW_RECORD,
/* ---------------------------------- 界面 ---------------------------------- */
VIEW_SET_CARD,
VIEW_ADD_CARD,
VIEW_SET_DIAL,
- VIEW_MAX_INTER_APP, // 在此之前添加native应用ID.
+ VIEW_MAX_INTER_APP, // 在此之前添加native应用ID.
VIEW_EXTERN_APP = 0xFFFE, // 三方应用
VIEW_INVALIDE_APP = 0xFFFF,
} AppViewId;
/*
* Slice页面优先级,越小优先级越高
*/
-typedef enum : uint16_t {
+typedef enum : uint16_t
+{
PRIO_0 = 0,
PRIO_1,
PRIO_2,
void InitLanguageSwitchSlice(void);
void InitMainStopWatchSlice(void);
void InitMainCountDownSlice(void);
+ void InitDnotDisturbSlice(void);
/* --------------------------------界面------------------------------------ */
void InitRotateSlice(void);
void InitBloodSlice(void);
#include "countdown/include/MainCountDownPresenter.h"
#include "countdown/include/MainCountDownView.h"
+
+#include "dnotdisturb/include/DnotDisturbPresenter.h"
+#include "dnotdisturb/include/DnotDisturbView.h"
/* -------------------------------------------------------------------------- */
#include "traing/include/TraingView.h"
#include "traing/include/TraingPresenter.h"
{VIEW_LANGUAGE_SWITCH, &NativeLauncher::InitLanguageSwitchSlice},
{VIEW_MAIN_STOPWATCH, &NativeLauncher::InitMainStopWatchSlice},
{VIEW_MAIN_COUNTDOWN, &NativeLauncher::InitMainCountDownSlice},
+ {VIEW_DNOTDISTURB, &NativeLauncher::InitDnotDisturbSlice},
{VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
{VIEW_ROTATE, &NativeLauncher::InitRotateSlice},
NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_COUNTDOWN, maincountdown);
}
+ /*勿扰模式*/
+ void NativeLauncher::InitDnotDisturbSlice(void)
+ {
+ SliceProxy *dnotdisturb = new AbilitySliceProxy<DnotDisturbView, DnotDisturbPresenter>;
+ if (dnotdisturb == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dnotdisturb");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_DNOTDISTURB, dnotdisturb);
+ }
+
/* -------------------------------------------------------------------------- */
void NativeLauncher::InitSetDesktopSlice(void)
{
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-10 11:58:32
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-10 15:22:51
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbPresenter.h
+ */
+
+#ifndef DNOTDISTURB_PRESENTER_H
+#define DNOTDISTURB_PRESENTER_H
+
+#include "Presenter.h"
+#include "View.h"
+
+namespace OHOS
+{
+ class DnotDisturbView;
+ class DnotDisturbPresenter : public Presenter<DnotDisturbView>,
+ public UIView::OnClickListener,
+ public RootView::OnKeyActListener,
+ public UIView::OnDragListener
+ {
+ public:
+ DnotDisturbPresenter();
+ virtual ~DnotDisturbPresenter();
+
+ void OnStart() override;
+ void OnPause() override;
+ void OnResume() override;
+ void OnStop() override;
+
+ static DnotDisturbPresenter *GetInstance();
+
+ private:
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+ };
+}
+
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-10 11:58:15
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-10 15:06:49
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/include/DnotDisturbView.h
+ */
+#ifndef DNOTDISTURB_VIEW_H
+#define DNOTDISTURB_VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+#include "components/ui_label_button_ext.h"
+namespace OHOS
+{
+ class DnotDisturbPresenter;
+ class DnotDisturbView : public View<DnotDisturbPresenter>
+ {
+
+ public:
+ DnotDisturbView();
+ virtual ~DnotDisturbView();
+ static DnotDisturbView *GetInstance(void);
+ UILabelButtonExt *GetButtonOn(void);
+ UILabelButtonExt *GetButtonOff(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+
+ private:
+ void DnotDisturbViewInit(void);
+ void ClearAll(void);
+ UIScrollView *scrollView = nullptr;
+ UILabelExt *showTimeLabel{nullptr}; // 显示系统时间的标签
+ UIImageView *DnotDisturbImage{nullptr};
+ UILabelExt *AttentionLabel{nullptr};
+ UILabelButtonExt *ButtonOn;
+ UILabelButtonExt *ButtonOff;
+ };
+}
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-10 11:58:37
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-10 15:29:22
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbPresenter.cpp
+ */
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "dnotdisturb/include/DnotDisturbView.h"
+#include "dnotdisturb/include/DnotDisturbPresenter.h"
+#include "common/key_code.h"
+#include <custom_utils.h>
+namespace OHOS
+{
+
+ // 当前Presenter属性实例化的内存指针
+ static DnotDisturbPresenter *g_pDnotDisturbPresenter = nullptr;
+
+ DnotDisturbPresenter::DnotDisturbPresenter()
+ {
+ g_pDnotDisturbPresenter = this;
+ }
+
+ DnotDisturbPresenter::~DnotDisturbPresenter()
+ {
+ g_pDnotDisturbPresenter = nullptr;
+ }
+
+ DnotDisturbPresenter *DnotDisturbPresenter::GetInstance()
+ {
+ return g_pDnotDisturbPresenter;
+ }
+
+ void DnotDisturbPresenter::OnStart()
+ {
+ Presenter<DnotDisturbView>::OnStart();
+ }
+
+ void DnotDisturbPresenter::OnPause(void)
+ {
+ Presenter<DnotDisturbView>::OnPause();
+ }
+
+ void DnotDisturbPresenter::OnResume(void)
+ {
+ Presenter<DnotDisturbView>::OnResume();
+ }
+
+ void DnotDisturbPresenter::OnStop(void)
+ {
+ Presenter<DnotDisturbView>::OnStop();
+ }
+
+ bool DnotDisturbPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ UNUSED(event);
+ return true;
+ }
+
+ bool DnotDisturbPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ UNUSED(event);
+ return true;
+ }
+
+ bool DnotDisturbPresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+ UNUSED(event);
+ DnotDisturbView *p_DnotDisturbView = DnotDisturbView::GetInstance();
+ if (p_DnotDisturbView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::GetInstance fail!!");
+ return false;
+ }
+ if (&view == p_DnotDisturbView->GetButtonOn())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " DnotDisturb enable!!");
+ }
+ else if (&view == p_DnotDisturbView->GetButtonOff())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " DnotDisturb disable!!");
+ }
+ return true;
+ }
+
+ // 增加按键事件
+ bool DnotDisturbPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DnotDisturbPresenter::OnKeyAct");
+ uint16_t keyID = event.GetKeyId();
+ uint16_t keyState = event.GetState();
+ // 如果是power键就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
+ {
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
+ }
+ return true;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-10 11:58:21
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-10 15:21:47
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp
+ */
+#include "dnotdisturb/include/DnotDisturbView.h"
+#include "dnotdisturb/include/DnotDisturbPresenter.h"
+#include "wearable_log.h"
+#include "screensetting/include/ScreenModels.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+namespace OHOS
+{
+
+ static DnotDisturbView *g_pDnotDisturbView{nullptr};
+
+ DnotDisturbView::DnotDisturbView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::DnotDisturbView");
+ g_pDnotDisturbView = this;
+ }
+
+ DnotDisturbView::~DnotDisturbView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::~DnotDisturbView");
+ ClearAll();
+ g_pDnotDisturbView = nullptr;
+ }
+
+ DnotDisturbView *DnotDisturbView::GetInstance()
+ {
+ return g_pDnotDisturbView;
+ }
+
+ void DnotDisturbView::ClearAll(void)
+ {
+ if (scrollView != nullptr)
+ {
+ scrollView->RemoveAll();
+ if (showTimeLabel != nullptr)
+ {
+ delete showTimeLabel;
+ showTimeLabel = nullptr;
+ }
+
+ if (DnotDisturbImage != nullptr)
+ {
+ delete DnotDisturbImage;
+ DnotDisturbImage = nullptr;
+ }
+
+ if (AttentionLabel != nullptr)
+ {
+ delete AttentionLabel;
+ AttentionLabel = nullptr;
+ }
+
+ if (ButtonOn != nullptr)
+ {
+ delete ButtonOn;
+ ButtonOn = nullptr;
+ }
+
+ if (ButtonOff != nullptr)
+ {
+ delete ButtonOff;
+ ButtonOff = nullptr;
+ }
+ }
+ }
+
+ void DnotDisturbView::DnotDisturbViewInit(void)
+ {
+
+ if (scrollView == nullptr)
+ {
+ scrollView = new UIScrollView();
+ if (scrollView != nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::scrollView new fail!!");
+ return;
+ }
+ scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ /* -------------------------------------------------------------------------- */
+ showTimeLabel = new UILabelExt();
+ if (showTimeLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::showTimeLabel new fail!!");
+ return;
+ }
+ showTimeLabel->SetPosition(83, 52, 300, 40);
+ showTimeLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ showTimeLabel->SetText("23:00");
+ showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ showTimeLabel->SetRollSpeed(40);
+ showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ /* -------------------------------------------------------------------------- */
+ DnotDisturbImage = new UIImageView();
+ if (DnotDisturbImage == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::DnotDisturbImage new fail!!");
+ return;
+ }
+ DnotDisturbImage->SetPosition(186, 116, 94, 94);
+ DnotDisturbImage->SetAutoEnable(false);
+ DnotDisturbImage->SetResizeMode(UIImageView::CENTER);
+ DnotDisturbImage->SetStyle(STYLE_BACKGROUND_COLOR, 0xff8e20e2);
+ ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, DnotDisturbImage, DROPDOWN_DNOTDISTURB);
+ /* -------------------------------------------------------------------------- */
+ AttentionLabel = new UILabelExt();
+ if (AttentionLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::AttentionLabel new fail!!");
+ return;
+ }
+ AttentionLabel->SetPosition(33, 228, 400, 70);
+ AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ AttentionLabel->SetText("开启勿扰模式,手表将不会发出震动与铃声,是否开启");
+ AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
+ AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ /* -------------------------------------------------------------------------- */
+ ButtonOn = new UILabelButtonExt();
+ if (ButtonOn == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOn new fail!!");
+ return;
+ }
+ ButtonOn->SetPosition(111, 320, 120, 120);
+ ButtonOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ ButtonOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ const char *ButtonOnImgSrc = "/user/res/SYSTEM_CheckOff.bin";
+ ButtonOn->SetImageSrc(ButtonOnImgSrc, ButtonOnImgSrc);
+ ButtonOn->SetImagePosition(10, 10);
+ ButtonOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ ButtonOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+ UIView::OnClickListener *labelButtonClick1 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
+ ButtonOn->SetOnClickListener(labelButtonClick1);
+ /* -------------------------------------------------------------------------- */
+ ButtonOff = new UILabelButtonExt();
+ if (ButtonOff == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOff new fail!!");
+ return;
+ }
+ ButtonOff->SetPosition(256, 320, 120, 120);
+ ButtonOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ ButtonOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ const char *ButtonOffImgSrc = "/user/res/SYSTEM_CheckOn.bin";
+ ButtonOff->SetImageSrc(ButtonOffImgSrc, ButtonOffImgSrc);
+ ButtonOff->SetImagePosition(10, 10);
+ ButtonOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ ButtonOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+ UIView::OnClickListener *labelButtonClick2 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
+ ButtonOff->SetOnClickListener(labelButtonClick2);
+ }
+ }
+
+ UILabelButtonExt *DnotDisturbView::GetButtonOn(void)
+ {
+ return ButtonOn;
+ }
+
+ UILabelButtonExt *DnotDisturbView::GetButtonOff(void)
+ {
+ return ButtonOff;
+ }
+
+ void DnotDisturbView::OnStart()
+ {
+ View<DnotDisturbPresenter>::OnStart();
+ DnotDisturbViewInit();
+ }
+
+ void DnotDisturbView::OnSetUpView()
+ {
+ View<DnotDisturbPresenter>::OnSetUpView();
+ scrollView->Add(showTimeLabel);
+ scrollView->Add(DnotDisturbImage);
+ scrollView->Add(AttentionLabel);
+ scrollView->Add(ButtonOn);
+ scrollView->Add(ButtonOff);
+ RootView::GetInstance()->Add(scrollView);
+ Draw();
+ }
+
+ void DnotDisturbView::OnTearDownView()
+ {
+
+ View<DnotDisturbPresenter>::OnTearDownView();
+ return;
+ }
+
+ void DnotDisturbView::OnStop()
+ {
+
+ View<DnotDisturbPresenter>::OnStop();
+ RootView::GetInstance()->RemoveAll();
+ RootView::GetInstance()->ClearOnKeyActListener();
+ return;
+ }
+}
\ No newline at end of file
constexpr int16_t LIGHTING_IMG_X = 76;
constexpr int16_t LIGHTING_IMG_Y = 76;
- // 蓝牙
- constexpr int16_t BLUETOOTH_IMG_X = 186;
- constexpr int16_t BLUETOOTH_IMG_Y = 30;
+ // 勿扰
+ constexpr int16_t DNOTDISTURB_IMG_X = 186;
+ constexpr int16_t DNOTDISTURB_IMG_Y = 30;
// 省电
constexpr int16_t SAVEPOWER_IMG_X = 296;
}
dropIconBackground[0]->SetPosition(SETTING_IMG_X, SETTING_IMG_Y);
dropIconBackground[1]->SetPosition(LIGHTING_IMG_X, LIGHTING_IMG_Y);
- dropIconBackground[2]->SetPosition(BLUETOOTH_IMG_X, BLUETOOTH_IMG_Y);
+ dropIconBackground[2]->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y);
dropIconBackground[3]->SetPosition(SAVEPOWER_IMG_X, SAVEPOWER_IMG_Y);
dropIconBackground[4]->SetPosition(FINDPHONE_IMG_X, FINDPHONE_IMG_Y);
for (int i = 0; i < 5; i++)
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDnotDisturb new fail");
return;
}
- dropDnotDisturb->SetPosition(BLUETOOTH_IMG_X, BLUETOOTH_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
+ dropDnotDisturb->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
dropDnotDisturb->SetAutoEnable(false);
dropDnotDisturb->SetResizeMode(UIImageView::CENTER);
ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropDnotDisturb, DROPDOWN_DNOTDISTURB);