--- /dev/null
+
+#include "sleepmode/include/SleepModeModel.h"
+#include "main/include/MainViewSample.h"
+#include "main/include/dropdown/DropDownCardPage1.h"
+#include "MainModel.h"
+#include "ConfigModel.h"
+#include "custom_runtime.h"
+#include "custom_utils.h"
+#include "ui_service.h"
+#include "ConfigModelC.h"
+#include "power_display_service.h"
+
+
+namespace OHOS
+{
+ SleepModeModel::SleepModeModel() {}
+
+ SleepModeModel::~SleepModeModel() {}
+
+ SleepModeModel &SleepModeModel::GetInstance()
+ {
+ static SleepModeModel instance;
+ return instance;
+ }
+
+ void SleepModeModel::SetSleepModeEnabled(void)
+ {
+ uapi_sleep_mode_flag_set(1);
+
+ // update donotdisturb
+ // SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);
+
+ /*更新主界面配置*/
+ MainModel::GetInstance().setDialState(DialState::SLEEP, true);
+
+ //更新下拉界面
+ if(DropDownCardPage1::GetInstance() != nullptr && MainViewSample::GetInstance() != nullptr)
+ {
+ DropDownCardPage1::GetInstance()->UpdateSleepModelState(true);
+ }
+
+ // disable flip wrist
+ uapi_take_to_wake(0);
+
+ // turn down brightness
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ display_api->set_brightness(MIN_BRIGHTNESS);
+ }
+
+ void SleepModeModel::SetSleepModeDisabled(void)
+ {
+ uapi_sleep_mode_flag_set(0);
+
+ // update donotdisturb
+ // SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);
+
+ /*更新主界面配置*/
+ MainModel::GetInstance().setDialState(DialState::SLEEP, false);
+
+ //更新下拉界面
+ if(DropDownCardPage1::GetInstance() != nullptr && MainViewSample::GetInstance() != nullptr)
+ {
+ DropDownCardPage1::GetInstance()->UpdateSleepModelState(false);
+ }
+ // enable flip wrist
+ if(true == mmi_flip_wrist_switch_get())
+ {
+ uapi_take_to_wake(1);
+ }
+
+ // reset brightness
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ display_api->set_brightness(OHOS::ConfigModel::GetInstance()->GetBrightness());
+ }
+
+ // /*更新勿扰模式*/
+ // void SleepModeModel::UpdateSleepMode(void)
+ // {
+ // if (PullUpDownView::GetInstance() != nullptr)
+ // {
+ // /*更新主界面下拉界面配置*/
+ // if(DropDownCardPage1::GetInstance() && DropDownCardPage1::GetInstance()->GetDropDownCardPage1_ToggleButton(DropDownCardPage1::toggleButton_DNOTDISTURB))
+ // {
+ // DropDownCardPage1::GetInstance()->GetDropDownCardPage1_ToggleButton(DropDownCardPage1::toggleButton_DNOTDISTURB)->SetState(GetSleepModeEnabled());
+ // }
+ // PullUpDownView::GetInstance()->UpdateSleepModeStatus(GetSleepModeEnabled());
+ // /*更新主界面配置*/
+ // MainModel::GetInstance().setDialState(DialState::DO_NOT_DISTURB, GetSleepModeEnabled());
+ // }
+ // return;
+ // }
+}
\ No newline at end of file
--- /dev/null
+
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "UiConfig.h"
+#include "sleepmode/include/SleepModePresenter.h"
+#include "common/key_code.h"
+#include <custom_utils.h>
+#include "NativeRegisterManager.h"
+
+namespace OHOS
+{
+ REGIST_SLICE( VIEW_SLEEPMODE, SleepModeView, SleepModePresenter);
+
+ static SleepModePresenter * p_SleepModePresenterInstance = nullptr;
+
+ SleepModePresenter::SleepModePresenter()
+ {
+ SleepModeModel_ = &SleepModeModel::GetInstance();
+ p_SleepModePresenterInstance = this;
+ }
+
+ SleepModePresenter::~SleepModePresenter()
+ {
+ p_SleepModePresenterInstance = nullptr;
+ }
+
+ SleepModePresenter * SleepModePresenter::GetInstance()
+ {
+ return p_SleepModePresenterInstance;
+ }
+
+ void SleepModePresenter::OnStart()
+ {
+ Presenter<SleepModeView>::OnStart();
+ }
+
+ bool SleepModePresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SleepModePresenter::OnDrag");
+ UNUSED(view);
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
+ {
+ SleepModePresenter::X_DRAG_FLAG = true;
+ }
+ return true;
+ }
+
+ bool SleepModePresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SleepModePresenter::OnDragEnd");
+ UNUSED(event);
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SleepModePresenter::X_DRAG_FLAG)
+ {
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ SleepModePresenter::X_DRAG_FLAG = false;
+ }
+ return true;
+ }
+
+ bool SleepModePresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+ UNUSED(event);
+
+ if(0 == strcmp(view.GetViewId(), SLEEPMODE_ViewId_OKButton_))
+ {
+ SleepModeModel_->SetSleepModeEnabled();
+ }
+
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ return true;
+ }
+
+ // 增加按键事件
+ bool SleepModePresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SleepModePresenter::OnKeyAct");
+ uint16_t keyID = event.GetKeyId();
+ uint16_t keyState = event.GetState();
+ // 如果是power键就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
+ {
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ }
+ return true;
+ }
+
+ // void SleepModePresenter::Notify()
+ // {
+ // // SleepModeView::GetInstance()->UpdataTime();
+ // }
+}
\ No newline at end of file
--- /dev/null
+
+#include "sleepmode/include/SleepModeView.h"
+#include "sleepmode/include/SleepModePresenter.h"
+#include "sleepmode/include/SleepModeModel.h"
+#include "wearable_log.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+#include "uicomponents/UIComponents.h"
+#include "ui_resource_string.h"
+
+
+namespace OHOS
+{
+ static SleepModeView * p_SleepModeViewInstance = nullptr;
+
+ SleepModeView::SleepModeView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SleepModeView::SleepModeView");
+ p_SleepModeViewInstance = this;
+ }
+
+ SleepModeView::~SleepModeView()
+ {
+ DeinitScreen();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SleepModeView::~SleepModeView");
+ p_SleepModeViewInstance = nullptr;
+ }
+
+ SleepModeView * SleepModeView::GetInstance()
+ {
+ return p_SleepModeViewInstance;
+ }
+
+ void SleepModeView::OnStart()
+ {
+ View<SleepModePresenter>::OnStart();
+ GetRootContainer()->SetTouchable(true);
+ GetRootContainer()->SetDraggable(true);
+
+ ScrollView_ = InitScreen();
+
+ AddViewToRootContainer(ScrollView_);
+
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
+ }
+
+
+
+ void SleepModeView::DeinitScreen()
+ {
+ if(nullptr != ScrollView_)
+ {
+ ScrollView_->RemoveAll();
+ if(nullptr != TitleLabelExt_)
+ {
+ delete TitleLabelExt_;
+ TitleLabelExt_ = nullptr;
+ }
+ if(nullptr != PromptImage_)
+ {
+ delete PromptImage_;
+ PromptImage_ = nullptr;
+ }
+ if(nullptr != PromptLabelExt_)
+ {
+ delete PromptLabelExt_;
+ PromptLabelExt_ = nullptr;
+ }
+ if(nullptr != CancelButton_)
+ {
+ delete CancelButton_;
+ CancelButton_ = nullptr;
+ }
+ if(nullptr != OKButton_)
+ {
+ delete OKButton_;
+ OKButton_ = nullptr;
+ }
+
+ delete ScrollView_;
+ ScrollView_ = nullptr;
+ }
+ }
+
+ UIScrollView * SleepModeView::InitScreen(void)
+ {
+ if (nullptr == ScrollView_)
+ {
+ ScrollView_ = new UIScrollView();
+ if (nullptr == ScrollView_)
+ return nullptr;
+
+ ScrollView_->SetScrollBlankSize(35);
+ ScrollView_->SetReboundSize(50);
+ ScrollView_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ // ScrollView_->SetViewId();
+ ScrollView_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ ScrollView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ ScrollView_->SetOnDragListener(presenter_);
+ ScrollView_->SetTouchable(true);
+ ScrollView_->SetDraggable(true);
+
+ if (nullptr == TitleLabelExt_)
+ {
+ TitleLabelExt_ = new UILabelExt();
+ if (nullptr == TitleLabelExt_)
+ return nullptr;
+
+ TitleLabelExt_->SetPosition(83, 50, 300, 35);
+ TitleLabelExt_->SetStyle(STYLE_TEXT_FONT, 30);
+ TitleLabelExt_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ TitleLabelExt_->SetTextId(STR_SLEEPMODE);
+ TitleLabelExt_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ TitleLabelExt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ TitleLabelExt_->SetRollSpeed(23);
+ TitleLabelExt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ // TitleLabelExt_->SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+ }
+
+ if (nullptr == PromptImage_)
+ {
+ PromptImage_ = new UIImageView();
+ if (nullptr == PromptImage_)
+ return nullptr;
+
+ PromptImage_->SetPosition(183, 107);
+ // PromptImage_->Resize(94, 94);
+ // PromptImage_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff8120e2);
+ // PromptImage_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ // PromptImage_->SetStyle(STYLE_BORDER_RADIUS, 100);
+ // PromptImage_->SetAutoEnable(false);
+ // PromptImage_->SetResizeMode(UIImageView::CENTER);
+ PromptImage_->SetSrc(SLEEP_MODE_PROMPT_IMAGE);
+ }
+
+ if (nullptr == PromptLabelExt_)
+ {
+ PromptLabelExt_ = new UILabelExt();
+ if (nullptr == PromptLabelExt_)
+ return nullptr;
+
+ PromptLabelExt_->SetPosition(53, 230, 360, 70);
+ PromptLabelExt_->SetStyle(STYLE_TEXT_FONT, 30);
+ PromptLabelExt_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ PromptLabelExt_->SetTextId(STR_SLEEP_MODE_PROMPT_ON);
+ PromptLabelExt_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ PromptLabelExt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ PromptLabelExt_->SetRollSpeed(23);
+ PromptLabelExt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ PromptLabelExt_->SetStyle(STYLE_TEXT_COLOR, 0Xff999999);
+ }
+
+ if (nullptr == CancelButton_)
+ {
+ CancelButton_ = new UILabelButtonExt();
+ if (nullptr == CancelButton_)
+ return nullptr;
+
+ CancelButton_->SetPosition(111, PromptLabelExt_->GetY() + PromptLabelExt_->GetHeight() + 20, 100, 100);
+ // CancelButton_->SetViewId(SCHEDULE_ViewId_DeleteCancelButton_);
+ CancelButton_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ CancelButton_->SetStyle(STYLE_BACKGROUND_OPA, 25); // 10%
+ CancelButton_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ CancelButton_->SetStyleForState(STYLE_BACKGROUND_OPA, 25, UIButton::PRESSED);
+ CancelButton_->SetStyle(STYLE_BORDER_RADIUS, 100);
+ CancelButton_->SetImagePosition(0, 0);
+ CancelButton_->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, PNG_SYSTEM_CHECK_OFF_IMAGE);
+ CancelButton_->SetOnClickListener(presenter_);
+ }
+
+ if (nullptr == OKButton_)
+ {
+ OKButton_ = new UILabelButtonExt();
+ if (nullptr == OKButton_)
+ return nullptr;
+
+ OKButton_->SetPosition(256, PromptLabelExt_->GetY() + PromptLabelExt_->GetHeight() + 20,100, 100);
+ OKButton_->SetViewId(SLEEPMODE_ViewId_OKButton_);
+ OKButton_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ OKButton_->SetStyle(STYLE_BACKGROUND_OPA, 25); // 10%
+ OKButton_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ OKButton_->SetStyleForState(STYLE_BACKGROUND_OPA, 25, UIButton::PRESSED);
+ OKButton_->SetStyle(STYLE_BORDER_RADIUS, 100);
+ OKButton_->SetImagePosition(0, 0);
+ OKButton_->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, PNG_SYSTEM_CHECK_ON_IMAGE);
+ OKButton_->SetOnClickListener(presenter_);
+ }
+
+ ScrollView_->Add(TitleLabelExt_);
+ ScrollView_->Add(PromptImage_);
+ ScrollView_->Add(PromptLabelExt_);
+ ScrollView_->Add(CancelButton_);
+ ScrollView_->Add(OKButton_);
+ }
+
+ return ScrollView_;
+ }
+}
\ No newline at end of file