From: luozheng <1732036298@qq.com> Date: Wed, 17 Apr 2024 04:01:32 +0000 (+0800) Subject: 1.优化亮屏时长视图,增加30,60,300秒时长 X-Git-Tag: release_V1.2.70_20241020_135402~1162^2~16^2~5 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=1fc4130cc1d961a09b9059ddaf365efff1a6795c;p=mirrors%2FFD230.git 1.优化亮屏时长视图,增加30,60,300秒时长 2.ConfigModel 增加设置亮屏时长函数 3.优化Ability.h的EnterSlice和Back函数 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h index f98455187..794e44d7c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -110,6 +110,7 @@ namespace OHOS unsigned GetScreenBrightnessValue(void); + void SetScreenDuration(unsigned int value); unsigned int GetScreenDuration(void); bool GetClassicBlueToothState(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp index cf522e3ea..9de11d2c6 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp @@ -498,7 +498,15 @@ namespace OHOS return get_configData_int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE) ; } - /// @brief 获取亮屏时长三个单选框选中状况,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏 + /* + * @brief 设置亮屏时长单位ms + */ + void ConfigModel::SetScreenDuration(unsigned int value) + { + set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,value); + } + + /// @brief 获取亮屏时长单位ms unsigned int ConfigModel::GetScreenDuration(void) { return get_configData_int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE); diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h index a9eb81032..336a071ce 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-12 20:11:04 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-16 17:05:46 + * @LastEditTime: 2024-04-17 10:33:16 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h */ #ifndef DISPLAY_BRIGHTNESS_MODEL_H_ @@ -17,8 +17,6 @@ namespace OHOS static DisplayBrightnessModel *GetInstance(void); void SetRaiseToBrightnessCheckBoxButtonStatus(bool value); bool RaiseToBrightnessCheckBoxButtonStatusInit(void); - void KeepScreenBrightnessValues(unsigned char value); - void KeepScreenDurationRadioButtonSlectStatus(unsigned int value); bool ScreenDurationRadioButtonSlectStatusInit(void); void SetScreenDurationTime(unsigned int time); unsigned int GetScreenDurationTime(void); @@ -30,8 +28,6 @@ namespace OHOS private: bool RaiseToBrightnessCheckBoxButtonState{false}; // 抬腕按钮状态 ,默认补选中 - unsigned char ScreenBrightnessValue{255}; // 亮度值 ,默认最大亮度 - unsigned int ScreenDurationIndex{1}; // 亮屏时长 ,1对应10秒后熄屏 unsigned int ScreenDurationTime{10000}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h index d1f38af7b..6d4d545ce 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-02-18 09:10:05 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-16 17:08:18 + * @LastEditTime: 2024-04-17 10:21:03 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h */ #ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H @@ -33,9 +33,12 @@ namespace OHOS /// @brief 亮屏时长 typedef enum : uint32_t { - SCREENDURATIONFIVE = 1000 * 5, // 5秒后熄屏 - SCREENDURATIONTEN = 1000 * 10, // 10秒后熄屏 - SCREENDURATIONFIFTEENTH = 1000 * 15, // 15秒后熄屏 + SCREENDURATION_FIVE = 1000 * 5, // 5秒后熄屏 + SCREENDURATION_TEN = 1000 * 10, // 10秒后熄屏 + SCREENDURATION_FIFTEENTH = 1000 * 15, // 15秒后熄屏 + SCREENDURATION_THIRTY = 1000 * 30, // 30秒后熄屏 + SCREENDURATION_SIXTY = 1000 * 60, // 60秒后熄屏 + SCREENDURATION_THREE_HUNDRED = 1000 * 300, // 300秒后熄屏 } ScreenDurationTime; typedef enum @@ -43,17 +46,16 @@ namespace OHOS ScreenDurationRadioButton1 = 0, ScreenDurationRadioButton2, ScreenDurationRadioButton3, + ScreenDurationRadioButton4, + ScreenDurationRadioButton5, + ScreenDurationRadioButton6, + Max_ScreenDurationRadioButton, } ScreenDurationRadioButton; static const char *BRINGHTNESSCONTROLBUTTON_VIEW = "BRINGHTNESSCONTROLBUTTON"; // 亮度调节按钮视图id static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON"; // 亮屏时长按钮视图id static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id - static const char *SCREENDURATION_FIVESECONDS_VIEWID = "SCREENDURATION_FIVESECONDS"; // 5秒时长 - static const char *SCREENDURATION_TENSECONDS_VIEWID = "SCREENDURATION_TENSECONDS"; // 10秒时长 - static const char *SCREENDURATION_FIFTEENSECONDS_VIEWID = "SCREENDURATION_FIFTEENSECONDS"; // 15秒时长 - - class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener { public: diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h index 79426568a..cfdb2a686 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h @@ -12,9 +12,10 @@ #include "components/ui_radio_button.h" #include "DisplayBrightnessPresenter.h" #include "displaybrightness/include/ScreenDurationView.h" +#include "memory" namespace OHOS { - + static constexpr const char *DISPLAY_BRIGHTNESS_VIEW = "DisplayBrightnessView"; class DisplayBrightnessPresenter; class DisplayBrightnessView : public View { @@ -77,7 +78,8 @@ namespace OHOS void OnStop() override; private: - ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图 + //ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图 + std::shared_ptr p_ScreenDurationView; private: bool SetUpScrollView(void); bool SetTheTitle(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h index 7e8876fdd..a5ba75b5e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-03-30 09:14:38 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-17 11:45:54 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h + */ #ifndef SCREEN_DUATION_VIEW_H #define SCREEN_DUATION_VIEW_H // 屏幕时长 @@ -5,11 +12,12 @@ #include "View.h" #include "components/ui_scroll_view.h" #include "components/ui_image_view.h" -#include "components/ui_label.h" #include "components/ui_label_ext.h" #include "components/ui_radio_button.h" namespace OHOS { +#define DURATIONS 6 + static constexpr const char *SCREENDURATIONSCROLLVIEW = "ScreenDurationView"; class ScreenDurationView { public: @@ -19,7 +27,6 @@ namespace OHOS int16_t y; int16_t w; int16_t h; - const char *ImageSrc; }; struct LabelConfig { @@ -38,7 +45,7 @@ namespace OHOS int16_t y; int16_t w; int16_t h; - const char *viewId; + // const char *viewId; const char *select; const char *unselect; }; @@ -49,20 +56,21 @@ namespace OHOS void ClearAll(void); UIRadioButton *GetRadioButton(int16_t i); void SetRadioButtonSelectStatus(int16_t i); + private: UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片 - UILabel *SetUpLabel(LabelConfig &labelconfig); // 设置标签 + UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签 UIRadioButton *SetUpRadioButton(RadioButtonConfig &radiobuttonconfig); // 设置单选框 bool SetUpScrollView(void); bool SetUpScreenDurationViewLabel(void); bool SetUpScreenDurationViewImageView(void); bool SetUpScreenDurationViewRadioButton(void); UIScrollView *ScreenDurationScrollView = nullptr; - UILabel *ScreenDurationTitleLabel = nullptr; // 标题 - UILabel *ScreenDurationLabel[3]{nullptr}; // 亮屏时长标签 - UIImageView *BackGroundImage[3]{nullptr}; // 放置组件的背景 - UIRadioButton *ScreenDurationRadioButton[3]{nullptr}; // 三个单选框 - UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[3]{nullptr}; + UILabelExt *ScreenDurationTitleLabel = nullptr; // 标题 + UILabelExt *ScreenDurationLabel[DURATIONS]{nullptr}; // 亮屏时长标签 + UIImageView *BackGroundImage[DURATIONS]{nullptr}; // 放置组件的背景 + UIRadioButton *ScreenDurationRadioButton[DURATIONS]{nullptr}; // 单选框 + UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[DURATIONS]{nullptr}; bool initViewStatus{false}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp index 99cd15ef2..3f357fc9c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-04-12 20:11:04 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-17 10:33:29 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp + */ #include "displaybrightness/include/DisplayBrightnessModel.h" #include "displaybrightness/include/DisplayBrightnessPresenter.h" #include "wearable_log.h" @@ -10,8 +17,6 @@ namespace OHOS { ConfigModel *p_ConfigModel = ConfigModel::GetInstance(); RaiseToBrightnessCheckBoxButtonState = p_ConfigModel->GetRaiseToWake(); - ScreenBrightnessValue = p_ConfigModel->GetScreenBrightnessValue(); - ScreenDurationIndex =p_ConfigModel->GetScreenDuration(); } DisplayBrightnessModel::~DisplayBrightnessModel() {} @@ -44,21 +49,6 @@ namespace OHOS return true; } - /// @brief 亮度值 - /// @param value - void DisplayBrightnessModel::KeepScreenBrightnessValues(unsigned char value) - { - ScreenBrightnessValue = value; - } - - - /// @brief 保存哪个亮屏时长按钮被选中 - /// @param value 0 5秒后熄屏 1 10秒后熄屏 2 15秒后熄屏 - void DisplayBrightnessModel::KeepScreenDurationRadioButtonSlectStatus(unsigned int value) - { - ScreenDurationIndex = value*5000+5000; - } - /// @brief 亮屏时长按钮选中状态初始化 /// @param /// @return @@ -70,7 +60,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail"); return false; } - displayBrightnessPresent->SetScreenDurationRadioButtonSlectStatus( (ScreenDurationIndex - 5000)/5000); + displayBrightnessPresent->SetScreenDurationRadioButtonSlectStatus(GetScreenDurationTime()); return true; } @@ -78,12 +68,12 @@ namespace OHOS /// @param time void DisplayBrightnessModel::SetScreenDurationTime(unsigned int time) { - ScreenDurationTime = time; + ConfigModel::GetInstance()->SetScreenDuration(time); } // 获取亮屏时长,单位ms unsigned int DisplayBrightnessModel::GetScreenDurationTime(void) { - return ScreenDurationTime; + return ConfigModel::GetInstance()->GetScreenDuration(); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp index 050cbee6c..f2657c9d3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp @@ -60,19 +60,31 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetScreenDurationRadioButtonSlectStatus ScreenDurationView GetInstance fail"); return; } - if (value == ScreenDurationRadioButton1) + switch (value) { + case SCREENDURATION_FIVE: p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton1); - } - else if (value == ScreenDurationRadioButton2) - { + break; + case SCREENDURATION_TEN: p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton2); - } - else - { + break; + case SCREENDURATION_FIFTEENTH: p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton3); + break; + case SCREENDURATION_THIRTY: + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton4); + break; + case SCREENDURATION_SIXTY: + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton5); + break; + case SCREENDURATION_THREE_HUNDRED: + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton6); + break; + default: + // Optionally handle any other unexpected value + break; } - DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButton1); // 将Model层保存的状态清除 + return; } void DisplayBrightnessPresenter::OnStart() @@ -104,7 +116,7 @@ namespace OHOS // 根据控件id查找是哪个控件触发了点击回调 if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0) { - //NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESSLEVEL); + // NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESSLEVEL); NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL); return true; } @@ -128,26 +140,21 @@ namespace OHOS DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance(); if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - for (int i = 0; i < MAX_DISPLAYBRIGHTNESSVIEWID; i++) + if (strcmp(view.GetViewId(), SCREENDURATIONSCROLLVIEW) == 0) { - if (p_DisplayBrightnessView->GetDisplayBrightnessScrollView(i) != nullptr && - p_DisplayBrightnessView->GetDisplayBrightnessScrollView(i)->IsVisible() == true) - { - if (i == DISPLAYBRIGHTNESSVIEW) - { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - } - else - { - p_DisplayBrightnessView->ChangeView(i, DISPLAYBRIGHTNESSVIEW); - } - break; - } + p_DisplayBrightnessView->ChangeView(SCREENDURATIONVIEW, DISPLAYBRIGHTNESSVIEW); + } + else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0) + { + //NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); + NativeAbility::GetInstance().Back(); + return true; } } return true; } + /*处理抬腕亮屏开关*/ bool DisplayBrightnessPresenter::OnChange(UICheckBox::UICheckBoxState state) { switch (state) @@ -173,21 +180,12 @@ namespace OHOS // 如果是power键,且是亮屏状态,按键释放就返回上一级 if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0) { - // uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); - // if (preSlice == VIEW_BRIGHTNESSLEVEL) - // { - // NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); - // } - // else - // { - - // NativeAbility::GetInstance().ChangeSlice(preSlice); - // } NativeAbility::GetInstance().Back(); } return true; } + /*处理亮屏时长*/ bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state) { DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance(); @@ -196,7 +194,6 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!"); return false; } - const power_display_svr_api_t *display_api = power_display_svr_get_api(); switch (state) { case UICheckBox::SELECTED: @@ -205,22 +202,43 @@ namespace OHOS if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton1) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 5 seconds"); - display_api->set_screen_auto_off_timeout(SCREENDURATIONFIVE); - DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONFIVE); + uapi_setScreenDuration(SCREENDURATION_FIVE); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_FIVE); return true; } else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton2) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 10 seconds"); - display_api->set_screen_auto_off_timeout(SCREENDURATIONTEN); - DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONTEN); + uapi_setScreenDuration(SCREENDURATION_TEN); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_TEN); return true; } else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton3) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 15 seconds"); - display_api->set_screen_auto_off_timeout(SCREENDURATIONFIFTEENTH); - DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONFIFTEENTH); + uapi_setScreenDuration(SCREENDURATION_FIFTEENTH); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_FIFTEENTH); + return true; + } + else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton4) == (UIView *)m_view) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 30 seconds"); + uapi_setScreenDuration(SCREENDURATION_THIRTY); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_THIRTY); + return true; + } + else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton5) == (UIView *)m_view) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 60 seconds"); + uapi_setScreenDuration(SCREENDURATION_SIXTY); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_SIXTY); + return true; + } + else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton6) == (UIView *)m_view) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 300 seconds"); + uapi_setScreenDuration(SCREENDURATION_THREE_HUNDRED); + DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_THREE_HUNDRED); return true; } } @@ -233,5 +251,4 @@ namespace OHOS } return false; } - } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp index d0f053ba6..eada01aac 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp @@ -75,9 +75,6 @@ namespace OHOS delete RaiseToBrightnessCheckBoxButton; RaiseToBrightnessCheckBoxButton = nullptr; - delete p_ScreenDurationView; - p_ScreenDurationView = nullptr; - delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]; DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr; } @@ -93,6 +90,7 @@ namespace OHOS return false; } DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetViewId(DISPLAY_BRIGHTNESS_VIEW); DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(35); DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(50); DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1); @@ -413,7 +411,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetScreenDurationView p_ScreenDurationView is nullptr!"); return nullptr; } - return p_ScreenDurationView; + return p_ScreenDurationView.get(); } // 1.切换到“屏幕与亮度”视图 @@ -433,7 +431,7 @@ namespace OHOS if (DisplayBrightnessScrollView[thisView] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView"); - p_ScreenDurationView = new ScreenDurationView(); + p_ScreenDurationView = std::make_shared(); if (p_ScreenDurationView == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView); diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp index 823358059..c043c8a1f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp @@ -30,23 +30,11 @@ namespace OHOS if (initViewStatus == true) { ScreenDurationScrollView->RemoveAll(); - - unsigned int i; - for (i = 0; i < 3; i++) - { - if (ScreenDurationRadioButton[i]->GetState() == UICheckBox::SELECTED) - { - break; - } - } - DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(i); - /** 0 5000ms, 1 10000ms, 2 15000ms */ - ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::ConfigItem::CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,i*5000+5000); - + delete ScreenDurationTitleLabel; ScreenDurationTitleLabel = nullptr; - for (int i = 0; i < 3; i++) + for (int i = 0; i < DURATIONS; i++) { delete ScreenDurationLabel[i]; ScreenDurationLabel[i] = nullptr; @@ -65,16 +53,6 @@ namespace OHOS } } - UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i) - { - if (ScreenDurationRadioButton[i] == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i); - return nullptr; - } - return ScreenDurationRadioButton[i]; - } - // 设置图片 UIImageView *ScreenDurationView::SetUpImageView(ImageConfig &imageconfig) { @@ -84,14 +62,16 @@ namespace OHOS return nullptr; } Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h); - Image->SetSrc(imageconfig.ImageSrc); + Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); + Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + Image->SetStyle(STYLE_BORDER_RADIUS, 100); return Image; } // 设置标签 - UILabel *ScreenDurationView::SetUpLabel(LabelConfig &labelconfig) + UILabelExt *ScreenDurationView::SetUpLabel(LabelConfig &labelconfig) { - UILabel *label = new UILabel(); + UILabelExt *label = new UILabelExt(); if (label == nullptr) { return nullptr; @@ -130,6 +110,7 @@ namespace OHOS return false; } ScreenDurationScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + ScreenDurationScrollView->SetViewId(SCREENDURATIONSCROLLVIEW); ScreenDurationScrollView->SetScrollBlankSize(35); ScreenDurationScrollView->SetReboundSize(50); ScreenDurationScrollView->SetDirection(1); @@ -153,10 +134,9 @@ namespace OHOS .y = 120, .w = 380, .h = 100, - .ImageSrc = "/user/res/SETTING_BACKGROUND.bin", }; - for (int i = 0; i < 3; i++) + for (int i = 0; i < DURATIONS; i++) { imageconfig.y = 120 + (i * 120); BackGroundImage[i] = SetUpImageView(imageconfig); @@ -174,14 +154,14 @@ namespace OHOS { // 创建ScreenDurationTitleLabel LabelConfig labelconfig = { - .left = 173, + .left = 93, .top = 52, - .width = 120, - .height = 35, + .width = 280, + .height = 40, .fontSize = 30, .lineHeigh = 35, .text = "亮屏时长", - .lineBreakMode = UILabel::LINE_BREAK_ADAPT, + .lineBreakMode = UILabel::LINE_BREAK_MARQUEE, }; ScreenDurationTitleLabel = SetUpLabel(labelconfig); @@ -199,9 +179,9 @@ namespace OHOS .lineBreakMode = UILabel::LINE_BREAK_ADAPT, }; - const char *durations[] = {"5秒", "10秒", "15秒"}; + const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"}; - for (int i = 0; i < 3; i++) + for (int i = 0; i < DURATIONS; i++) { labelconfig.top = 153 + (i * 120); labelconfig.text = durations[i]; @@ -227,12 +207,10 @@ namespace OHOS .unselect = "/user/res/CHECKBOX_OFF.bin", }; - int y_positions[] = {130, 250, 370}; - const char *viewID[] = {SCREENDURATION_FIVESECONDS_VIEWID, SCREENDURATION_TENSECONDS_VIEWID, SCREENDURATION_FIFTEENSECONDS_VIEWID}; - for (int i = 0; i < 3; i++) + int y_positions = 130; + for (int i = 0; i < DURATIONS; i++) { - radiobuttonconfig.y = y_positions[i]; - radiobuttonconfig.viewId = viewID[i]; + radiobuttonconfig.y = y_positions + 120 * i; ScreenDurationRadioButton[i] = SetUpRadioButton(radiobuttonconfig); if (ScreenDurationRadioButton[i] == nullptr) { @@ -246,9 +224,27 @@ namespace OHOS return true; } + // 设置哪个单选按钮被选中 void ScreenDurationView::SetRadioButtonSelectStatus(int16_t i) { - GetRadioButton(i)->SetState(UICheckBox::SELECTED); + if (GetRadioButton(i) != nullptr) + { + GetRadioButton(i)->SetState(UICheckBox::SELECTED); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::GetRadioButton(%d) is nullptr!", i); + } + } + + UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i) + { + if (ScreenDurationRadioButton[i] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i); + return nullptr; + } + return ScreenDurationRadioButton[i]; } // 亮屏时长视图初始化 @@ -283,7 +279,7 @@ namespace OHOS /* ----------------------------------- Add ---------------------------------- */ ScreenDurationScrollView->Add(ScreenDurationTitleLabel); - for (int i = 0; i < 3; i++) + for (int i = 0; i < DURATIONS; i++) { ScreenDurationScrollView->Add(BackGroundImage[i]); ScreenDurationScrollView->Add(ScreenDurationLabel[i]); diff --git a/code/sdk/application/wearable/nativeabilityfwk/include/Ability.h b/code/sdk/application/wearable/nativeabilityfwk/include/Ability.h index 77dc38866..7f7e851fc 100755 --- a/code/sdk/application/wearable/nativeabilityfwk/include/Ability.h +++ b/code/sdk/application/wearable/nativeabilityfwk/include/Ability.h @@ -70,21 +70,23 @@ public: } // 当从一个Slice进入另一个Slice时调用 - void EnterSlice(uint16_t sliceId) { + void EnterSlice(uint16_t sliceId,const uint16_t transitionId = TRANSITION_INVALID, + const uint16_t priority = gSliceDefaultPriority) { // 获取当前SliceID uint16_t curSliceId = GetCurSliceId(); if (curSliceId != defaultSliceId_) { // 假定defaultSliceId_是“主页”或启动Slice的ID backStack_.push(curSliceId); } - ChangeSlice(sliceId); // 切换到新的Slice + ChangeSlice(sliceId,transitionId,priority); // 切换到新的Slice } // 处理后退操作 - bool Back() { + bool Back(const uint16_t transitionId = TRANSITION_INVALID, + const uint16_t priority = gSliceDefaultPriority) { if (!backStack_.empty()) { uint16_t preSlice = backStack_.top(); backStack_.pop(); - ChangeSlice(preSlice); + ChangeSlice(preSlice,transitionId,priority); return true; } return false; // 没有更多的Slice可以后退