${CMAKE_CURRENT_SOURCE_DIR}/nativeui/findphone/src/FindPhoneView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/findphone/src/FindPhoneModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/brightnesslevel/src/BrightnessLevelPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/brightnesslevel/src/BrightnessLevelView.cpp
+
#天气
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/MainWeatherPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/MainWeatherView.cpp
VIEW_MAIN_STOPWATCH, // 秒表
VIEW_MAIN_COUNTDOWN, // 计时器
VIEW_DNOTDISTURB, // 勿扰模式
- VIEW_FLASHLIGHT, // 手电筒
+ VIEW_FLASHLIGHT, // 手电筒
+ VIEW_BRIGHTNESSLEVEL, // 亮度调节
/* ----------------------------------- 录音 ----------------------------------- */
VIEW_RECORD,
/* ---------------------------------- 界面 ---------------------------------- */
void InitMainCountDownSlice(void);
void InitDnotDisturbSlice(void);
void InitFlashlightSlice(void);
+ void InitBrightnessLevelSlice(void);
/* --------------------------------界面------------------------------------ */
void InitRotateSlice(void);
void InitBloodSlice(void);
static constexpr const char *PNG_APPLIST_FINDPHONE_IMAGE = APP_LIST_PATH "/findphone.bin"; // 查找手机
static constexpr const char *PNG_APPLIST_DISTURB_IMAGE = APP_LIST_PATH "/disturb.bin"; // 勿扰模式
static constexpr const char *PNG_APPLIST_FLASHLIGHT_IMAGE = APP_LIST_PATH "/flashlight.bin"; // 手电筒
+ static constexpr const char *PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE = APP_LIST_PATH "/lighting.bin"; // 亮度调节
/* ---------------------------------- 快速训练 ---------------------------------- */
static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin";
static constexpr const char *PNG_TRAING_BUTTONGRONG_IMAGE = APP_RES_PATH "/Training/Bouttonground.bin";
#include "flashlight/include/FlashlightPresenter.h"
#include "flashlight/include/FlashlightView.h"
+
+#include "brightnesslevel/include/BrightnessLevelPresenter.h"
+#include "brightnesslevel/include/BrightnessLevelView.h"
/* -------------------------------------------------------------------------- */
#include "traing/include/TraingView.h"
#include "traing/include/TraingPresenter.h"
{VIEW_MAIN_COUNTDOWN, &NativeLauncher::InitMainCountDownSlice},
{VIEW_DNOTDISTURB, &NativeLauncher::InitDnotDisturbSlice},
{VIEW_FLASHLIGHT, &NativeLauncher::InitFlashlightSlice},
+ {VIEW_BRIGHTNESSLEVEL, &NativeLauncher::InitBrightnessLevelSlice},
{VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
NativeAbility::GetInstance().AddSliceProxy(VIEW_FLASHLIGHT, flashlight);
}
+ /*手电筒*/
+ void NativeLauncher::InitBrightnessLevelSlice(void)
+ {
+ SliceProxy *brightnesslevel = new AbilitySliceProxy<BrightnessLevelView, BrightnessLevelPresenter>;
+ if (brightnesslevel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "brightnesslevel");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_BRIGHTNESSLEVEL, brightnesslevel);
+ }
+
/* -------------------------------------------------------------------------- */
void NativeLauncher::InitSetDesktopSlice(void)
{
{VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "切换表盘", nullptr},
{VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式", nullptr},
{VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", nullptr},
+ {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节", nullptr},
#ifdef SUPPORT_ALIPAY_SEC
{VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", nullptr},
#endif
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-16 14:37:08
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-16 16:08:41
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/include/BrightnessLevelPresenter.h
+ */
+
+#ifndef BRIGHTNESS_LEVEL_PRESENTER_H
+#define BRIGHTNESS_LEVEL_PRESENTER_H
+
+#include "Presenter.h"
+#include "View.h"
+
+namespace OHOS
+{
+ class BrightnessLevelView;
+ class BrightnessLevelPresenter : public Presenter<BrightnessLevelView>,
+ public UIView::OnClickListener,
+ public RootView::OnKeyActListener,
+ public UIView::OnDragListener
+ {
+ public:
+ BrightnessLevelPresenter();
+ virtual ~BrightnessLevelPresenter();
+
+ void OnStart() override;
+ void OnPause() override;
+ void OnResume() override;
+ void OnStop() override;
+
+ static BrightnessLevelPresenter *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-16 14:37:15
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-16 16:11:46
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/include/BrightnessLevelView.h
+ */
+#ifndef BRIGHTNESS_LEVEL_VIEW_H
+#define BRIGHTNESS_LEVEL_VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+#include "displaybrightness/include/BrightnessControlView.h"
+#include "components/ui_scroll_view.h"
+namespace OHOS
+{
+
+ class BrightnessLevelPresenter;
+ class BrightnessLevelView : public View<BrightnessLevelPresenter>
+ {
+
+ public:
+ BrightnessLevelView();
+ virtual ~BrightnessLevelView();
+ static BrightnessLevelView *GetInstance(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+
+ private:
+ void BrightnessLevelViewInit(void);
+ void ClearAll(void);
+ UIScrollView *scorllView{nullptr};
+ BrightnessControlView *p_BrightnessControlView{nullptr};
+ };
+}
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-16 14:36:45
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-16 17:30:38
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelPresenter.cpp
+ */
+#include "brightnesslevel/include/BrightnessLevelPresenter.h"
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "common/key_code.h"
+#include <custom_utils.h>
+namespace OHOS
+{
+
+ // 当前Presenter属性实例化的内存指针
+ static BrightnessLevelPresenter *g_pBrightnessLevelPresenter = nullptr;
+
+ BrightnessLevelPresenter::BrightnessLevelPresenter()
+ {
+ g_pBrightnessLevelPresenter = this;
+ }
+
+ BrightnessLevelPresenter::~BrightnessLevelPresenter()
+ {
+ g_pBrightnessLevelPresenter = nullptr;
+ }
+
+ BrightnessLevelPresenter *BrightnessLevelPresenter::GetInstance()
+ {
+ return g_pBrightnessLevelPresenter;
+ }
+
+ void BrightnessLevelPresenter::OnStart()
+ {
+ Presenter<BrightnessLevelView>::OnStart();
+ }
+
+ void BrightnessLevelPresenter::OnPause(void)
+ {
+ Presenter<BrightnessLevelView>::OnPause();
+ }
+
+ void BrightnessLevelPresenter::OnResume(void)
+ {
+ Presenter<BrightnessLevelView>::OnResume();
+ }
+
+ void BrightnessLevelPresenter::OnStop(void)
+ {
+ Presenter<BrightnessLevelView>::OnStop();
+ }
+
+ bool BrightnessLevelPresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+
+ return true;
+ }
+
+ bool BrightnessLevelPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ UNUSED(event);
+ return true;
+ }
+
+ bool BrightnessLevelPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+ {
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
+ }
+ return true;
+ }
+
+ bool BrightnessLevelPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnKeyAct");
+ unsigned short keyID = event.GetKeyId();
+ unsigned short 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-16 14:36:13
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-16 16:18:00
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelView.cpp
+ */
+#include "brightnesslevel/include/BrightnessLevelView.h"
+#include "brightnesslevel/include/BrightnessLevelPresenter.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+
+ static BrightnessLevelView *g_pBrightnessLevelView{nullptr};
+
+ BrightnessLevelView::BrightnessLevelView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::BrightnessLevelView");
+ g_pBrightnessLevelView = this;
+ }
+
+ BrightnessLevelView::~BrightnessLevelView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "~BrightnessLevelView::BrightnessLevelView");
+ ClearAll();
+ g_pBrightnessLevelView = nullptr;
+ }
+
+ BrightnessLevelView *BrightnessLevelView::GetInstance()
+ {
+ return g_pBrightnessLevelView;
+ }
+
+ void BrightnessLevelView::ClearAll(void)
+ {
+ if (p_BrightnessControlView != nullptr)
+ {
+ scorllView = nullptr;
+
+ delete p_BrightnessControlView;
+ p_BrightnessControlView = nullptr;
+ }
+ }
+
+ void BrightnessLevelView::BrightnessLevelViewInit(void)
+ {
+ p_BrightnessControlView = new BrightnessControlView();
+ if (p_BrightnessControlView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BrightnessLevelView::BrightnessLevelViewInit] p_BrightnessControlView is nullptr!!");
+ return;
+ }
+ scorllView = p_BrightnessControlView->BrightnessControlViewInit();
+ if (scorllView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BrightnessLevelView::BrightnessLevelViewInit] scorllView == nullptr");
+ return;
+ }
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(BrightnessLevelPresenter::GetInstance());
+ if (draglistener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BrightnessLevelView::BrightnessLevelViewInit] draglistener can not be nullptr!");
+ return;
+ }
+ scorllView->SetOnDragListener(draglistener);
+ }
+
+ void BrightnessLevelView::OnStart()
+ {
+ View<BrightnessLevelPresenter>::OnStart();
+ BrightnessLevelViewInit();
+
+ // 增加按键监听
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::BrightnessLevelPresenter::GetInstance();
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ }
+
+ void BrightnessLevelView::OnSetUpView()
+ {
+
+ View<BrightnessLevelPresenter>::OnSetUpView();
+ RootView::GetInstance()->Add(scorllView);
+ Draw();
+ }
+
+ void BrightnessLevelView::OnTearDownView()
+ {
+
+ View<BrightnessLevelPresenter>::OnTearDownView();
+ return;
+ }
+
+ void BrightnessLevelView::OnStop()
+ {
+
+ View<BrightnessLevelPresenter>::OnStop();
+ RootView::GetInstance()->RemoveAll();
+ RootView::GetInstance()->ClearOnKeyActListener();
+ return;
+ }
+}
\ No newline at end of file
void SetDnotdisturb(bool state);
bool GetDnotdisturb(void);
-
+
+ void SetBrightness(int level);
+ int GetBrightness(void);
// -------------------------------------------------------------------------- */
private:
configmodel_item configmodel_item_key_name[CONFIGMODEL_ITEM_MAX] =
return get_configData_bool(CONFIGMODEL_ITEM_DNOTDISTURB);
}
+ // 设置亮度值
+ void ConfigModel::SetBrightness(int level)
+ {
+ set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,level);
+ }
+
+ // 获取亮度值
+ int ConfigModel::GetBrightness(void)
+ {
+ return get_configData_int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE);
+ }
+
/* ---------------------------------------------------------------------------- */
int ConfigModel::get_configData_int(ConfigItem item)
{
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 15:37:44\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-16 16:51:33\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h\r
+ */\r
#ifndef BRIGHTNESS_CONTROL_VIEW_H\r
#define BRIGHTNESS_CONTROL_VIEW_H\r
\r
#include "components/ui_scroll_view.h"\r
#include "components/ui_slider.h"\r
#include "components/ui_image_view.h"\r
+#include <memory>\r
namespace OHOS\r
{\r
#define BRIGHTNESS_MIN 51\r
#define BRIGHTNESS_PROGRESS "progress"\r
\r
static const char *BRIGHTNESS_CONTROL_SLIDER = "BrightnessControlViewSlider";\r
+ class BrightnessSliderEventListener : public UISlider::UISliderEventListener,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener\r
+ {\r
+ public:\r
+ BrightnessSliderEventListener();\r
+ ~BrightnessSliderEventListener();\r
+ static std::shared_ptr<BrightnessSliderEventListener> GetInstance();\r
+ void ChangeBrightness(uint8_t status, uint8_t value);\r
+ void OnChange(int32_t value) override;\r
+ void OnRelease(int32_t value) override;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
\r
+ private:\r
+ int32_t BrightnessValue; // 亮度值\r
+ };\r
class BrightnessControlView\r
{\r
public:\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-04-12 20:11:04\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-16 17:05:46\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h\r
+ */\r
#ifndef DISPLAY_BRIGHTNESS_MODEL_H_\r
#define DISPLAY_BRIGHTNESS_MODEL_H_\r
\r
void SetRaiseToBrightnessCheckBoxButtonStatus(bool value);\r
bool RaiseToBrightnessCheckBoxButtonStatusInit(void);\r
void KeepScreenBrightnessValues(unsigned char value);\r
- bool BrightnessControlViewSliderValuesInit(void);\r
void KeepScreenDurationRadioButtonSlectStatus(unsigned int value);\r
bool ScreenDurationRadioButtonSlectStatusInit(void);\r
void SetScreenDurationTime(unsigned int time);\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-18 09:10:05\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-16 17:08:18\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h\r
+ */\r
#ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
#define _DISPLAY_BRIGHTNESS_PRESENTER_H\r
\r
typedef enum\r
{\r
DISPLAYBRIGHTNESSVIEW = 0, // 屏幕与亮度视图(slice)\r
- BRIGHTNESSCONTROLVIEW, // 亮度调节视图(subView)\r
SCREENDURATIONVIEW, // 亮屏时长视图(subView)\r
MAX_DISPLAYBRIGHTNESSVIEWID,\r
} DISPLAYBRIGHTNESSVIEWID;\r
static const char *SCREENDURATION_TENSECONDS_VIEWID = "SCREENDURATION_TENSECONDS"; // 10秒时长\r
static const char *SCREENDURATION_FIFTEENSECONDS_VIEWID = "SCREENDURATION_FIFTEENSECONDS"; // 15秒时长\r
\r
- class BrightnessSliderEventListener : public UISlider::UISliderEventListener,\r
- public UIView::OnClickListener,\r
- public UIView::OnDragListener\r
- {\r
- public:\r
- BrightnessSliderEventListener();\r
- ~BrightnessSliderEventListener();\r
- static BrightnessSliderEventListener *GetInstance(void);\r
- void ChangeBrightness(uint8_t status, uint8_t value);\r
- void OnChange(int32_t value) override;\r
- void OnRelease(int32_t value) override;\r
- bool OnClick(UIView &view, const ClickEvent &event) override;\r
- bool OnDrag(UIView &view, const DragEvent &event) override;\r
-\r
- private:\r
- int32_t BrightnessValue; // 亮度值\r
- };\r
\r
class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener\r
{\r
\r
static DisplayBrightnessPresenter *GetInstance();\r
void SetRaiseToBrightnessState(bool value);\r
- void SetScreenBrightnessValues(unsigned char value);\r
void SetScreenDurationRadioButtonSlectStatus(uint32_t value);\r
\r
private:\r
#include "components/ui_checkbox.h"\r
#include "components/ui_radio_button.h"\r
#include "DisplayBrightnessPresenter.h"\r
-#include "displaybrightness/include/BrightnessControlView.h"\r
#include "displaybrightness/include/ScreenDurationView.h"\r
namespace OHOS\r
{\r
void DisplayAndBrightnessViewInit(void);\r
void ClearAll(void);\r
bool ChangeDisplayBrightnessView(int16_t thisView); // 切换到“屏幕与亮度”视图\r
- bool ChangeBrightnessControlView(int16_t thisView); // 切换到“亮度调节”视图\r
bool ChangeScreenDurationView(int16_t thisView); // 切换到亮屏时长视图\r
bool ClickFunc(int16_t interface);\r
void ChangeView(int16_t hideView, int16_t showView);\r
void OnStop() override;\r
\r
private:\r
- BrightnessControlView *p_BrightnessControlView{nullptr}; // 亮度调节视图\r
ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
private:\r
bool SetUpScrollView(void);\r
bool InitDisplayBrightnessViewImage(void);\r
UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框\r
bool InitDisplayBrightnessViewCheckBox(void);\r
- UIScrollView *DisplayBrightnessScrollView[3]{nullptr}; // “3”表示有三个界面\r
+ UIScrollView *DisplayBrightnessScrollView[2]{nullptr};\r
UILabel *DisplayBrightnessTitleLabel = nullptr; // 显示与亮度标题\r
UIButton *BringhtnessControlButton = nullptr; // 亮度调节按钮\r
UIButton *ScreenDurationButton = nullptr; // 亮屏时长按钮\r
#include "displaybrightness/include/BrightnessControlView.h"\r
#include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
-#include "displaybrightness/include/DisplayBrightnessModel.h"\r
#include "wearable_log.h"\r
+#include <custom_utils.h>\r
+#include "power_display_service.h"\r
+#include "config/include/ConfigModel.h"\r
namespace OHOS\r
{\r
static BrightnessControlView *g_pBrightnessControlView{nullptr};\r
{\r
BrightnessControlScrollView->RemoveAll();\r
\r
- unsigned char value = BrightnessControlViewSlider->GetValue();\r
- DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(value);\r
- // ConfigModel::GetInstance()->WriteJsonData_Int(ConfigModel::GetInstance()->GetcJSON(),"ScreenBrightnessValue",value);\r
- ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::ConfigItem::CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,value);\r
+ int value = BrightnessControlViewSlider->GetValue();\r
+ ConfigModel::GetInstance()->SetBrightness(value);\r
+\r
delete BrightnessControlViewSlider;\r
BrightnessControlViewSlider = nullptr;\r
\r
return false;\r
}\r
BrightnessControlScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::draglistener can not be nullptr!");\r
- return false;\r
- }\r
- BrightnessControlScrollView->SetOnDragListener(draglistener);\r
BrightnessControlScrollView->SetTouchable(true);\r
BrightnessControlScrollView->SetDraggable(true);\r
return true;\r
BrightnessControlViewSlider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);\r
BrightnessControlViewSlider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
BrightnessControlViewSlider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ BrightnessControlViewSlider->SetValue(ConfigModel::GetInstance()->GetBrightness());\r
+ BrightnessControlViewSlider->SetIntercept(true);\r
\r
- BrightnessSliderEventListener *listener = nullptr;\r
- if (listener == nullptr)\r
- {\r
- listener = new BrightnessSliderEventListener();\r
- if (listener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Listener new fail!");\r
- return false;\r
- }\r
- }\r
- BrightnessControlViewSlider->SetSliderEventListener(listener);\r
- BrightnessControlViewSlider->SetOnClickListener(listener);\r
- BrightnessControlViewSlider->SetOnDragListener(listener);\r
+ /*\r
+ 注意,使用get方法获取的原生指针不应被用来管理对象的生命周期(不要用它去调用delete),因为智能指针会自动处理对象的销毁。\r
+ */\r
+ BrightnessSliderEventListener *rawPointer = BrightnessSliderEventListener::GetInstance().get();\r
+ BrightnessControlViewSlider->SetSliderEventListener(rawPointer );\r
+ BrightnessControlViewSlider->SetOnClickListener(rawPointer );\r
+ BrightnessControlViewSlider->SetOnDragListener(rawPointer );\r
BrightnessControlViewSlider->SetKnobStyle(StyleDefault::GetSliderKnobStyle());\r
return true;\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewImageIcon is nullptr!");\r
return nullptr;\r
}\r
-\r
- if(!DisplayBrightnessModel::GetInstance()->BrightnessControlViewSliderValuesInit())\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewSliderValuesInit fail!");\r
- return nullptr;\r
- }\r
/* ----------------------------------- Add ---------------------------------- */\r
BrightnessControlScrollView->Add(BrightnessControlViewSlider);\r
BrightnessControlScrollView->Add(BrightnessControlViewImageIcon);\r
return BrightnessControlScrollView;\r
}\r
\r
+ /* -------------------------------------------------------------------------- */\r
+ static BrightnessSliderEventListener *g_pBrightnessSliderEventListener{nullptr};\r
+ constexpr int16_t BRIGHTNESS_CHANGE = 10;\r
+\r
+ BrightnessSliderEventListener::BrightnessSliderEventListener()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::BrightnessSliderEventListener");\r
+ g_pBrightnessSliderEventListener = this;\r
+ }\r
+\r
+ BrightnessSliderEventListener::~BrightnessSliderEventListener()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::~BrightnessSliderEventListener");\r
+ g_pBrightnessSliderEventListener = nullptr;\r
+ }\r
+\r
+ std::shared_ptr<BrightnessSliderEventListener> BrightnessSliderEventListener::GetInstance(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::GetInstance");\r
+ static std::shared_ptr<BrightnessSliderEventListener> instance(new BrightnessSliderEventListener());\r
+ return instance;\r
+ }\r
+\r
+ /// @brief 改变屏幕状态\r
+ /// @param status\r
+ void BrightnessSliderEventListener::ChangeBrightness(uint8_t status, uint8_t value)\r
+ {\r
+ // 1.获取 BrightnessControlView 的实例:\r
+ BrightnessControlView *p_BrightnessControlView = BrightnessControlView::GetInstance();\r
+ // 2.检查 BrightnessControlView 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回\r
+ if (p_BrightnessControlView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::GetInstance fail!");\r
+ return;\r
+ }\r
+ // 3.获取 p_BrightnessControlView 的进度条 UISlider 实例的指针:\r
+ UISlider *progress = p_BrightnessControlView->GetBrightnessControlViewSlider();\r
+ // 4.检查 progress 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回:\r
+ if (progress == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness:progress is nullptr!");\r
+ return;\r
+ }\r
+ // 5.保存当前亮度到变量 BrightnessValue\r
+ BrightnessValue = p_BrightnessControlView->CurrentBrightnessValue;\r
+\r
+ // 6.获取显示功耗管理服务API接口.\r
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ // 7.根据传入的 status 值进行亮度变化操作\r
+ switch (status)\r
+ {\r
+ case BRIGHTNESSLOWERS:\r
+ /* code */\r
+ p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() - BRIGHTNESS_CHANGE;\r
+ if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN)\r
+ {\r
+ p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN;\r
+ }\r
+ break;\r
+ case BRIGHTNESSEVATED:\r
+ p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() + BRIGHTNESS_CHANGE;\r
+ if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX)\r
+ {\r
+ p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX;\r
+ }\r
+ break;\r
+ case BRIGHTNESSDRAG:\r
+ p_BrightnessControlView->CurrentBrightnessValue = value;\r
+ if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN)\r
+ {\r
+ p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN;\r
+ }\r
+ else if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX)\r
+ {\r
+ p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX;\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ // 8.将 p_BrightnessControlView->CurrentBrightnessValue 的值赋给 progress 的值,更新进度条的显示:\r
+ progress->SetValue(p_BrightnessControlView->CurrentBrightnessValue);\r
+\r
+ // 9.设置当前亮度值并检查是否设置成功\r
+ if (display_api->set_brightness(p_BrightnessControlView->CurrentBrightnessValue) != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness: set_brightness fail!");\r
+ return;\r
+ }\r
+ }\r
+\r
+ /// @brief 当滑动条被拖动或点击时调用\r
+ /// @param value 滑块的当前值。\r
+ void BrightnessSliderEventListener::OnChange(int32_t value)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnChange %d", value);\r
+ ChangeBrightness(BRIGHTNESSDRAG, value);\r
+ }\r
+\r
+ /// @brief 当滑动条被释放时调用\r
+ /// @param value 滑块的当前值。\r
+ void BrightnessSliderEventListener::OnRelease(int32_t value)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value);\r
+ ChangeBrightness(BRIGHTNESSDRAG, value);\r
+ }\r
+\r
+ bool BrightnessSliderEventListener::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ UNUSED(view);\r
+ return true;\r
+ }\r
+ bool BrightnessSliderEventListener::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ UNUSED(view);\r
+ return true;\r
+ }\r
}\r
ScreenBrightnessValue = value;
}
- // 亮度控制视图亮度Slider值初始化
- bool DisplayBrightnessModel::BrightnessControlViewSliderValuesInit(void)
- {
- DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
- if (displayBrightnessPresent == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
- return false;
- }
- displayBrightnessPresent->SetScreenBrightnessValues(ScreenBrightnessValue);
- return true;
- }
/// @brief 保存哪个亮屏时长按钮被选中
/// @param value 0 5秒后熄屏 1 10秒后熄屏 2 15秒后熄屏
}\r
}\r
\r
- /// @brief 设置亮度值\r
- /// @param value\r
- void DisplayBrightnessPresenter::SetScreenBrightnessValues(unsigned char value)\r
- {\r
- BrightnessControlView *p_BrightnessControlView = BrightnessControlView::GetInstance();\r
- if (p_BrightnessControlView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetScreenBrightnessValues BrightnessControlView GetInstance fail");\r
- return;\r
- }\r
- if (value >= BRIGHTNESS_MIN && value <= BRIGHTNESS_MAX)\r
- {\r
- p_BrightnessControlView->SetScreenBrightnessValue(value);\r
- DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(0xff); // 将Model层保存的状态清除\r
- }\r
- }\r
-\r
/// @brief 根据value值设置哪个按钮被选中\r
/// @param value\r
void DisplayBrightnessPresenter::SetScreenDurationRadioButtonSlectStatus(uint32_t value)\r
// 根据控件id查找是哪个控件触发了点击回调\r
if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
{\r
- p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, BRIGHTNESSCONTROLVIEW); // 切换到亮度调节视图\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESSLEVEL);\r
return true;\r
}\r
if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0)\r
\r
bool DisplayBrightnessPresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
+ UNUSED(view);\r
+ UNUSED(event);\r
return true;\r
}\r
\r
break;\r
}\r
}\r
- return true;\r
}\r
- return false;\r
+ return true;\r
}\r
\r
bool DisplayBrightnessPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
{\r
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
- NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ if (preSlice == VIEW_BRIGHTNESSLEVEL)\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ }\r
+ else\r
+ {\r
+ \r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ }\r
}\r
return true;\r
}\r
return false;\r
}\r
\r
- static BrightnessSliderEventListener *g_pBrightnessSliderEventListener{nullptr};\r
-\r
- constexpr int16_t BRIGHTNESS_CHANGE = 10;\r
-\r
- BrightnessSliderEventListener::BrightnessSliderEventListener()\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::BrightnessSliderEventListener");\r
- g_pBrightnessSliderEventListener = this;\r
- }\r
-\r
- BrightnessSliderEventListener::~BrightnessSliderEventListener()\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::~BrightnessSliderEventListener");\r
- g_pBrightnessSliderEventListener = nullptr;\r
- }\r
-\r
- BrightnessSliderEventListener *BrightnessSliderEventListener::GetInstance(void)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::GetInstance");\r
- return g_pBrightnessSliderEventListener;\r
- }\r
-\r
- /// @brief 改变屏幕状态\r
- /// @param status\r
- void BrightnessSliderEventListener::ChangeBrightness(uint8_t status, uint8_t value)\r
- {\r
- // 1.获取 BrightnessControlView 的实例:\r
- BrightnessControlView *p_BrightnessControlView = BrightnessControlView::GetInstance();\r
- // 2.检查 BrightnessControlView 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回\r
- if (p_BrightnessControlView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::GetInstance fail!");\r
- return;\r
- }\r
- // 3.获取 p_BrightnessControlView 的进度条 UISlider 实例的指针:\r
- UISlider *progress = p_BrightnessControlView->GetBrightnessControlViewSlider();\r
- // 4.检查 progress 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回:\r
- if (progress == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness:progress is nullptr!");\r
- return;\r
- }\r
- // 5.保存当前亮度到变量 BrightnessValue\r
- BrightnessValue = p_BrightnessControlView->CurrentBrightnessValue;\r
-\r
- // 6.获取显示功耗管理服务API接口.\r
- const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
- // 7.根据传入的 status 值进行亮度变化操作\r
- switch (status)\r
- {\r
- case BRIGHTNESSLOWERS:\r
- /* code */\r
- p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() - BRIGHTNESS_CHANGE;\r
- if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN)\r
- {\r
- p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN;\r
- }\r
- break;\r
- case BRIGHTNESSEVATED:\r
- p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() + BRIGHTNESS_CHANGE;\r
- if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX)\r
- {\r
- p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX;\r
- }\r
- break;\r
- case BRIGHTNESSDRAG:\r
- p_BrightnessControlView->CurrentBrightnessValue = value;\r
- if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN)\r
- {\r
- p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN;\r
- }\r
- else if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX)\r
- {\r
- p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX;\r
- }\r
- break;\r
- default:\r
- break;\r
- }\r
- // 8.将 p_BrightnessControlView->CurrentBrightnessValue 的值赋给 progress 的值,更新进度条的显示:\r
- progress->SetValue(p_BrightnessControlView->CurrentBrightnessValue);\r
-\r
- // 9.设置当前亮度值并检查是否设置成功\r
- if (display_api->set_brightness(p_BrightnessControlView->CurrentBrightnessValue) != ERRCODE_SUCC)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness: set_brightness fail!");\r
- return;\r
- }\r
- }\r
-\r
- /// @brief 当滑动条被拖动或点击时调用\r
- /// @param value 滑块的当前值。\r
- void BrightnessSliderEventListener::OnChange(int32_t value)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnChange %d", value);\r
- ChangeBrightness(BRIGHTNESSDRAG, value);\r
- }\r
-\r
- /// @brief 当滑动条被释放时调用\r
- /// @param value 滑块的当前值。\r
- void BrightnessSliderEventListener::OnRelease(int32_t value)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value);\r
- ChangeBrightness(BRIGHTNESSDRAG, value);\r
- }\r
-\r
- bool BrightnessSliderEventListener::OnClick(UIView &view, const ClickEvent &event)\r
- {\r
- UNUSED(event);\r
- UNUSED(view);\r
- return true;\r
- }\r
- bool BrightnessSliderEventListener::OnDrag(UIView &view, const DragEvent &event)\r
- {\r
- UNUSED(event);\r
- UNUSED(view);\r
- return true;\r
- }\r
-\r
}
\ No newline at end of file
delete RaiseToBrightnessCheckBoxButton;\r
RaiseToBrightnessCheckBoxButton = nullptr;\r
\r
- delete p_BrightnessControlView;\r
- p_BrightnessControlView = nullptr;\r
-\r
delete p_ScreenDurationView;\r
p_ScreenDurationView = nullptr;\r
\r
return true;\r
}\r
\r
- // 2.切换到“亮度调节”视图\r
- bool DisplayBrightnessView::ChangeBrightnessControlView(int16_t thisView)\r
- {\r
- if (DisplayBrightnessScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeBrightnessControlView");\r
- p_BrightnessControlView = new BrightnessControlView();\r
- if (p_BrightnessControlView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- DisplayBrightnessScrollView[thisView] = p_BrightnessControlView->BrightnessControlViewInit();\r
- RootView::GetInstance()->Add(DisplayBrightnessScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
// 3.切换到“亮屏时长”视图\r
bool DisplayBrightnessView::ChangeScreenDurationView(int16_t thisView)\r
{\r
// 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与DisplayBrightnessViewMapper类中的特定成员函数指针进行了绑定。\r
static const DisplayBrightnessViewMapper ViewMapper[] = {\r
{DISPLAYBRIGHTNESSVIEW, &DisplayBrightnessView::ChangeDisplayBrightnessView},\r
- {BRIGHTNESSCONTROLVIEW, &DisplayBrightnessView::ChangeBrightnessControlView},\r
{SCREENDURATIONVIEW, &DisplayBrightnessView::ChangeScreenDurationView},\r
};\r
\r