• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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