1 /*
2 * Copyright (c) 2020 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "setting_display_ability_slice.h"
17 #include <iostream>
18 #include <power_screen_saver.h>
19 #include <securec.h>
20 #include "gfx_utils/style.h"
21
22 namespace OHOS {
REGISTER_AS(SettingDisplayAbilitySlice)23 REGISTER_AS(SettingDisplayAbilitySlice)
24
25 SettingDisplayAbilitySlice::~SettingDisplayAbilitySlice()
26 {
27 if (toggleButtonView_) {
28 DeleteChildren(toggleButtonView_);
29 toggleButtonView_ = nullptr;
30 }
31
32 if (headView_) {
33 DeleteChildren(headView_);
34 headView_ = nullptr;
35 }
36
37 if (changeListener_) {
38 delete changeListener_;
39 changeListener_ = nullptr;
40 }
41
42 if (buttonBackListener_) {
43 delete buttonBackListener_;
44 buttonBackListener_ = nullptr;
45 }
46 }
47
SetButtonListener(void)48 void SettingDisplayAbilitySlice::SetButtonListener(void)
49 {
50 auto onClick = [this](UIView& view, const Event& event) -> bool {
51 Want want1 = { nullptr };
52 AbilitySlice* nextSlice = AbilityLoader::GetInstance().GetAbilitySliceByName("MainAbilitySlice");
53 if (nextSlice == nullptr) {
54 printf("[warning]undefined MainAbilitySlice\n");
55 } else {
56 Present(*nextSlice, want1);
57 }
58 return true;
59 };
60 buttonBackListener_ = new EventListener(onClick, nullptr);
61 }
62
SetHead(void)63 void SettingDisplayAbilitySlice::SetHead(void)
64 {
65 headView_ = new UIViewGroup();
66 rootView_->Add(headView_);
67 headView_->SetPosition(DE_HEAD_X, DE_HEAD_Y, DE_HEAD_WIDTH, DE_HEAD_HEIGHT);
68 headView_->SetStyle(STYLE_BACKGROUND_OPA, 0);
69 headView_->SetTouchable(true);
70 headView_->SetOnClickListener(buttonBackListener_);
71
72 UIImageView* imageView = new UIImageView();
73 headView_->Add(imageView);
74 imageView->SetPosition(DE_HEAD_IMAGE_X, DE_HEAD_IMAGE_Y, DE_HEAD_IMAGE_WIDTH, DE_HEAD_IMAGE_HEIGHT);
75 imageView->SetSrc(DE_IMAGE_BACK);
76
77 UILabel* lablelFont = new UILabel();
78 lablelFont->SetPosition(DE_HEAD_TEXT_X, DE_HEAD_TEXT_Y, DE_HEAD_TEXT_WIDTH, DE_HEAD_TEXT_HEIGHT);
79 lablelFont->SetText("显示");
80 lablelFont->SetFont(DE_FONT_OTF, DE_HEAD_TEXT_SIZE);
81 lablelFont->SetStyle(STYLE_TEXT_COLOR, DE_HEAD_TEXT_COLOR);
82 headView_->Add(lablelFont);
83 }
84
SetToggleButton(void)85 void SettingDisplayAbilitySlice::SetToggleButton(void)
86 {
87 toggleButtonView_ = new UIViewGroup();
88 toggleButtonView_->SetPosition(TOGGLE_X, TOGGLE_Y, DE_BUTTON_WIDTH, DE_BUTTON_HEIGHT);
89 toggleButtonView_->SetStyle(STYLE_BACKGROUND_COLOR, DE_BUTTON_BACKGROUND_COLOR);
90 toggleButtonView_->SetStyle(STYLE_BACKGROUND_OPA, DE_OPACITY_ALL);
91 toggleButtonView_->SetStyle(STYLE_BORDER_RADIUS, DE_BUTTON_RADIUS);
92 rootView_->Add(toggleButtonView_);
93
94 auto lablelFont = new UILabel();
95 lablelFont->SetPosition(DE_TITLE_TEXT_X, DE_TITLE_TEXT_Y, DE_TITLE_TEXT_WIDTH, DE_TITLE_TEXT_HEIGHT);
96 lablelFont->SetText("屏保");
97 lablelFont->SetFont(DE_FONT_OTF, DE_TITLE_TEXT_SIZE);
98 lablelFont->SetStyle(STYLE_TEXT_COLOR, DE_TITLE_TEXT_COLOR);
99 toggleButtonView_->Add(lablelFont);
100
101 SetScreenSaverState(TRUE);
102 UIToggleButton* togglebutton = new UIToggleButton();
103 togglebutton->SetState(true);
104 changeListener_ = new DisBtnOnStateChangeListener(togglebutton);
105 togglebutton->SetOnClickListener(changeListener_);
106 togglebutton->SetPosition(DE_TOGGLE_BUTTON_X, DE_TOGGLE_BUTTON_Y);
107 toggleButtonView_->Add(togglebutton);
108 }
109
OnStart(const Want & want)110 void SettingDisplayAbilitySlice::OnStart(const Want& want)
111 {
112 AbilitySlice::OnStart(want);
113
114 rootView_ = RootView::GetWindowRootView();
115 rootView_->SetPosition(DE_ROOT_X, DE_ROOT_Y, DE_ROOT_WIDTH, DE_ROOT_HEIGHT);
116 rootView_->SetStyle(STYLE_BACKGROUND_COLOR, DE_ROOT_BACKGROUND_COLOR);
117 SetButtonListener();
118 SetHead();
119 SetToggleButton();
120 SetUIContent(rootView_);
121 }
122
OnInactive()123 void SettingDisplayAbilitySlice::OnInactive()
124 {
125 AbilitySlice::OnInactive();
126 }
127
OnActive(const Want & want)128 void SettingDisplayAbilitySlice::OnActive(const Want& want)
129 {
130 AbilitySlice::OnActive(want);
131 }
132
OnBackground()133 void SettingDisplayAbilitySlice::OnBackground()
134 {
135 AbilitySlice::OnBackground();
136 }
137
OnStop()138 void SettingDisplayAbilitySlice::OnStop()
139 {
140 AbilitySlice::OnStop();
141 }
142 } // namespace OHOS
143