unsigned GetScreenBrightnessValue(void);
+ void SetScreenDuration(unsigned int value);
unsigned int GetScreenDuration(void);
bool GetClassicBlueToothState(void);
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);
* @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
+ * @LastEditTime: 2024-04-17 10:33:16\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h\r
*/\r
#ifndef DISPLAY_BRIGHTNESS_MODEL_H_\r
static DisplayBrightnessModel *GetInstance(void);\r
void SetRaiseToBrightnessCheckBoxButtonStatus(bool value);\r
bool RaiseToBrightnessCheckBoxButtonStatusInit(void);\r
- void KeepScreenBrightnessValues(unsigned char value);\r
- void KeepScreenDurationRadioButtonSlectStatus(unsigned int value);\r
bool ScreenDurationRadioButtonSlectStatusInit(void);\r
void SetScreenDurationTime(unsigned int time);\r
unsigned int GetScreenDurationTime(void);\r
\r
private:\r
bool RaiseToBrightnessCheckBoxButtonState{false}; // 抬腕按钮状态 ,默认补选中\r
- unsigned char ScreenBrightnessValue{255}; // 亮度值 ,默认最大亮度\r
- unsigned int ScreenDurationIndex{1}; // 亮屏时长 ,1对应10秒后熄屏\r
unsigned int ScreenDurationTime{10000};\r
};\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
+ * @LastEditTime: 2024-04-17 10:21:03\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h\r
*/\r
#ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
/// @brief 亮屏时长\r
typedef enum : uint32_t\r
{\r
- SCREENDURATIONFIVE = 1000 * 5, // 5秒后熄屏\r
- SCREENDURATIONTEN = 1000 * 10, // 10秒后熄屏\r
- SCREENDURATIONFIFTEENTH = 1000 * 15, // 15秒后熄屏\r
+ SCREENDURATION_FIVE = 1000 * 5, // 5秒后熄屏\r
+ SCREENDURATION_TEN = 1000 * 10, // 10秒后熄屏\r
+ SCREENDURATION_FIFTEENTH = 1000 * 15, // 15秒后熄屏\r
+ SCREENDURATION_THIRTY = 1000 * 30, // 30秒后熄屏\r
+ SCREENDURATION_SIXTY = 1000 * 60, // 60秒后熄屏\r
+ SCREENDURATION_THREE_HUNDRED = 1000 * 300, // 300秒后熄屏\r
} ScreenDurationTime;\r
\r
typedef enum\r
ScreenDurationRadioButton1 = 0,\r
ScreenDurationRadioButton2,\r
ScreenDurationRadioButton3,\r
+ ScreenDurationRadioButton4,\r
+ ScreenDurationRadioButton5,\r
+ ScreenDurationRadioButton6,\r
+ Max_ScreenDurationRadioButton,\r
} ScreenDurationRadioButton;\r
\r
static const char *BRINGHTNESSCONTROLBUTTON_VIEW = "BRINGHTNESSCONTROLBUTTON"; // 亮度调节按钮视图id\r
static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON"; // 亮屏时长按钮视图id\r
static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id\r
\r
- static const char *SCREENDURATION_FIVESECONDS_VIEWID = "SCREENDURATION_FIVESECONDS"; // 5秒时长\r
- static const char *SCREENDURATION_TENSECONDS_VIEWID = "SCREENDURATION_TENSECONDS"; // 10秒时长\r
- static const char *SCREENDURATION_FIFTEENSECONDS_VIEWID = "SCREENDURATION_FIFTEENSECONDS"; // 15秒时长\r
-\r
-\r
class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener\r
{\r
public:\r
#include "components/ui_radio_button.h"\r
#include "DisplayBrightnessPresenter.h"\r
#include "displaybrightness/include/ScreenDurationView.h"\r
+#include "memory"\r
namespace OHOS\r
{\r
-\r
+ static constexpr const char *DISPLAY_BRIGHTNESS_VIEW = "DisplayBrightnessView";\r
class DisplayBrightnessPresenter;\r
class DisplayBrightnessView : public View<DisplayBrightnessPresenter>\r
{\r
void OnStop() override;\r
\r
private:\r
- ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
+ //ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
+ std::shared_ptr<ScreenDurationView> p_ScreenDurationView;\r
private:\r
bool SetUpScrollView(void);\r
bool SetTheTitle(void);\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-17 11:45:54\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h\r
+ */\r
#ifndef SCREEN_DUATION_VIEW_H\r
#define SCREEN_DUATION_VIEW_H\r
// 屏幕时长\r
#include "View.h"\r
#include "components/ui_scroll_view.h"\r
#include "components/ui_image_view.h"\r
-#include "components/ui_label.h"\r
#include "components/ui_label_ext.h"\r
#include "components/ui_radio_button.h"\r
namespace OHOS\r
{\r
+#define DURATIONS 6\r
+ static constexpr const char *SCREENDURATIONSCROLLVIEW = "ScreenDurationView";\r
class ScreenDurationView\r
{\r
public:\r
int16_t y;\r
int16_t w;\r
int16_t h;\r
- const char *ImageSrc;\r
};\r
struct LabelConfig\r
{\r
int16_t y;\r
int16_t w;\r
int16_t h;\r
- const char *viewId;\r
+ // const char *viewId;\r
const char *select;\r
const char *unselect;\r
};\r
void ClearAll(void);\r
UIRadioButton *GetRadioButton(int16_t i);\r
void SetRadioButtonSelectStatus(int16_t i);\r
+\r
private:\r
UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片\r
- UILabel *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+ UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
UIRadioButton *SetUpRadioButton(RadioButtonConfig &radiobuttonconfig); // 设置单选框\r
bool SetUpScrollView(void);\r
bool SetUpScreenDurationViewLabel(void);\r
bool SetUpScreenDurationViewImageView(void);\r
bool SetUpScreenDurationViewRadioButton(void);\r
UIScrollView *ScreenDurationScrollView = nullptr;\r
- UILabel *ScreenDurationTitleLabel = nullptr; // 标题\r
- UILabel *ScreenDurationLabel[3]{nullptr}; // 亮屏时长标签\r
- UIImageView *BackGroundImage[3]{nullptr}; // 放置组件的背景\r
- UIRadioButton *ScreenDurationRadioButton[3]{nullptr}; // 三个单选框\r
- UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[3]{nullptr};\r
+ UILabelExt *ScreenDurationTitleLabel = nullptr; // 标题\r
+ UILabelExt *ScreenDurationLabel[DURATIONS]{nullptr}; // 亮屏时长标签\r
+ UIImageView *BackGroundImage[DURATIONS]{nullptr}; // 放置组件的背景\r
+ UIRadioButton *ScreenDurationRadioButton[DURATIONS]{nullptr}; // 单选框\r
+ UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[DURATIONS]{nullptr};\r
bool initViewStatus{false};\r
};\r
} // namespace OHOS\r
+/*
+ * @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"
{
ConfigModel *p_ConfigModel = ConfigModel::GetInstance();
RaiseToBrightnessCheckBoxButtonState = p_ConfigModel->GetRaiseToWake();
- ScreenBrightnessValue = p_ConfigModel->GetScreenBrightnessValue();
- ScreenDurationIndex =p_ConfigModel->GetScreenDuration();
}
DisplayBrightnessModel::~DisplayBrightnessModel() {}
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
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
return false;
}
- displayBrightnessPresent->SetScreenDurationRadioButtonSlectStatus( (ScreenDurationIndex - 5000)/5000);
+ displayBrightnessPresent->SetScreenDurationRadioButtonSlectStatus(GetScreenDurationTime());
return true;
}
/// @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();
}
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetScreenDurationRadioButtonSlectStatus ScreenDurationView GetInstance fail");\r
return;\r
}\r
- if (value == ScreenDurationRadioButton1)\r
+ switch (value)\r
{\r
+ case SCREENDURATION_FIVE:\r
p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton1);\r
- }\r
- else if (value == ScreenDurationRadioButton2)\r
- {\r
+ break;\r
+ case SCREENDURATION_TEN:\r
p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton2);\r
- }\r
- else\r
- {\r
+ break;\r
+ case SCREENDURATION_FIFTEENTH:\r
p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton3);\r
+ break;\r
+ case SCREENDURATION_THIRTY:\r
+ p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton4);\r
+ break;\r
+ case SCREENDURATION_SIXTY:\r
+ p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton5);\r
+ break;\r
+ case SCREENDURATION_THREE_HUNDRED:\r
+ p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton6);\r
+ break;\r
+ default:\r
+ // Optionally handle any other unexpected value\r
+ break;\r
}\r
- DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButton1); // 将Model层保存的状态清除\r
+ return;\r
}\r
\r
void DisplayBrightnessPresenter::OnStart()\r
// 根据控件id查找是哪个控件触发了点击回调\r
if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
{\r
- //NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESSLEVEL);\r
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESSLEVEL);\r
NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL);\r
return true;\r
}\r
DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
{\r
- for (int i = 0; i < MAX_DISPLAYBRIGHTNESSVIEWID; i++)\r
+ if (strcmp(view.GetViewId(), SCREENDURATIONSCROLLVIEW) == 0)\r
{\r
- if (p_DisplayBrightnessView->GetDisplayBrightnessScrollView(i) != nullptr &&\r
- p_DisplayBrightnessView->GetDisplayBrightnessScrollView(i)->IsVisible() == true)\r
- {\r
- if (i == DISPLAYBRIGHTNESSVIEW)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
- }\r
- else\r
- {\r
- p_DisplayBrightnessView->ChangeView(i, DISPLAYBRIGHTNESSVIEW);\r
- }\r
- break;\r
- }\r
+ p_DisplayBrightnessView->ChangeView(SCREENDURATIONVIEW, DISPLAYBRIGHTNESSVIEW);\r
+ }\r
+ else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0)\r
+ {\r
+ //NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ NativeAbility::GetInstance().Back();\r
+ return true;\r
}\r
}\r
return true;\r
}\r
\r
+ /*处理抬腕亮屏开关*/\r
bool DisplayBrightnessPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
{\r
switch (state)\r
// 如果是power键,且是亮屏状态,按键释放就返回上一级\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
- // if (preSlice == VIEW_BRIGHTNESSLEVEL)\r
- // {\r
- // NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
- // }\r
- // else\r
- // {\r
- \r
- // NativeAbility::GetInstance().ChangeSlice(preSlice);\r
- // }\r
NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
\r
+ /*处理亮屏时长*/\r
bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
{\r
DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!");\r
return false;\r
}\r
- const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
switch (state)\r
{\r
case UICheckBox::SELECTED:\r
if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton1) == (UIView *)m_view)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 5 seconds");\r
- display_api->set_screen_auto_off_timeout(SCREENDURATIONFIVE);\r
- DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONFIVE);\r
+ uapi_setScreenDuration(SCREENDURATION_FIVE);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_FIVE);\r
return true;\r
}\r
else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton2) == (UIView *)m_view)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 10 seconds");\r
- display_api->set_screen_auto_off_timeout(SCREENDURATIONTEN);\r
- DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONTEN);\r
+ uapi_setScreenDuration(SCREENDURATION_TEN);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_TEN);\r
return true;\r
}\r
else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton3) == (UIView *)m_view)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 15 seconds");\r
- display_api->set_screen_auto_off_timeout(SCREENDURATIONFIFTEENTH);\r
- DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATIONFIFTEENTH);\r
+ uapi_setScreenDuration(SCREENDURATION_FIFTEENTH);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_FIFTEENTH);\r
+ return true;\r
+ }\r
+ else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton4) == (UIView *)m_view)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 30 seconds");\r
+ uapi_setScreenDuration(SCREENDURATION_THIRTY);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_THIRTY);\r
+ return true;\r
+ }\r
+ else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton5) == (UIView *)m_view)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 60 seconds");\r
+ uapi_setScreenDuration(SCREENDURATION_SIXTY);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_SIXTY);\r
+ return true;\r
+ }\r
+ else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton6) == (UIView *)m_view)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 300 seconds");\r
+ uapi_setScreenDuration(SCREENDURATION_THREE_HUNDRED);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(SCREENDURATION_THREE_HUNDRED);\r
return true;\r
}\r
}\r
}\r
return false;\r
}\r
-\r
}
\ No newline at end of file
delete RaiseToBrightnessCheckBoxButton;\r
RaiseToBrightnessCheckBoxButton = nullptr;\r
\r
- delete p_ScreenDurationView;\r
- p_ScreenDurationView = nullptr;\r
-\r
delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr;\r
}\r
return false;\r
}\r
DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetViewId(DISPLAY_BRIGHTNESS_VIEW);\r
DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(35);\r
DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(50);\r
DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetScreenDurationView p_ScreenDurationView is nullptr!");\r
return nullptr;\r
}\r
- return p_ScreenDurationView;\r
+ return p_ScreenDurationView.get();\r
}\r
\r
// 1.切换到“屏幕与亮度”视图\r
if (DisplayBrightnessScrollView[thisView] == nullptr)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView");\r
- p_ScreenDurationView = new ScreenDurationView();\r
+ p_ScreenDurationView = std::make_shared<ScreenDurationView>();\r
if (p_ScreenDurationView == nullptr)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView);\r
if (initViewStatus == true)\r
{\r
ScreenDurationScrollView->RemoveAll();\r
-\r
- unsigned int i;\r
- for (i = 0; i < 3; i++)\r
- {\r
- if (ScreenDurationRadioButton[i]->GetState() == UICheckBox::SELECTED)\r
- {\r
- break;\r
- }\r
- }\r
- DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(i);\r
- /** 0 5000ms, 1 10000ms, 2 15000ms */\r
- ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::ConfigItem::CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,i*5000+5000);\r
-\r
+ \r
delete ScreenDurationTitleLabel;\r
ScreenDurationTitleLabel = nullptr;\r
\r
- for (int i = 0; i < 3; i++)\r
+ for (int i = 0; i < DURATIONS; i++)\r
{\r
delete ScreenDurationLabel[i];\r
ScreenDurationLabel[i] = nullptr;\r
}\r
}\r
\r
- UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
- {\r
- if (ScreenDurationRadioButton[i] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
- return nullptr;\r
- }\r
- return ScreenDurationRadioButton[i];\r
- }\r
-\r
// 设置图片\r
UIImageView *ScreenDurationView::SetUpImageView(ImageConfig &imageconfig)\r
{\r
return nullptr;\r
}\r
Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);\r
- Image->SetSrc(imageconfig.ImageSrc);\r
+ Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ Image->SetStyle(STYLE_BORDER_RADIUS, 100);\r
return Image;\r
}\r
\r
// 设置标签\r
- UILabel *ScreenDurationView::SetUpLabel(LabelConfig &labelconfig)\r
+ UILabelExt *ScreenDurationView::SetUpLabel(LabelConfig &labelconfig)\r
{\r
- UILabel *label = new UILabel();\r
+ UILabelExt *label = new UILabelExt();\r
if (label == nullptr)\r
{\r
return nullptr;\r
return false;\r
}\r
ScreenDurationScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ ScreenDurationScrollView->SetViewId(SCREENDURATIONSCROLLVIEW);\r
ScreenDurationScrollView->SetScrollBlankSize(35);\r
ScreenDurationScrollView->SetReboundSize(50);\r
ScreenDurationScrollView->SetDirection(1);\r
.y = 120,\r
.w = 380,\r
.h = 100,\r
- .ImageSrc = "/user/res/SETTING_BACKGROUND.bin",\r
};\r
\r
- for (int i = 0; i < 3; i++)\r
+ for (int i = 0; i < DURATIONS; i++)\r
{\r
imageconfig.y = 120 + (i * 120);\r
BackGroundImage[i] = SetUpImageView(imageconfig);\r
{\r
// 创建ScreenDurationTitleLabel\r
LabelConfig labelconfig = {\r
- .left = 173,\r
+ .left = 93,\r
.top = 52,\r
- .width = 120,\r
- .height = 35,\r
+ .width = 280,\r
+ .height = 40,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
.text = "亮屏时长",\r
- .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+ .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
};\r
\r
ScreenDurationTitleLabel = SetUpLabel(labelconfig);\r
.lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
};\r
\r
- const char *durations[] = {"5秒", "10秒", "15秒"};\r
+ const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"};\r
\r
- for (int i = 0; i < 3; i++)\r
+ for (int i = 0; i < DURATIONS; i++)\r
{\r
labelconfig.top = 153 + (i * 120);\r
labelconfig.text = durations[i];\r
.unselect = "/user/res/CHECKBOX_OFF.bin",\r
};\r
\r
- int y_positions[] = {130, 250, 370};\r
- const char *viewID[] = {SCREENDURATION_FIVESECONDS_VIEWID, SCREENDURATION_TENSECONDS_VIEWID, SCREENDURATION_FIFTEENSECONDS_VIEWID};\r
- for (int i = 0; i < 3; i++)\r
+ int y_positions = 130;\r
+ for (int i = 0; i < DURATIONS; i++)\r
{\r
- radiobuttonconfig.y = y_positions[i];\r
- radiobuttonconfig.viewId = viewID[i];\r
+ radiobuttonconfig.y = y_positions + 120 * i;\r
ScreenDurationRadioButton[i] = SetUpRadioButton(radiobuttonconfig);\r
if (ScreenDurationRadioButton[i] == nullptr)\r
{\r
return true;\r
}\r
\r
+ // 设置哪个单选按钮被选中\r
void ScreenDurationView::SetRadioButtonSelectStatus(int16_t i)\r
{\r
- GetRadioButton(i)->SetState(UICheckBox::SELECTED);\r
+ if (GetRadioButton(i) != nullptr)\r
+ {\r
+ GetRadioButton(i)->SetState(UICheckBox::SELECTED);\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::GetRadioButton(%d) is nullptr!", i);\r
+ }\r
+ }\r
+\r
+ UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
+ {\r
+ if (ScreenDurationRadioButton[i] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
+ return nullptr;\r
+ }\r
+ return ScreenDurationRadioButton[i];\r
}\r
\r
// 亮屏时长视图初始化\r
\r
/* ----------------------------------- Add ---------------------------------- */\r
ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
- for (int i = 0; i < 3; i++)\r
+ for (int i = 0; i < DURATIONS; i++)\r
{\r
ScreenDurationScrollView->Add(BackGroundImage[i]);\r
ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
}
// 当从一个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可以后退