Fixed Nabi Issues N_SE-53372,54974,55228,48389,55044
[apps/osp/Internet.git] / src / IntSettingForm.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 //!Internet SettingForm class
18 /*@file:        IntSettingForm.cpp
19  *@brief:       The SettingForm
20  */
21
22 #include <FApp.h>
23 #include <FGraphics.h>
24 #include <FUi.h>
25
26 #include "IntCommonLib.h"
27 #include "IntConfirmationPopup.h"
28 #include "IntDefaultCustomItem.h"
29 #include "IntDropDownCustomItem.h"
30 #include "IntHistoryPresentationModel.h"
31 #include "IntInternetApp.h"
32 #include "IntMultipleWindowPresentationModel.h"
33 #include "IntNotificationPanel.h"
34 #include "IntRadioCustomItem.h"
35 #include "IntSceneRegister.h"
36 #include "IntSettingForm.h"
37 #include "IntSettingPresentationModel.h"
38 #include "IntSettingToggleCustomItem.h"
39
40
41 using namespace Tizen::App;
42 using namespace Tizen::Base;
43 using namespace Tizen::Base::Collection;
44 using namespace Tizen::Graphics;
45 using namespace Tizen::System;
46 using namespace Tizen::Ui;
47 using namespace Tizen::Ui::Controls;
48 using namespace Tizen::Ui::Scenes;
49
50
51
52 SettingForm::SettingForm(void)
53 : __fontValue(0),__pResetPopup(null),__pWindowInfo(null) , __pConfirmationPopup(null),__pNotification(null)
54 {
55         __currentURL = L"";
56         __pList = null;
57         InitializeSettingValues();
58         __fontSize = 44;
59 }
60
61 SettingForm::~SettingForm(void)
62 {
63         if (pGroupItemCount)
64         {
65                 delete[] pGroupItemCount;
66                 pGroupItemCount = null;
67         }
68 }
69
70 void
71 SettingForm::InitializeSettingValues(void)
72 {
73         AppLog("SettingForm::InitializeSettingValues homepage %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
74         groupCount = 5;
75         pGroupItemCount = new(std::nothrow) int[5];
76         pGroupItemCount[0] = 5;  //Homepage
77         pGroupItemCount[1] = 6;  //Page content settings
78         pGroupItemCount[2] = 9;  //Private and Security
79         pGroupItemCount[3] = 4;  //Search
80         pGroupItemCount[4] = 1;  //Website settings and Reset
81
82         for (int iter = (int) SETTING_INVALID + 1; iter < (int) SETTING_MAX; iter++)
83         {
84                 settingInfo[iter].isSelected = false;
85         }
86
87         AppLogDebug("image display %d", (int) SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
88         settingInfo[SETTING_HOMEPAGE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE");
89         settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
90         settingInfo[SETTING_HOMEPAGE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
91
92         settingInfo[SETTING_CURRENT_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CURRENT_PAGE");
93         settingInfo[SETTING_CURRENT_PAGE].subText = L"";
94         settingInfo[SETTING_CURRENT_PAGE].itemType = ITEM_TYPE_RADIO;
95
96         settingInfo[SETTING_BLANK_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE");
97         settingInfo[SETTING_BLANK_PAGE].subText = L"";
98         settingInfo[SETTING_BLANK_PAGE].itemType = ITEM_TYPE_RADIO;
99         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
100         {
101                 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
102         }
103
104         settingInfo[SETTING_MOST_VISITED_SITE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_MOST_VISITED_SITES");
105         settingInfo[SETTING_MOST_VISITED_SITE].subText = L"";
106         settingInfo[SETTING_MOST_VISITED_SITE].itemType = ITEM_TYPE_RADIO;
107         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
108         {
109                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
110         }
111         WindowInfo* pWindowInfo = null;
112         String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
113         AppLog("SettingForm::OnSceneActivatedN check1");
114
115         settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
116         if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
117         {
118                 SettingPresentationModel::GetInstance()->SetFavoriteValue(L"http://www.tizen.org");
119         }
120         settingInfo[SETTING_FAVORITE_URL].subText = L"";
121         settingInfo[SETTING_FAVORITE_URL].itemType = ITEM_TYPE_RADIO;
122
123         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
124         if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
125         {
126                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
127                 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
128                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
129                 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
130                 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
131         }
132         else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
133         {
134                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
135                 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
136                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
137                 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
138                 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
139         }
140         else
141         {
142                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
143                 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
144                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
145                 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
146         }
147
148         settingInfo[SETTING_DEFAULT_VIEW_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_DEFAULT_VIEW");
149         settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText = CommonUtil::GetString(SettingPresentationModel::GetInstance()->GetDefaultView());
150         settingInfo[SETTING_DEFAULT_VIEW_TITLE].itemType = ITEM_TYPE_DROPDOWN;
151
152         settingInfo[SETTING_FIT_TO_WIDTH].titleText = CommonUtil::GetString(L"IDS_BR_BODY_FIT_TO_WIDTH");
153         settingInfo[SETTING_FIT_TO_WIDTH].subText = L"";
154         settingInfo[SETTING_FIT_TO_WIDTH].itemType = ITEM_TYPE_RADIO;
155         settingInfo[SETTING_FIT_TO_WIDTH].isSelected = !(String::Compare(settingInfo[SETTING_FIT_TO_WIDTH].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
156
157         settingInfo[SETTING_READABLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_READABLE");
158         settingInfo[SETTING_READABLE].subText = L"";
159         settingInfo[SETTING_READABLE].itemType = ITEM_TYPE_RADIO;
160         settingInfo[SETTING_READABLE].isSelected = !(String::Compare(settingInfo[SETTING_READABLE].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
161
162         settingInfo[SETTING_RUN_JAVASCRIPT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RUN_JAVASCRIPT");
163         settingInfo[SETTING_RUN_JAVASCRIPT].subText = L"";
164         settingInfo[SETTING_RUN_JAVASCRIPT].itemType = ITEM_TYPE_TOGGLE;
165         settingInfo[SETTING_RUN_JAVASCRIPT].isSelected = SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled();
166
167         settingInfo[SETTING_DISPLAY_IMAGES].titleText = CommonUtil::GetString(L"IDS_BR_OPT_LOAD_IMAGES");
168         settingInfo[SETTING_DISPLAY_IMAGES].subText = L"";
169         settingInfo[SETTING_DISPLAY_IMAGES].itemType = ITEM_TYPE_TOGGLE;
170         settingInfo[SETTING_DISPLAY_IMAGES].isSelected = SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled();
171
172         settingInfo[SETTING_BLOCK_POPUP].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLOCK_POP_UPS_ABB");
173         settingInfo[SETTING_BLOCK_POPUP].subText = L"";
174         settingInfo[SETTING_BLOCK_POPUP].itemType = ITEM_TYPE_TOGGLE;
175         settingInfo[SETTING_BLOCK_POPUP].isSelected = !SettingPresentationModel::GetInstance()->IsBlockPopUp();
176
177         settingInfo[SETTING_CLEAR_CACHE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_CACHE");
178         settingInfo[SETTING_CLEAR_CACHE].subText = L"";
179         settingInfo[SETTING_CLEAR_CACHE].itemType = ITEM_TYPE_NORMAL;
180
181         settingInfo[SETTING_CLEAR_HISTORY].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_HISTORY");
182         settingInfo[SETTING_CLEAR_HISTORY].subText = L"";
183         settingInfo[SETTING_CLEAR_HISTORY].itemType = ITEM_TYPE_NORMAL;
184
185         settingInfo[SETTING_SHOW_SECURITY_WARNINGS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SHOW_SECURITY_WARNINGS");
186         settingInfo[SETTING_SHOW_SECURITY_WARNINGS].subText = L"";
187         settingInfo[SETTING_SHOW_SECURITY_WARNINGS].itemType = ITEM_TYPE_TOGGLE;
188         settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected = SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled();
189
190         settingInfo[SETTING_ACCEPT_COOKIES].titleText = CommonUtil::GetString(L"IDS_BR_BODY_ACCEPT_COOKIES");
191         settingInfo[SETTING_ACCEPT_COOKIES].subText = L"";
192         settingInfo[SETTING_ACCEPT_COOKIES].itemType = ITEM_TYPE_TOGGLE;
193         settingInfo[SETTING_ACCEPT_COOKIES].isSelected = SettingPresentationModel::GetInstance()->IsCookiesEnabled();
194
195         settingInfo[SETTING_CLEAR_COOKIE_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_ALL_COOKIE_DATA");
196         settingInfo[SETTING_CLEAR_COOKIE_DATA].subText = CommonUtil::GetString(L"IDS_BR_BODY_COOKIES");
197         settingInfo[SETTING_CLEAR_COOKIE_DATA].itemType = ITEM_TYPE_NORMAL;
198
199         settingInfo[SETTING_REMEMBER_FORM_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_REMEMBER_FORM_DATA");
200         settingInfo[SETTING_REMEMBER_FORM_DATA].subText = L"";
201         settingInfo[SETTING_REMEMBER_FORM_DATA].itemType = ITEM_TYPE_TOGGLE;
202         settingInfo[SETTING_REMEMBER_FORM_DATA].isSelected = SettingPresentationModel::GetInstance()->IsRememberFormData();
203
204         settingInfo[SETTING_CLEAR_FORM_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_FORM_DATA");
205         settingInfo[SETTING_CLEAR_FORM_DATA].subText = CommonUtil::GetString(L"IDS_BR_HEADER_FORM_DATA");
206         settingInfo[SETTING_CLEAR_FORM_DATA].itemType = ITEM_TYPE_NORMAL;
207
208         settingInfo[SETTING_REMEMBER_PASSWORD].titleText = CommonUtil::GetString(L"IDS_BR_BODY_REMEMBER_PASSWORDS");
209         settingInfo[SETTING_REMEMBER_PASSWORD].subText = L"";
210         settingInfo[SETTING_REMEMBER_PASSWORD].itemType = ITEM_TYPE_TOGGLE;
211         settingInfo[SETTING_REMEMBER_PASSWORD].isSelected = SettingPresentationModel::GetInstance()->IsRememberPassword();
212
213
214         settingInfo[SETTING_CLEAR_PASSWORDS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_PASSWORDS");
215         settingInfo[SETTING_CLEAR_PASSWORDS].subText = L"";
216         settingInfo[SETTING_CLEAR_PASSWORDS].itemType = ITEM_TYPE_NORMAL;
217
218         settingInfo[SETTING_SEARCH_ENGINE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_ENGINE");
219         settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText = SettingPresentationModel::GetInstance()->GetSearchEngine();
220         settingInfo[SETTING_SEARCH_ENGINE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
221
222         settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText = L"Yahoo";  //CommonUtil::GetString(L"IDS_BR_BODY_YAHOO");
223         settingInfo[SETTING_SEARCH_ENGINE_YAHOO].subText = L"";
224         settingInfo[SETTING_SEARCH_ENGINE_YAHOO].itemType = ITEM_TYPE_RADIO;
225         settingInfo[SETTING_SEARCH_ENGINE_YAHOO].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
226
227         settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText = L"Naver";          //CommonUtil::GetString(L"IDS_BR_BODY_NAVER");
228         settingInfo[SETTING_SEARCH_ENGINE_NAVER].subText = L"";
229         settingInfo[SETTING_SEARCH_ENGINE_NAVER].itemType = ITEM_TYPE_RADIO;
230         settingInfo[SETTING_SEARCH_ENGINE_NAVER].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
231
232         settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText = L"Google";//CommonUtil::GetString(L"IDS_COM_BODY_GOOGLE");
233         settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].subText = L"";
234         settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].itemType = ITEM_TYPE_RADIO;
235         settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
236
237         settingInfo[SETTING_RESET_TO_DEFAULT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RESET_TO_DEFAULT");
238         settingInfo[SETTING_RESET_TO_DEFAULT].subText = L"";
239         settingInfo[SETTING_RESET_TO_DEFAULT].itemType = ITEM_TYPE_NORMAL;
240 }
241
242 bool
243 SettingForm::Initialize(void)
244 {
245         result r = E_FAILURE;
246
247         r = Construct(L"IDL_SETTING_FORM");
248         if (IsFailed(r))
249         {
250                 return false;
251         }
252         return true;
253 }
254
255 result
256 SettingForm::OnInitializing(void)
257 {
258         result r = E_FAILURE;
259         Footer* pFooter = NULL;
260         SceneManager* pSceneManager = NULL;
261
262         __fontSize = CommonUtil::GetFontSize();
263
264         bool isHwKeySupported = false;
265
266         //SetFormStyle(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR);
267         __pList = static_cast< GroupedListView* >(GetControl(L"IDC_SETTING_LIST"));
268         if ( __pList != NULL )
269         {
270
271                 r = __pList->SetItemProvider(*this);
272                 TryCatch(!IsFailed(r),,"setItemProvider failed with error %s",GetErrorMessage(r));
273                 __pList->AddGroupedListViewItemEventListener(*this);
274         }
275
276 //      pFooter = GetFooter();
277 //      if (pFooter)
278 //      {
279 //              AppLogDebug("setting back button");
280 //              pFooter->SetBackButtonEnabled(true);
281 //      }
282         SetFormBackEventListener(this);
283         AppLog("SetFormBackEventListener result %s",GetErrorMessage(GetLastResult()));
284         pSceneManager = SceneManager::GetInstance();
285         if (pSceneManager != null)
286         {
287                 r = pSceneManager->AddSceneEventListener(IDSCN_SETTINGS, *this);
288                 TryCatch(!IsFailed(r),,"AddSceneEventListener failed with error %s",GetErrorMessage(r));
289         }
290         AddOrientationEventListener(*this);
291
292         CATCH:
293         return r;
294 }
295
296 void
297 SettingForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
298 {
299
300 }
301
302 void
303 SettingForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
304 {
305         int effectiveIndex = 0;
306         SettingPresentationModel* pSettingMgr = SettingPresentationModel::GetInstance();
307
308         if (pSettingMgr == null)
309                 return;
310
311         for (int i = 0; i < groupIndex; i++)
312                 effectiveIndex = effectiveIndex + pGroupItemCount[i];
313         effectiveIndex = effectiveIndex + itemIndex;
314
315         if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
316         {
317                 AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
318                 if (settingInfo[effectiveIndex].isOpen == false)
319                 {
320                         settingInfo[effectiveIndex].isOpen = true;
321                         settingInfo[effectiveIndex].childCount = 0;
322                         for (int iter = effectiveIndex + 1; iter < SETTING_MAX; iter++)
323                         {
324                                 if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
325                                         settingInfo[effectiveIndex].childCount++;
326                                 else
327                                         break;
328                         }
329 /*
330                         listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
331                         for(int iter = 0; iter < settingInfo[effectiveIndex].childCount; iter++)
332                         {
333                                 listView.RefreshList(groupIndex, itemIndex + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
334                         }
335 */
336                         listView.UpdateList();
337                 }
338                 else
339                 {
340                         settingInfo[effectiveIndex].isOpen = false;
341 /*
342                         listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
343                         for(int iter = 0; iter < settingInfo[effectiveIndex].childCount; iter++)
344                         {
345                                 listView.RefreshList(groupIndex, itemIndex + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
346                         }
347 */
348                         listView.UpdateList();
349                 }
350         }
351         else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
352         {
353                 int parentIndex = 0;
354                 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
355                 {
356                         if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
357                                 break;
358                 }
359                 settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
360
361                 listView.RefreshList(groupIndex, itemIndex - (effectiveIndex - parentIndex), LIST_REFRESH_TYPE_ITEM_MODIFY);
362                 listView.RefreshList(groupIndex, parentIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
363                 for (int iter = 0; iter < settingInfo[parentIndex].childCount; iter++)
364                 {
365                         if (parentIndex + iter + 1 != effectiveIndex)
366                         {
367                                 AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
368                                 settingInfo[parentIndex + iter + 1].isSelected = false;
369                         }
370                         else
371                         {
372                                 AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
373                                 settingInfo[effectiveIndex].isSelected = true;
374                         }
375                         if (effectiveIndex == SETTING_CURRENT_PAGE)
376                         {
377                                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
378                                 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
379                         }
380                         listView.RefreshList(groupIndex, itemIndex - (effectiveIndex - parentIndex) + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
381                 }
382 //              listView.UpdateList();
383                 //listView.ScrollToItem(groupIndex, itemIndex, LIST_SCROLL_ITEM_ALIGNMENT_TOP);
384                 Invalidate(true);
385         }
386         else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
387         {
388                 if (settingInfo[effectiveIndex].isSelected == true)
389                 {
390                         settingInfo[effectiveIndex].isSelected = false;
391                 }
392                 else
393                 {
394                         settingInfo[effectiveIndex].isSelected = true;
395                 }
396 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
397                 if(__pList != null)
398                 {
399                         __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
400                 }
401         }
402
403         switch (effectiveIndex)
404         {
405         case SETTING_CURRENT_PAGE:
406                 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
407                 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
408                 if (__currentURL.CompareTo(L"") != 0)
409                 {
410                         AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
411                         SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
412                         SettingPresentationModel::GetInstance()->SetFavoriteValue(__currentURL);
413                         settingInfo[SETTING_FAVORITE_URL].titleText = __currentURL;
414 //                      listView.RefreshList(groupIndex, effectiveIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
415 //                      listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
416 //                      listView.UpdateList();
417                 }
418                 break;
419         case SETTING_BLANK_PAGE:
420                 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_BLANK_PAGE].titleText);
421                 SettingPresentationModel::GetInstance()->SetHomepage((L"IDS_BR_BODY_BLANK_PAGE"));
422                 AppLog("GetHomepage() %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
423 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
424 //              listView.UpdateList();
425
426                 break;
427         case SETTING_MOST_VISITED_SITE:
428                 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
429 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
430 //              listView.UpdateList();
431                 break;
432
433         case SETTING_FAVORITE_URL:
434                 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
435                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EDIT_HOMEPAGE_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
436                 break;
437
438         case SETTING_FIT_TO_WIDTH:
439                 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_FIT_TO_WIDTH");
440 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
441 //              listView.UpdateList();
442                 break;
443
444         case SETTING_READABLE:
445                 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_READABLE");
446 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
447 //              listView.UpdateList();
448                 break;
449
450         case SETTING_RUN_JAVASCRIPT:
451                 SettingPresentationModel::GetInstance()->SetRunJavascriptEnabled(settingInfo[SETTING_RUN_JAVASCRIPT].isSelected);
452                 break;
453
454         case SETTING_DISPLAY_IMAGES:
455                 SettingPresentationModel::GetInstance()->SetDisplayImagesEnabled(settingInfo[SETTING_DISPLAY_IMAGES].isSelected);
456                 break;
457
458         case SETTING_BLOCK_POPUP:
459                 SettingPresentationModel::GetInstance()->SetBlockPopUp(!settingInfo[SETTING_BLOCK_POPUP].isSelected);
460                 break;
461
462         case SETTING_CLEAR_CACHE:
463                 ClearCache();
464                 break;
465
466         case SETTING_CLEAR_HISTORY:
467                 ClearHistory();
468                 break;
469
470         case SETTING_SHOW_SECURITY_WARNINGS:
471                 SettingPresentationModel::GetInstance()->SetSecurityWarningsEnabled(settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected);
472                 break;
473
474         case SETTING_ACCEPT_COOKIES:
475                 SettingPresentationModel::GetInstance()->SetCookiesEnabled(settingInfo[SETTING_ACCEPT_COOKIES].isSelected);
476                 break;
477
478         case SETTING_CLEAR_COOKIE_DATA:
479                 ClearCookie();
480                 break;
481
482         case SETTING_REMEMBER_FORM_DATA:
483                 SettingPresentationModel::GetInstance()->SetRememberFormData(settingInfo[SETTING_REMEMBER_FORM_DATA].isSelected);
484                 break;
485
486         case SETTING_CLEAR_FORM_DATA:
487                 ClearFormData();
488                 break;
489
490         case SETTING_CLEAR_PASSWORDS:
491                 ClearPasswords();
492                 break;
493
494         case SETTING_REMEMBER_PASSWORD:
495                 SettingPresentationModel::GetInstance()->SetRememberPassword(settingInfo[SETTING_REMEMBER_PASSWORD].isSelected);
496                 break;
497
498         case SETTING_SEARCH_ENGINE_YAHOO:
499                 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText);
500 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
501 //              listView.UpdateList();
502                 break;
503
504         case SETTING_SEARCH_ENGINE_NAVER:
505                 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText);
506 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
507 //              listView.UpdateList();
508                 break;
509
510         case SETTING_SEARCH_ENGINE_GOOGLE:
511                 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText);
512 //              listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
513 //              listView.UpdateList();
514                 break;
515
516         case SETTING_RESET_TO_DEFAULT:
517                 //OpenResetPopup();
518                 ResetToDefault();
519                 break;
520
521         default:
522                 break;
523         }
524 }
525
526 void
527 SettingForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
528 {
529
530 }
531
532 GroupItem*
533 SettingForm::CreateGroupItem(int groupIndex, int itemWidth)
534 {
535         result r = E_FAILURE;
536         String text(L"");
537         GroupItem* pItem = null;
538         const Color ITEM_TEXT_COLOR = CUSTOM_COLOR_SETTINGS_GROUPTITLE;
539
540         pItem = new(std::nothrow) GroupItem();
541         if (pItem == null)
542         {
543                 return null;
544         }
545         r = pItem->Construct(Dimension(itemWidth, 76));
546         if (IsFailed(r))
547         {
548                 delete pItem;
549                 return null;
550         }
551
552         switch (groupIndex)
553         {
554         case 0:
555                 text = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE"); // IDS_HOMEPAGE
556                 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
557                 break;
558
559         case 1:
560                 text = CommonUtil::GetString(L"IDS_BR_MBODY_PAGE_CONTENT_SETTINGS"); // IDS_BR_MBODY_PAGE_CONTENT_SETTINGS
561                 break;
562
563         case 2:
564                 text = CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB");  // IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB
565                 break;
566
567         case 3:
568                 text = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH");    // IDS_BR_BODY_SEARCH
569                 break;
570
571         case 4:
572                 text = L" ";
573                 break;
574
575         default:
576                 break;
577         }
578
579         pItem->SetElement(text, null);
580
581         AppLogDebug("background color set result %s", GetErrorMessage(r));
582
583         pItem->SetTextColor(ITEM_TEXT_COLOR);
584         return pItem;
585 }
586
587 ListItemBase*
588 SettingForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
589 {
590         AppLog("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex, itemWidth);
591
592         result r = E_SUCCESS;
593         int effectiveIndex = 0;
594         const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
595         const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
596         const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
597
598         for (int i = 0; i < groupIndex; i++)
599                 effectiveIndex = effectiveIndex + pGroupItemCount[i];
600         effectiveIndex = effectiveIndex + itemIndex;
601         AppLogDebug("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
602
603         if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
604         {
605                 SettingToggleCustomItem* pItem = new(std::nothrow) SettingToggleCustomItem();
606                 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
607                 if (IsFailed(r))
608                 {
609                         delete pItem;
610                         return null;
611                 }
612
613                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
614                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
615 //              if(__pList != null)
616 //              {
617 //                      __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
618 //              }
619
620                 ArrayList *pList = new(std::nothrow) ArrayList();
621                 pList->Construct();
622                 Integer *pGroupIndex = new Integer(groupIndex);
623                 Integer *pItemIndex = new Integer(itemIndex);
624                 pList->Add(pGroupIndex);
625                 pList->Add(pItemIndex);
626                 AppLog("sending event UPDATE_LIST_COMPLETE");
627                 SendUserEvent(UPDATE_LIST_COMPLETE,pList);
628
629                 pItem->SetText(settingInfo[effectiveIndex].titleText);
630                 pItem->Make();
631
632                 return pItem;
633
634         }
635         else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
636         {
637                 DropDownCustomItem* pItem = new(std::nothrow) DropDownCustomItem();
638                 r = pItem->Construct(itemWidth);
639                 if (IsFailed(r))
640                 {
641                         delete pItem;
642                         return null;
643                 }
644
645 /*              Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,128);
646                 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
647
648                 if (pNormalBackgroundBitmap != NULL)
649                 {
650                         pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
651                         delete pNormalBackgroundBitmap;
652                 }
653
654                 if (pPressedBackgroundBitmap != NULL)
655                 {
656                         pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
657                         delete pPressedBackgroundBitmap;
658                 }*/
659
660                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
661                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
662
663                 pItem->SetMainText(settingInfo[effectiveIndex].titleText);
664                 if(settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_BLANK_PAGE") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_MOST_VISITED_SITES") == 0  || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_FIT_TO_WIDTH") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_READABLE") == 0)
665                 {
666                         pItem->SetSubText(CommonUtil::GetString(settingInfo[effectiveIndex].subText));
667                 }
668                 else
669                 {
670                         pItem->SetSubText(settingInfo[effectiveIndex].subText);
671                 }
672                 if (settingInfo[effectiveIndex].isOpen)
673                 {
674                         pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
675                 }
676                 else
677                 {
678                         pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
679                 }
680                 r = pItem->Make();
681                 //      if (pBitmap != null)
682                 //              pItem->AddElement(Rectangle(0, 0, 10, 128), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
683
684                 if (IsFailed(r))
685                 {
686                         delete pItem;
687                         return null;
688                 }
689
690                 return pItem;
691         }
692         else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
693         {
694                 RadioCustomItem* pItem = new(std::nothrow) RadioCustomItem();
695                 int parentIndex = 0;
696                 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
697                 {
698                         if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
699                                 break;
700                 }
701                 if (settingInfo[parentIndex].isOpen == false || (__isCurrentPageDisable == true && groupIndex == 0 && itemIndex == 1))
702                 {
703                         r = pItem->Construct(itemWidth, 0);
704                         __pList->SetItemEnabled(groupIndex,itemIndex,false);
705                         AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
706                         return pItem;
707                 }
708                 else
709                 {
710                         __pList->SetItemEnabled(groupIndex,itemIndex,true);
711                         pItem->Construct(itemWidth, 112 +  (__fontSize - 44));
712                 }
713 /*
714                 Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
715                 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
716
717                 if (pNormalBackgroundBitmap != NULL)
718                 {
719                         pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
720                         delete pNormalBackgroundBitmap;
721                 }
722
723                 if (pPressedBackgroundBitmap != NULL)
724                 {
725                         pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
726                         delete pPressedBackgroundBitmap;
727                 }*/
728
729                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
730                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
731
732
733                 pItem->SetText(settingInfo[effectiveIndex].titleText);
734                 AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
735
736                 //if (pBitmap != null)
737                 //      pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
738
739 //              pItem->SetSelected(settingInfo[effectiveIndex].isSelected);
740 //              __pList->SetItemChecked(groupIndex,itemIndex,settingInfo[effectiveIndex].isSelected);
741                 ArrayList *pList = new(std::nothrow) ArrayList();
742                 pList->Construct();
743                 Integer *pGroupIndex = new Integer(groupIndex);
744                 Integer *pItemIndex = new Integer(itemIndex);
745                 pList->Add(pGroupIndex);
746                 pList->Add(pItemIndex);
747                 AppLog("sending event UPDATE_LIST_COMPLETE");
748                 SendUserEvent(UPDATE_LIST_COMPLETE,pList);
749                 pItem->Make();
750
751                 return pItem;
752         }
753         else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_NORMAL)
754         {
755                 DefaultCustomItem* pItem = new(std::nothrow) DefaultCustomItem();
756
757                 r = pItem->Construct(itemWidth, 112 + (__fontSize - 44));
758                 if (IsFailed(r))
759                 {
760                         delete pItem;
761                         return null;
762                 }
763
764
765 //              Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
766 //              Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
767 //
768 //              if (pNormalBackgroundBitmap != NULL)
769 //              {
770 //                      pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
771 //                      delete pNormalBackgroundBitmap;
772 //              }
773 //
774 //              if (pPressedBackgroundBitmap != NULL)
775 //              {
776 //                      pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
777 //                      delete pPressedBackgroundBitmap;
778 //              }
779
780                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
781                 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
782
783
784                 pItem->SetText(settingInfo[effectiveIndex].titleText);
785
786                 //if (pBitmap != null)
787                 //      pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
788
789                 r = pItem->Make();
790                 if (IsFailed(r))
791                 {
792                         delete pItem;
793                         return null;
794                 }
795                 return pItem;
796         }
797         else
798         {
799                 return null;
800         }
801 }
802
803 bool
804 SettingForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
805 {
806         delete pItem;
807         pItem = null;
808         return true;
809 }
810
811 bool
812 SettingForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
813 {
814         delete pItem;
815         pItem = null;
816         return true;
817 }
818
819 int
820 SettingForm::GetGroupCount(void)
821 {
822         return groupCount;
823 }
824
825 int
826 SettingForm::GetItemCount(int groupIndex)
827 {
828         AppLog(" SettingForm::GetItemCount --> groupIndex : %d,", groupIndex);
829         return pGroupItemCount[groupIndex];
830 }
831
832 void
833 SettingForm::OnFormBackRequested(Form& source)
834 {
835         AppLog("SettingForm::OnFormBackRequested entered");
836         String* pSelectedScene = NULL;
837         Object* value = NULL;
838         MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &value);
839         pSelectedScene = (String*) value;
840         if (pSelectedScene)
841         {
842                 SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(*pSelectedScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
843 //              delete pSelectedScene;
844 //              pSelectedScene = null;
845         }
846 }
847
848 void
849 SettingForm::OnActionPerformed(const Control& source, int actionId)
850 {
851         switch (actionId)
852         {
853         case IDA_BUTTON_NO:
854                 if(__pConfirmationPopup)
855                 {
856                         __pConfirmationPopup->SetShowState(false);
857                         __pConfirmationPopup->Show();
858                         delete __pConfirmationPopup;
859                         __pConfirmationPopup = null;
860                 }
861                 break;
862
863         case IDA_BUTTON_YES:
864                 if(__pConfirmationPopup)
865                 {
866                         String message = L"";
867                         __pConfirmationPopup->SetShowState(false);
868                         __pConfirmationPopup->Show();
869                         if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO"))
870                         {
871                                 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
872                                 SettingPresentationModel::GetInstance()->ClearCookie();
873                         }
874                         else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q"))
875                         {
876                                 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
877                                 SettingPresentationModel::GetInstance()->ClearFormData();
878                         }
879                         else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q"))
880                         {
881                                 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
882                                 SettingPresentationModel::GetInstance()->ClearPasswords();
883                         }
884                         else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q"))
885                         {
886                                 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
887                                 SettingPresentationModel::GetInstance()->ClearCache();
888                         }
889                         else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q"))
890                         {
891                                 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
892                                 HistoryPresentationModel::GetInstance()->ClearHistory();
893                         }
894                         else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q"))
895                         {
896                                 message = CommonUtil::GetString(L"IDS_BR_SK_DONE");
897                                 SettingPresentationModel::GetInstance()->ResetRegistry();
898                                 InitializeSettingValues();
899                                 if(__pList != null)
900                                 {
901                                         __pList->UpdateList();
902                                 }
903                         }
904                         delete __pConfirmationPopup;
905                         __pConfirmationPopup = null;
906
907                         if (__pNotification != null)
908                         {
909                                 RemoveControl(__pNotification);
910                                 __pNotification = null;
911                         }
912                         __pNotification = new (std::nothrow) NotificationPanel(*this);
913
914                         //NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
915                         __pNotification->SetText(message);
916                         __pNotification->SetPositionDiff(0);
917                         __pNotification->ShowNotification();
918                 }
919                 break;
920
921         default:
922                 break;
923         }
924 }
925
926 void
927 SettingForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
928 {
929         Rectangle rect = GetClientAreaBounds();
930
931         if (__pNotification != null && __pNotification->GetShowState() == true)
932         {
933                 __pNotification->OrientationChanged();
934         }
935
936         if (__pList == null)
937         {
938                 return;
939         }
940         __pList->SetBounds(rect.x,rect.y,rect.width-16,rect.height);
941 //      __pList->UpdateList();//removed for issue 53768
942 }
943
944 SettingForm::SettingItemInfo::SettingItemInfo(void)
945 {
946         titleText = L"";
947         subText = L"";
948         childCount = 0;
949         isOpen = false;
950         isSelected = false ;
951 }
952 void
953 SettingForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
954 {
955         WindowInfo* pWindowInfo = null;
956         String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
957
958         pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
959
960         if (previousSceneId == IDSCN_EDIT_HOMEPAGE_VIEW)
961         {
962                 if (pArgs != null)
963                 {
964                         String* pValue = NULL;
965                         pValue = dynamic_cast<String*>(pArgs->GetAt(0));
966                         if( pValue != NULL )
967                         {
968                                 if (pValue->CompareTo(L"Done") == 0)
969                                 {
970                                 //      SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
971                                 }
972                                 else if (pValue->CompareTo(L"Cancel") == 0)
973                                 {
974                                         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
975                                         if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
976                                         {
977                                                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
978                                                 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
979                                                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
980                                                 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
981                                                 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
982
983                                         }
984                                         else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
985                                         {
986                                                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
987                                                 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
988                                                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
989                                                 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
990                                                 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
991                                         }
992                                         else
993                                         {
994                                                 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
995                                                 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
996                                                 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
997                                                 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
998                                         }
999
1000                                 }
1001                         }
1002                 }
1003         }
1004
1005         if (pWindowInfo != null)
1006         {
1007                 __currentURL.Clear();
1008                 __currentURL.Append(pWindowInfo->pageUrl);
1009                 AppLog("current url is %ls",__currentURL.GetPointer());
1010
1011                 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
1012                 {
1013                         if (pWindowInfo->pageUrl.CompareTo(L"") == 0)
1014                         {
1015                                 //settingInfo[SETTING_FAVORITE_URL].titleText = CommonUtil::GetString(L"IDS_SET_HOMEPAGE");
1016                                 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
1017                         }
1018                         else
1019                         {
1020                                 settingInfo[SETTING_FAVORITE_URL].titleText = pWindowInfo->pageUrl;
1021                         }
1022                 }
1023                 else
1024                 {
1025                         settingInfo[SETTING_FAVORITE_URL].titleText = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
1026                 }
1027         }
1028
1029         if (__pList != null)
1030         {
1031                 __pList->UpdateList();
1032                 if (pWindowInfo && pWindowInfo->pageUrl.CompareTo(L"") == 0)
1033                 {
1034                         __isCurrentPageDisable = true;
1035                         AppLog("set item enabled is false");
1036                         __pList->SetItemEnabled(0, 1, false);
1037                 }
1038                 else
1039                 {
1040                         __isCurrentPageDisable = false;
1041                         AppLog("set item enabled is true");
1042                         if (settingInfo[0].isOpen == false)
1043                         {
1044                                 __pList->SetItemEnabled(0,1,false);
1045                         }
1046                         else
1047                         {
1048                                 __pList->SetItemEnabled(0,1,true);
1049                         }
1050                 }
1051                 for(int grpindex = 0; grpindex < groupCount; grpindex++)
1052                 {
1053                         for(int index = 0; index < *(pGroupItemCount+groupCount); index++)
1054                         {
1055                                 int effectiveIndex = 0;
1056                                 for (int i = 0; i < grpindex; i++)
1057                                                 effectiveIndex = effectiveIndex + pGroupItemCount[i];
1058                                         effectiveIndex = effectiveIndex + index;
1059
1060                                         if(effectiveIndex >= SETTING_MAX)
1061                                         {
1062                                                 continue;
1063                                         }
1064                                 if(settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE || settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO )
1065                                 {
1066                                         __pList->SetItemChecked(grpindex, index, settingInfo[effectiveIndex].isSelected);
1067                                 }
1068                         }
1069                 }
1070         }
1071         return;
1072 }
1073
1074 void
1075 SettingForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1076 {
1077         return;
1078 }
1079
1080 void
1081 SettingForm::ClearHistory(void)
1082 {
1083         if(__pConfirmationPopup)
1084         {
1085                 __pConfirmationPopup->SetShowState(false);
1086                 __pConfirmationPopup->Show();
1087                 delete __pConfirmationPopup;
1088                 __pConfirmationPopup = null;
1089         }
1090         String message = CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q");
1091         if(!__pConfirmationPopup)
1092         {
1093                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1094                 __pConfirmationPopup->Initialize();
1095                 __pConfirmationPopup->RemoveActionListener(*this);
1096                 __pConfirmationPopup->AddActionListener(*this);
1097                 __pConfirmationPopup->setMessage(message);
1098                 __pConfirmationPopup->Show();
1099         }
1100 }
1101
1102 void
1103 SettingForm::ClearCache(void)
1104 {
1105         if(__pConfirmationPopup)
1106         {
1107                 __pConfirmationPopup->SetShowState(false);
1108                 __pConfirmationPopup->Show();
1109                 delete __pConfirmationPopup;
1110                 __pConfirmationPopup = null;
1111         }
1112         String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q");
1113         if(!__pConfirmationPopup)
1114         {
1115                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1116                 __pConfirmationPopup->Initialize();
1117                 __pConfirmationPopup->RemoveActionListener(*this);
1118                 __pConfirmationPopup->AddActionListener(*this);
1119                 __pConfirmationPopup->setMessage(message);
1120                 __pConfirmationPopup->Show();
1121         }
1122 }
1123
1124 void
1125 SettingForm::ClearCookie(void)
1126 {
1127         if(__pConfirmationPopup)
1128         {
1129                 __pConfirmationPopup->SetShowState(false);
1130                 __pConfirmationPopup->Show();
1131                 delete __pConfirmationPopup;
1132                 __pConfirmationPopup = null;
1133         }
1134         String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO");
1135         if(!__pConfirmationPopup)
1136         {
1137                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1138                 __pConfirmationPopup->Initialize();
1139                 __pConfirmationPopup->RemoveActionListener(*this);
1140                 __pConfirmationPopup->AddActionListener(*this);
1141                 __pConfirmationPopup->setMessage(message);
1142                 __pConfirmationPopup->Show();
1143         }
1144 }
1145
1146 void
1147 SettingForm::ClearFormData(void)
1148 {
1149         if(__pConfirmationPopup)
1150         {
1151                 __pConfirmationPopup->SetShowState(false);
1152                 __pConfirmationPopup->Show();
1153                 delete __pConfirmationPopup;
1154                 __pConfirmationPopup = null;
1155         }
1156         String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_FORM_DATA_Q");
1157         if(!__pConfirmationPopup)
1158         {
1159                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1160                 __pConfirmationPopup->Initialize();
1161                 __pConfirmationPopup->RemoveActionListener(*this);
1162                 __pConfirmationPopup->AddActionListener(*this);
1163                 __pConfirmationPopup->setMessage(message);
1164                 __pConfirmationPopup->Show();
1165         }
1166 }
1167
1168 void
1169 SettingForm::ClearPasswords(void)
1170 {
1171         if(__pConfirmationPopup)
1172         {
1173                 __pConfirmationPopup->SetShowState(false);
1174                 __pConfirmationPopup->Show();
1175                 delete __pConfirmationPopup;
1176                 __pConfirmationPopup = null;
1177         }
1178         String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_ALL_SAVED_PASSWORDS_Q");
1179         if(!__pConfirmationPopup)
1180         {
1181                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1182                 __pConfirmationPopup->Initialize();
1183                 __pConfirmationPopup->RemoveActionListener(*this);
1184                 __pConfirmationPopup->AddActionListener(*this);
1185                 __pConfirmationPopup->setMessage(message);
1186                 __pConfirmationPopup->Show();
1187         }
1188 }
1189
1190
1191 void
1192 SettingForm::ResetToDefault()
1193 {
1194         if(__pConfirmationPopup)
1195         {
1196                 __pConfirmationPopup->SetShowState(false);
1197                 __pConfirmationPopup->Show();
1198                 delete __pConfirmationPopup;
1199                 __pConfirmationPopup = null;
1200         }
1201         String message = CommonUtil::GetString(L"IDS_BR_POP_ALL_SETTINGS_TO_DEFAULT_CONTINUE_Q");
1202         if(!__pConfirmationPopup)
1203         {
1204                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1205                 __pConfirmationPopup->Initialize();
1206                 __pConfirmationPopup->RemoveActionListener(*this);
1207                 __pConfirmationPopup->AddActionListener(*this);
1208                 __pConfirmationPopup->setMessage(message);
1209                 __pConfirmationPopup->Show();
1210         }
1211 }
1212
1213 void
1214 SettingForm::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
1215 {
1216         AppLog("receiving userevent for appcontrol %d",requestId);
1217         if (requestId == APPCONTROL_LAUNCH_MAX_LIMIT_REACHED)
1218         {
1219                 AppLog("receiving userevent for appcontrol %d ",requestId);
1220                 if(__pConfirmationPopup)
1221                 {
1222                         __pConfirmationPopup->SetShowState(false);
1223                         delete __pConfirmationPopup;
1224                         __pConfirmationPopup = null;
1225                 }
1226         }
1227         else if (requestId == UPDATE_LIST_COMPLETE)
1228         {
1229                 AppLog("receiving event UPDATE_LIST_COMPLETE");
1230                 Integer *pGroupIndex = static_cast<Integer*>(pArgs->GetAt(0));
1231                 Integer *pItemIndex = static_cast<Integer*>(pArgs->GetAt(1));
1232                 int groupIndex = pGroupIndex->ToInt();
1233                 int itemIndex = pItemIndex->ToInt();
1234
1235                 int effectiveIndex = 0;
1236                 for (int i = 0; i < groupIndex; i++)
1237                         effectiveIndex = effectiveIndex + pGroupItemCount[i];
1238                 effectiveIndex = effectiveIndex + itemIndex;
1239
1240
1241                 if(settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE || settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO )
1242                 {
1243                         __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
1244                 }
1245
1246         }
1247 }
1248