Fixed Nabi Issues 49466,55718,55225,52332
[apps/osp/Internet.git] / src / IntBrightnessForm.cpp
1 //
2
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.1 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 //!Internet IntBrightness class
19 /*@file:        IntBrightness.cpp
20  *@brief:       This class defines IntBrightness used to change the brightness
21  *
22  */
23
24 #include <FApp.h>
25 #include <FAppUiApp.h>
26 #include <FUi.h>
27 #include "IntBrightnessForm.h"
28 #include "IntCommonLib.h"
29 #include "IntMultipleWindowPresentationModel.h"
30 #include "IntSceneRegister.h"
31
32 using namespace Tizen::App;
33 using namespace Tizen::Base;
34 using namespace Tizen::Base::Collection;
35 using namespace Tizen::Graphics;
36 using namespace Tizen::System;
37 using namespace Tizen::Ui;
38 using namespace Tizen::Ui::Controls;
39 using namespace Tizen::Ui::Scenes;
40
41 const int IDA_AUTOBTN_CLICKED = 101;
42 const int IDA_MANUALBTN_CLICKED = 102;
43
44 BrightnessForm::BrightnessForm(void)
45 {
46         __manualBrightness =  true;
47         __pBrightnessSlider = null;
48         __pLabel = null;
49 }
50
51 BrightnessForm::~BrightnessForm(void)
52 {
53
54 }
55
56 bool
57 BrightnessForm::Initialize()
58 {
59         Form::Construct(L"IDL_BRIGHTNESS");
60
61         return true;
62 }
63
64 result
65 BrightnessForm::OnInitializing(void)
66 {
67         result r = E_FAILURE;
68         WindowInfo* pWindowInfo = null;
69
70         SceneManager* pSceneManager = SceneManager::GetInstance();
71         if (pSceneManager != null)
72         {
73                 r = pSceneManager->AddSceneEventListener(IDSCN_BRIGHTNESS, *this);
74                 if (IsFailed(r))
75                 {
76                         AppLogException("OnInitialized failed with %s", GetErrorMessage(r));
77                         return r;
78                 }
79         }
80         AddOrientationEventListener(*this);
81         SetFormBackEventListener(this);
82
83         __pLabel = static_cast< Label* >(GetControl(L"IDC_LABEL", true));
84
85         pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
86         if (pWindowInfo != null && pWindowInfo->pWebCanvasBitmap != null  && __pLabel != null)
87         {
88                 int labelWidth = __pLabel->GetWidth();
89                 int labelHeigth = __pLabel->GetHeight();
90
91                 if(GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
92                 {
93                         labelWidth = pWindowInfo->pWebCanvasBitmap->GetWidth() * labelHeigth / pWindowInfo->pWebCanvasBitmap->GetHeight();
94                         __pLabel->SetBounds(__pLabel->GetX()  + (__pLabel->GetWidth() - labelWidth)/2, __pLabel->GetY(), labelWidth, labelHeigth);
95                 }
96                 else
97                 {
98                         labelHeigth = pWindowInfo->pWebCanvasBitmap->GetHeight() * labelWidth / pWindowInfo->pWebCanvasBitmap->GetWidth();
99                         __pLabel->SetBounds(__pLabel->GetX(), __pLabel->GetY()  + (__pLabel->GetHeight() - labelHeigth)/2, labelWidth, labelHeigth);
100                 }
101                 __pLabel->SetBackgroundBitmap(*pWindowInfo->pWebCanvasBitmap);
102         }
103         
104         AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
105         String sliderKey("SliderValue");
106         String tabKey("TabButton");
107         int sliderValue = 10;
108         int tabValue = 1;
109
110         r = pAppRegistry->Get(sliderKey, sliderValue);
111         if (r == E_KEY_NOT_FOUND)
112         {
113                 pAppRegistry->Add(sliderKey, sliderValue);
114                 pAppRegistry->Set(sliderKey,sliderValue);
115         }
116
117         r = pAppRegistry->Get(tabKey, tabValue);
118         if (r == E_KEY_NOT_FOUND)
119         {
120                 pAppRegistry->Add(tabKey, tabValue);
121                 pAppRegistry->Set(tabKey,tabValue);
122         }
123         r = pAppRegistry->Save();
124         if (IsFailed(r))
125         {
126                 // Failed to save data to registry
127                 AppLogDebug("OnInitialized failed to save data to registry with %s", GetErrorMessage(r));
128                 return E_FAILURE;
129         }
130
131
132         __pBrightnessSlider = static_cast< Slider* >(GetControl(L"IDC_FONT_SLIDER", true));
133         if (__pBrightnessSlider == null)
134         {
135                 return E_FAILURE;
136         }
137         __pBrightnessSlider->SetRange(1,10);
138         __pBrightnessSlider->SetValue(sliderValue);
139         __pBrightnessSlider->AddSliderEventListener(*this);
140         __pBrightnessSlider->AddAdjustmentEventListener(*this);
141
142         GetFooter()->AddActionEventListener(*this);
143         return r;
144 }
145
146 void
147 BrightnessForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
148 {
149         result r = E_FAILURE;
150         AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
151         String sliderKey("SliderValue");
152         String tabKey("TabButton");
153         int sliderValue = 10;
154         int tabValue = 0;
155
156         r = pAppRegistry->Get(sliderKey, sliderValue);
157         r = pAppRegistry->Get(tabKey, tabValue);
158         
159         AppLog("BrightnessForm tab value is %d",tabValue);
160         AppLog("BrightnessForm slider value is %d",sliderValue);
161
162         if(__pBrightnessSlider == null)
163         {
164                 return;
165         }
166
167         if(tabValue == 0)
168         {
169                 __pBrightnessSlider->SetEnabled(false);
170                 __pBrightnessSlider->Invalidate(true);
171         }
172         else
173         {
174                 __pBrightnessSlider->SetEnabled(true);
175                 AppLog("BatteryLvl %d",PowerManager::GetScreenBrightness());
176                 __pBrightnessSlider->SetValue(sliderValue);
177                 __pBrightnessSlider->Invalidate(true);
178         }
179
180         GetFooter()->SetItemSelected(tabValue);
181
182         __pBrightnessSlider->SetRange(1,10);
183 //      __pBrightnessSlider->SetValue(sliderValue);
184
185
186         AppLog("slider value is %d",PowerManager::GetScreenBrightness());
187
188         Invalidate(true);
189
190 }
191
192 void
193 BrightnessForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
194 {
195         AppLog("slider value is %d",PowerManager::GetScreenBrightness());
196         __pBrightnessSlider->SetValue(PowerManager::GetScreenBrightness());
197         Invalidate(true);
198 }
199
200 void
201 BrightnessForm::OnSliderBarMoved(Slider& source, int value)
202 {
203         AppLog("coming to OnSliderBarMoved");
204         if (__manualBrightness == true)
205         {
206                 PowerManager::SetScreenBrightness(value);
207                 AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
208                 String sliderKey("SliderValue");
209                 if (pAppRegistry)
210                 {
211                         pAppRegistry->Set(sliderKey,value);
212                 }
213         }
214 }
215 void
216 BrightnessForm::OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment)
217 {
218         if(source.Equals(*__pBrightnessSlider) == true)
219         {
220                 AppLog("coming to OnSliderBarMoved");
221                 if (__manualBrightness == true)
222                 {
223                         PowerManager::SetScreenBrightness(adjustment);
224                         AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
225                         String sliderKey("SliderValue");
226                         if (pAppRegistry)
227                         {
228                                 pAppRegistry->Set(sliderKey,adjustment);
229                         }
230                 }
231         }
232 }
233
234 void
235 BrightnessForm::OnFormBackRequested(Form& source)
236 {
237         
238         result r = E_FAILURE;
239         SceneManager* pSceneManager = SceneManager::GetInstance();
240         if (pSceneManager != null)
241         {
242                 // save the slider value
243                 // save the tab button
244                 AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
245                 String sliderKey("SliderValue");
246                 String tabKey("TabButton");
247                 int sliderValue = __pBrightnessSlider->GetValue();
248                 r = pAppRegistry->Set(sliderKey,sliderValue);
249                 FooterItemStatus footerStatus;
250                 GetFooter()->GetItemStatus(0,footerStatus);
251                 if (footerStatus == FOOTER_ITEM_STATUS_SELECTED || footerStatus == FOOTER_ITEM_STATUS_HIGHLIGHTED)
252                 {
253                         r = pAppRegistry->Set(tabKey,0);
254                 }
255                 else
256                 {
257                         r = pAppRegistry->Set(tabKey,1);
258                 }
259                 pAppRegistry->Save();
260                 r = pSceneManager->GoBackward(BackwardSceneTransition());
261                 if(IsFailed(r))
262                 {
263                         AppLogException("OnFormBackRequested failed with %s", GetErrorMessage(r));
264                 }
265         }
266
267 }
268
269 void
270 BrightnessForm::OnActionPerformed(const Control& source, int actionId)
271 {
272         result r = E_SUCCESS;
273         switch (actionId)
274         {
275         case IDA_AUTOBTN_CLICKED:
276                 __manualBrightness = false;
277                 __pBrightnessSlider->SetValue(6);
278 //              __pBrightnessSlider->SetShowState(false);
279                 PowerManager::SetScreenBrightness(6);
280                 __pBrightnessSlider->SetEnabled(false);
281                 __pBrightnessSlider->Invalidate(true);
282                 break;
283         case IDA_MANUALBTN_CLICKED:
284                 PowerManager::SetScreenBrightness(__pBrightnessSlider->GetValue());
285                 //__pBrightnessSlider->SetValue(__pBrightnessSlider->GetValue());
286                 __pBrightnessSlider->SetEnabled(true);
287                 __pBrightnessSlider->SetShowState(true);
288                 __pBrightnessSlider->Invalidate(true);
289
290                 __manualBrightness = true;
291                 break;
292         default:
293                 break;
294         }
295         // save the slider value
296         // save the tab button
297         AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
298         String sliderKey("SliderValue");
299         String tabKey("TabButton");
300         int sliderValue = __pBrightnessSlider->GetValue();
301         r = pAppRegistry->Set(sliderKey,sliderValue);
302         FooterItemStatus footerStatus;
303         GetFooter()->GetItemStatus(0,footerStatus);
304         if (footerStatus == FOOTER_ITEM_STATUS_SELECTED || footerStatus == FOOTER_ITEM_STATUS_HIGHLIGHTED)
305         {
306                 r = pAppRegistry->Set(tabKey,0);
307         }
308         else
309         {
310                 r = pAppRegistry->Set(tabKey,1);
311         }
312         pAppRegistry->Save();
313 }
314
315 void
316 BrightnessForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
317 {
318         WindowInfo* pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
319
320         if (pWindowInfo != null)
321         {
322                 if(pWindowInfo->pWebCanvasBitmap != null)
323                 {
324                         int labelWidth = __pLabel->GetWidth();
325                         int labelHeigth = __pLabel->GetHeight();
326
327                         if(orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
328                         {
329                                 labelWidth = pWindowInfo->pWebCanvasBitmap->GetWidth() * labelHeigth / pWindowInfo->pWebCanvasBitmap->GetHeight();
330                                 __pLabel->SetBounds(__pLabel->GetX()  + (__pLabel->GetWidth() - labelWidth)/2, __pLabel->GetY(), labelWidth, labelHeigth);
331                         }
332                         else
333                         {
334                                 labelHeigth = pWindowInfo->pWebCanvasBitmap->GetHeight() * labelWidth / pWindowInfo->pWebCanvasBitmap->GetWidth();
335                                 __pLabel->SetBounds(__pLabel->GetX(), __pLabel->GetY()  + (__pLabel->GetHeight() - labelHeigth)/2, labelWidth, labelHeigth);
336                         }
337                         Invalidate(true);
338                 }
339         }
340 }