boiler plate : flora site fixed
[apps/osp/Internet.git] / src / IntBookmarkListForm.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (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
18 /*@file:    IntBookmarkListForm
19  *@brief:       This class defines BookmarkListForm
20  *
21  */
22
23 #include <FApp.h>
24 #include "IntBookmarkData.h"
25 #include "IntBookmarkListForm.h"
26 #include "IntBookmarkPresentationModel.h"
27 #include "IntCommonLib.h"
28 #include "IntConfirmationPopup.h"
29 #include "IntFaviconManager.h"
30 #include "IntMultipleWindowPresentationModel.h"
31 #include "IntSceneRegister.h"
32 #include "IntTypes.h"
33
34
35 using namespace Tizen::App;
36 using namespace Tizen::Base;
37 using namespace Tizen::Base::Collection;
38 using namespace Tizen::Base::Runtime;
39 using namespace Tizen::Graphics;
40 using namespace Tizen::Ui;
41 using namespace Tizen::Ui::Controls;
42 using namespace Tizen::Ui::Scenes;
43 using namespace Tizen::Media;
44
45 const wchar_t* DEFAULT_VALUE_PARENTID = L"0";
46 static const wchar_t* IDB_TAB_ICON_BOOKMARK = L"I01_tab_icon_bookmarks.png";
47 static const wchar_t* IDB_TAB_ICON_HISTORY = L"I01_tab_icon_history.png";
48 static const wchar_t* IDB_NO_CONTENT_BOOKMARK = L"I01_Nocontents_Bookmarks.png";
49 static const wchar_t* IDB_ICON_FOLDER_OPEN = L"I01_icon_folder_open.png";
50
51 const int BookmarkListForm::IDA_TABBAR_ITEM_1 = 101;
52 const int BookmarkListForm::IDA_TABBAR_ITEM_2 = 102;
53 const int BookmarkListForm::IDA_FOOTER_ITEM1 = 103;
54 const int BookmarkListForm::IDA_FOOTER_ITEM2 = 104;
55 const int BookmarkListForm::IDA_FOOTER_ITEM_ADDBOOKMARK = 105;
56 const int BookmarkListForm::IDA_FORMAT_FOLDER = 106;
57 const int BookmarkListForm::IDA_FORMAT_SITE = 107;
58 const int BookmarkListForm::IDA_CONTEXT_ITEM_FOLDER_EDIT = 108;
59 const int BookmarkListForm::IDA_CONTEXT_ITEM_FOLDER_DELETE = 109;
60 const int BookmarkListForm::IDA_CONTEXT_ITEM_EDIT = 110;
61 const int BookmarkListForm::IDA_CONTEXT_ITEM_SHARE = 111;
62 const int BookmarkListForm::IDA_CONTEXT_ITEM_DELETE = 112;
63 const int BookmarkListForm::IDA_FORMAT_ICON = 113;
64 const int BookmarkListForm::IDA_FORMAT_URL = 114;
65
66 //const int BookmarkListForm::IDA_CONFIRMATION_NO = 1000;
67 //const int BookmarkListForm::IDA_CONFIRMATION_YES = 1001;
68
69 BookmarkListForm::BookmarkListForm(void)
70 {
71         __pItemContextFolder = null ;
72         __pItemContextSite = null ;
73         __pListview = null;
74         __pData = null;
75         __pSearchListView = null;
76         __pSearchBar = null;
77         __searchBookmark = false;
78         __parentID = DEFAULT_VALUE_PARENTID;
79         __noBookmarks = true;
80         __selectedindex = 0;
81         __searchText = L"";
82         __previousSceneId = L"";
83 }
84
85 BookmarkListForm::~BookmarkListForm(void)
86 {
87
88         if (__pData != null)
89         {
90                 __pData->RemoveAll(true);
91                 delete __pData;
92                 __pData = NULL;
93         }
94
95         if (__pItemContextFolder != null)
96         {
97                 delete __pItemContextFolder;
98                 __pItemContextFolder = null;
99         }
100
101         if (__pItemContextSite != null)
102         {
103                 delete __pItemContextSite;
104                 __pItemContextSite = null;
105         }
106 }
107
108 result
109 BookmarkListForm::OnTerminating(void)
110 {
111         result r = E_SUCCESS;
112
113         if (__pData != null)
114         {
115                 __pData->RemoveAll(true);
116                 delete __pData;
117                 __pData = NULL;
118         }
119
120         return r;
121 }
122
123
124 bool
125 BookmarkListForm::Initialize(void)
126 {
127         Construct(L"IDL_BOOKMARK_LIST");
128         return true;
129 }
130
131 result
132 BookmarkListForm::OnInitializing(void)
133 {
134         result r = E_SUCCESS;
135         HeaderItem bookmark;
136         HeaderItem history;
137         Bitmap *pBitmapNormal = null;
138         Bitmap *pBitmapPressed = null;
139         Header *pHeader = GetHeader();
140         Bitmap *pIconBitmap = null;
141         AppResource* pAppResource = UiApp::GetInstance()->GetAppResource();
142         int bookmarkCount = 0;
143         const int WIDTH_CONTEXT_MENU_TWO_BUTTON = 336;
144         const int WIDTH_CONTEXT_MENU_THREE_BUTTON = 160;
145         const int HEIGHT_CONTEXT_MENU_BUTTON = 72;
146
147
148         // Setup back event listener
149         SetFormBackEventListener(this);
150         AddOrientationEventListener(*this);
151
152         SceneManager::GetInstance()->AddSceneEventListener(IDSCN_BOOKMARK_VIEW, *this);
153         GetHeader()->AddActionEventListener(*this);
154         GetFooter()->AddActionEventListener(*this);
155
156         if ( pAppResource == NULL )
157         {
158                 return E_FAILURE;
159         }
160
161         __pItemContextFolder = new(std::nothrow) ListContextItem();
162         __pItemContextFolder->Construct();
163         __pItemContextFolder->AddElement(IDA_CONTEXT_ITEM_FOLDER_EDIT, CommonUtil::GetString(L"IDS_BR_SK_EDIT"));
164         pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", WIDTH_CONTEXT_MENU_TWO_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);
165         pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", WIDTH_CONTEXT_MENU_TWO_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);
166
167         if (pBitmapNormal != null && pBitmapPressed != null)
168         {
169                 __pItemContextFolder->AddElement(IDA_CONTEXT_ITEM_FOLDER_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"),  *pBitmapNormal, *pBitmapPressed, pBitmapPressed);
170         }
171
172         if (pBitmapNormal != null)
173         {
174                 delete pBitmapNormal;
175         }
176
177         if (pBitmapPressed != null)
178         {
179                 delete pBitmapPressed;
180         }
181
182         __pItemContextSite = new(std::nothrow) ListContextItem();
183         __pItemContextSite->Construct();
184         __pItemContextSite->AddElement(IDA_CONTEXT_ITEM_EDIT, CommonUtil::GetString(L"IDS_BR_SK_EDIT"));
185         __pItemContextSite->AddElement(IDA_CONTEXT_ITEM_SHARE, CommonUtil::GetString(L"IDS_BR_OPT_SHARE"));
186         pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", WIDTH_CONTEXT_MENU_THREE_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);
187         pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", WIDTH_CONTEXT_MENU_THREE_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);
188
189         if (pBitmapNormal != null && pBitmapPressed != null)
190         {
191                 __pItemContextSite->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), *pBitmapNormal, *pBitmapPressed, pBitmapPressed);
192         }
193
194         if (pBitmapNormal != null)
195         {
196                 delete pBitmapNormal;
197         }
198
199         if (pBitmapPressed != null)
200         {
201                 delete pBitmapPressed;
202         }
203         __pListview = static_cast< ListView* >(GetControl("IDC_LISTVIEW1"));
204
205         if (__pListview == null)
206         {
207                 return E_FAILURE;
208         }
209         __pSearchBar = static_cast< SearchBar* >(GetControl(L"IDC_SEARCHBAR1"));
210
211         if (__pSearchBar == null)
212         {
213                 return E_FAILURE;
214         }
215
216         if (__pListview != null)
217         {
218                 //              __pListview->SetBounds(__pListview->GetX(), __pListview->GetY(), GetClientAreaBounds().width, GetClientAreaBounds().height);
219                 __pListview->AddFastScrollListener(*this);
220                 __pListview->AddListViewItemEventListener(*this);
221                 __pListview->SetItemProvider(*this);
222                 __pListview->UpdateList();
223         }
224
225         __pPopUp = new(std::nothrow) SharePopup();
226
227         if (__pPopUp != null)
228         {
229                 __pPopUp->Initialize();
230                 AddControl(*__pPopUp);
231         }
232
233         __pSearchListView = new(std::nothrow) ListView();
234
235         if (__pSearchListView == null)
236         {
237                 return E_FAILURE;
238         }
239
240         r = __pSearchListView->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height -72 - 30), true, false);
241         TryCatch( !IsFailed(r),,"BookmarkListForm::OnSearchBarModeChanged Update list failed %s",GetErrorMessage(r));
242
243         __pSearchListView->SetItemProvider(*this);
244         __pSearchListView->SetTextOfEmptyList(CommonUtil::GetString(L"IDS_BR_BODY_NO_RESULTS_FOUND"));
245         __pSearchListView->SetTextColorOfEmptyList(Color::GetColor(COLOR_ID_BLACK));
246         __pSearchListView->SetShowState(false);
247         __pSearchListView->AddListViewItemEventListener(*this);
248
249         __pSearchBar->AddSearchBarEventListener(*this);
250         __pSearchBar->AddKeypadEventListener(*this);
251         __pSearchBar->SetContent(__pSearchListView);
252
253         BookmarkPresentationModel::GetInstance()->GetFolderBookmarkCount(__parentID, bookmarkCount);
254         if(bookmarkCount <= 0)
255         {
256                 __pSearchBar->SetShowState(false);
257                 //__pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetY(),__pSearchBar->GetWidth(),GetClientAreaBounds().height - __pSearchBar->GetPosition().y);
258                 __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetY(),__pListview->GetWidth(),GetClientAreaBounds().height);
259         }
260         else
261         {
262                 __pSearchBar->SetShowState(true);
263         }
264
265
266         if (pHeader != null)
267         {
268                 pHeader->SetStyle(HEADER_STYLE_TAB);
269                 bookmark.Construct(IDA_TABBAR_ITEM_1);
270                 String strbookmark;
271                 pAppResource->GetString(L"IDS_BR_TAB_BOOKMARKS", strbookmark);
272                 bookmark.SetText(strbookmark);
273                 pIconBitmap = pAppResource->GetBitmapN(IDB_TAB_ICON_BOOKMARK);
274                 bookmark.SetIcon(HEADER_ITEM_STATUS_NORMAL, pIconBitmap);
275                 bookmark.SetIcon(HEADER_ITEM_STATUS_PRESSED, pIconBitmap);
276                 pHeader->AddItem(bookmark);
277
278                 if (pIconBitmap != NULL)
279                 {
280                         delete pIconBitmap;
281                 }
282
283                 history.Construct(IDA_TABBAR_ITEM_2);
284                 String strhistory;
285                 pAppResource->GetString(L"IDS_BR_TAB_HISTORY", strhistory);
286                 history.SetText(strhistory);
287                 pIconBitmap = pAppResource->GetBitmapN(IDB_TAB_ICON_HISTORY);
288                 history.SetIcon(HEADER_ITEM_STATUS_NORMAL, pIconBitmap);
289                 history.SetIcon(HEADER_ITEM_STATUS_PRESSED, pIconBitmap);
290                 pHeader->AddItem(history);
291                 pHeader->SetItemSelected(0);
292
293                 if (pIconBitmap != NULL)
294                 {
295                         delete pIconBitmap;
296                 }
297         }
298
299
300         CATCH:return r;
301 }
302
303 void
304 BookmarkListForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
305 {
306         AppLogDebug("BookmarkListForm::OnActionPerformed actionId = %d",actionId);
307         String bookmarkId;
308         int id = 0;
309         BookmarkData* pBookMark = null;
310
311         switch (actionId)
312         {
313         case IDA_FOOTER_ITEM1:
314         {
315                 GetHeader()->SetItemSelected(0);
316                 GetHeader()->Invalidate(true);
317                 SceneManager* pSceneManager = SceneManager::GetInstance();
318                 pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(__selectedindex));
319
320                 if ( pBookMark == NULL )
321                 {
322                         return;
323                 }
324
325                 ArrayList* pArgList = null;
326                 pArgList = new(std::nothrow) ArrayList();
327                 if (pArgList != null)
328                 {
329                         pArgList->Construct();
330                         pArgList->Add(*new(std::nothrow) String(pBookMark->GetParentId()));
331                 }
332                 //pArgList->Add(*new(std::nothrow) String(pBookmark->);
333                 if (pSceneManager != null)
334                 {
335                         if(pSceneManager->GoForward(ForwardSceneTransition(IDSCN_EDIT_BOOKMARK_LIST),pArgList) != E_SUCCESS)
336                         {
337                                 AppLogDebug("BookmarkListForm::OnActionPerformed GoForward failed");
338                                 pArgList->RemoveAll(true);
339                                 delete pArgList;
340                                 pArgList = null;
341                                 return;
342                         }
343                 }
344
345                 if ( pArgList != NULL)
346                 {
347                         pArgList->RemoveAll(true);
348                         delete pArgList;
349                 }
350         }
351
352         break;
353         case IDA_TABBAR_ITEM_2:
354         {
355                 GetHeader()->SetItemSelected(0);
356                 GetHeader()->Invalidate(true);
357
358                 SceneManager* pSceneManager = SceneManager::GetInstance();
359
360                 if (pSceneManager != null)
361                 {
362                         if(__previousSceneId.CompareTo(IDSCN_HISTORY_LIST) != 0)
363                         {
364                                 if(pSceneManager->GoForward(ForwardSceneTransition(IDSCN_HISTORY_LIST, SCENE_TRANSITION_ANIMATION_TYPE_LEFT)) != E_SUCCESS)
365                                 {
366                                         AppLogDebug("BookmarkListForm::OnActionPerformed GoForward failed");
367                                         return;
368                                 }
369                         }
370                         else
371                         {
372
373                                 if(pSceneManager->GoBackward(BackwardSceneTransition())!= E_SUCCESS)
374                                 {
375                                         AppLogDebug("BookmarkListForm::OnActionPerformed GoBackward failed");
376                                         return;
377                                 }
378
379                         }
380                 }
381         }
382         break;
383         case IDA_FOOTER_ITEM2:
384         {
385                 SceneManager* pSceneManager = SceneManager::GetInstance();
386
387                 if (pSceneManager)
388                 {
389                         if(pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER)) != E_SUCCESS)
390                         {
391                                 AppLogDebug("BookmarkListForm::OnActionPerformed GoForward failed");
392                                 return;
393                         }
394                 }
395         }
396         break;
397         case IDA_FOOTER_ITEM_ADDBOOKMARK:
398         {
399                 SceneManager* pSceneManager = SceneManager::GetInstance();
400
401                 // send array list 0-for add, 1 for edit with parent ID
402                 ArrayList* pArgList = null;
403                 pArgList = new(std::nothrow) ArrayList();
404                 if (pArgList != null)
405                 {
406                         pArgList->Construct();
407                         pArgList->Add(*new(std::nothrow) String(L"0"));
408                         pArgList->Add(*new(std::nothrow) String(__parentID));
409                 }
410
411                 if (pSceneManager)
412                 {
413                         if(pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ADD_BOOKMARK),pArgList) != E_SUCCESS)
414                         {
415                                 AppLogDebug("BookmarkListForm::OnActionPerformed GoForward failed");
416                                 pArgList->RemoveAll(true);
417                                 delete pArgList;
418                                 return;
419                         }
420                 }
421
422                 if (pArgList != null)
423                 {
424                         pArgList->RemoveAll(true);
425                         delete pArgList;
426                 }
427
428         }
429         break;
430         case IDA_BUTTON_NO:
431                 __pConfirmationPopup->SetShowState(false);
432                 __pConfirmationPopup->Show();
433                 break;
434         case IDA_BUTTON_YES:
435                 pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(__selectedindex));
436                 if ( pBookMark== null)
437                         return;
438                 bookmarkId=pBookMark->GetBookmarkId();
439                 Integer::Parse(bookmarkId,id);
440                 if (pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
441                         BookmarkPresentationModel::GetInstance()->DeleteFolder(id);
442                 else
443                         BookmarkPresentationModel::GetInstance()->DeleteBookmark(id);
444                 if (__pListview == null)
445                 {
446                         return;
447                 }
448                 AppLogDebug("__pListview GetBounds %d,%d,%d,%d",__pListview->GetBounds().x,__pListview->GetBounds().y,__pListview->GetBounds().width,__pListview->GetBounds().height);
449                 __pSearchListView->UpdateList();
450                 __pListview->UpdateList();
451
452                 if (__pListview->GetItemCount() == 0)
453                 {
454                         GetFooter()->SetItemEnabled(1,false);
455                         __pSearchBar->SetShowState(false);
456                         __pSearchBar->Invalidate(true);
457                 }
458
459                 if (__noBookmarks == true)
460                 {
461                         Bitmap* emptyListBmp = AppResource::GetInstance()->GetBitmapN(IDB_NO_CONTENT_BOOKMARK);
462                         GetFooter()->SetItemEnabled(1,false);
463                         __pSearchBar->SetShowState(false);
464                         __pSearchBar->Invalidate(true);
465                         //                      __pListview->SetBounds(__pSearchBar->GetPosition().x,__pSearchBar->GetPosition().y,__pSearchBar->GetWidth() ,GetClientAreaBounds().height);
466                         __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetPosition().y,__pSearchBar->GetWidth() ,GetClientAreaBounds().height);
467                         __pListview->SetBitmapOfEmptyList(emptyListBmp);
468                         if (emptyListBmp)
469                         {
470                                 delete emptyListBmp;
471                                 emptyListBmp = null;
472                         }
473                         __pListview->UpdateList();
474
475                 }
476                 else
477                 {
478                         GetFooter()->SetItemEnabled(1,true);
479
480                         if (__parentID.CompareTo(L"0") == 0)
481                         {
482                                 __pSearchBar->SetShowState(true);
483                                 __pSearchBar->Invalidate(true);
484                         }
485                 }
486
487                 GetFooter()->Invalidate(true);
488                 __pConfirmationPopup->SetShowState(false);
489                 __pConfirmationPopup->Show();
490                 __selectedindex = 0;
491
492                 break;
493         default:
494                 break;
495         }
496 }
497
498 void
499 BookmarkListForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
500 {
501         AppLogDebug("BrowserApplicationForm::OnFormBackRequested");
502
503         UiApp* pApp = UiApp::GetInstance();
504         if      (pApp == null)
505         {
506                 return;
507         }
508
509         if (__parentID != DEFAULT_VALUE_PARENTID)
510         {
511                 __parentID = DEFAULT_VALUE_PARENTID;
512                 __pSearchBar->SetShowState(true);
513                 __pListview->SetBounds(__pListview->GetX() ,__pSearchBar->GetPosition().y + __pSearchBar->GetHeight(),__pListview->GetWidth(),GetClientAreaBounds().height - (__pSearchBar->GetY() + __pSearchBar->GetHeight()));
514                 __pListview->UpdateList();
515                 __pFooter = GetFooter();
516                 GetFooter()->SetItemEnabled(2,true);
517                 GetFooter()->Invalidate(true);
518         }
519         else
520         {
521                 SceneManager* pSceneManager = SceneManager::GetInstance();
522                 if (pSceneManager != null)
523                 {
524                         if(__previousSceneId.CompareTo(IDSCN_HISTORY_LIST) != 0)
525                         {
526                                 pSceneManager->GoBackward(BackwardSceneTransition());
527                         }
528                         else
529                         {
530                                 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
531                         }
532                 }
533         }
534
535         if (__noBookmarks == true)
536         {
537                 GetFooter()->SetItemEnabled(1,false);
538         }
539         else
540         {
541                 GetFooter()->SetItemEnabled(1,true);
542         }
543 }
544
545 Tizen::Ui::Controls::ListItemBase*
546 BookmarkListForm::CreateItem(int index, int itemWidth)
547 {
548
549         AppLog("BookmarkListForm::CreateItem index %d , itemWidth %d",index, itemWidth);
550         AppLog("listviewwidth %d",__pListview->GetWidth());
551         result r = E_FAILURE;
552         ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
553         if(__pData == null)
554         {
555                 return null;
556         }
557         CustomItem* pItem = new(std::nothrow) CustomItem();
558
559         BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
560         Bitmap* pBitmap = null;
561         Dimension dim;
562
563         Image* pImage = null;
564         pImage = new Image();
565         pImage->Construct();
566
567         const int x_Margin_Icon = 16;                 // local as there used only in this function
568         const int y_Margin_Icon = 28;
569         const int height_Icon = 72;
570         const int width_Icon = 72 ;
571         const int x_Margin_Title = 104 ;
572         const int y_Margin_Title = 10;
573         const int width_Title = GetClientAreaBounds().width - 108 - 52 - 30;
574         const int x_Margin_Url = 104 ;
575         const int y_Margin_Url = 70 ;
576         const int width_Url = GetClientAreaBounds().width - 108 - 52 ;
577         const int height_Url = 48;
578         const int itemHeight = 128;
579         const int textSize = 32;
580         String bitmapId;
581
582         if( pBookMark == NULL )
583         {
584                 delete pItem;
585                 pItem = null;
586                 return NULL;
587         }
588         if ( pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER )
589         {
590                 r = pItem->Construct(Tizen::Graphics::Dimension(itemWidth,112), LIST_ANNEX_STYLE_DETAILED);
591                 TryCatch(!IsFailed(r),,"BookmarkListForm::CreateItem Construct failed %s",GetErrorMessage(r));
592
593                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_FOLDER_OPEN);
594                 if (pBitmap != null)
595                 {
596                         pItem->AddElement(Rectangle(x_Margin_Icon, 20, width_Icon, height_Icon), IDA_FORMAT_ICON, *pBitmap, null);
597                         delete pBitmap;
598                 }
599
600                 pItem->AddElement(Rectangle(x_Margin_Title, 26, width_Title, 60), IDA_FORMAT_FOLDER, pBookMark->GetBookmarkTitle(), true);
601
602                 if ( __pItemContextFolder != NULL)
603                 {
604                         pItem->SetContextItem(__pItemContextFolder);
605                 }
606         }
607         else
608         {
609                 r = pItem->Construct(Tizen::Graphics::Dimension(itemWidth, itemHeight), style);
610                 TryCatch( !IsFailed(r),,"BookmarkListForm::CreateItem Construct failed %s",GetErrorMessage(r));
611
612                 AppLogDebug("BookmarkListForm::faviconid %ls",pBookMark->GetFaviconId().GetPointer());
613                 bitmapId = pBookMark->GetFaviconId();
614
615                 dim = Dimension(pBookMark->GetFavIconWidth(), pBookMark->GetFavIconHeight());
616
617                 AppLog("BookmarkListForm::CreateItem check 0");
618
619                 // get fav icon bitmap
620                 ByteBuffer* pFavIconBuffer = null;
621                 pFavIconBuffer = pBookMark->GetFavIconBuffer();
622
623                 AppLog("BookmarkListForm::CreateItem check 0");
624
625                 if (pFavIconBuffer != null)
626                 {
627                         AppLog("BookmarkListForm::CreateItem pFavIconBuffer is not null");
628                 }
629                 else
630                 {
631                         AppLog("BookmarkListForm::CreateItem pFavIconBuffer is null");
632                 }
633
634                 pBitmap = pImage->DecodeN(*pFavIconBuffer, IMG_FORMAT_PNG, BITMAP_PIXEL_FORMAT_ARGB8888);
635
636                 AppLog("BookmarkListForm::CreateItem check 1");
637
638                 if (pBitmap != null)
639                 {
640                         AppLog("rahul bitmap is not null");
641                         int width = pBitmap->GetWidth();
642                         int height = pBitmap->GetHeight();
643                         AppLog("rahul bitmap width is %d", width);
644                         AppLog("rahul bitmap height is %d", height);
645                         AppLog("rahul favicon width is %d", pBookMark->GetFavIconWidth());
646                         AppLog("rahul favicon height is %d", pBookMark->GetFavIconHeight());
647                 }
648                 else
649                 {
650                         AppLog("rahul bitmap is null");
651                 }
652
653                 if (pBitmap == null)
654                 {
655                         AppLogDebug("BookmarkListForm::CreateItem bitmap is null");
656                         pBitmap = FaviconManager::GetInstance()->GetDefaultFaviconN();
657                 }
658                 pItem->AddElement(Rectangle(x_Margin_Icon, y_Margin_Icon, width_Icon, height_Icon), IDA_FORMAT_ICON, *pBitmap, null);
659                 pItem->AddElement(Rectangle(x_Margin_Title, 0, width_Title, itemHeight - height_Url), IDA_FORMAT_SITE, pBookMark->GetBookmarkTitle(),44,CUSTOM_COLOR_TRANSPARENT,CUSTOM_COLOR_TRANSPARENT,CUSTOM_COLOR_TRANSPARENT,true);
660                 if(__pSearchBar->GetMode() == SEARCH_BAR_MODE_INPUT)
661                         pItem->AddElement(Rectangle(x_Margin_Url, y_Margin_Url, width_Url, height_Url), IDA_FORMAT_URL, pBookMark->GetUrl(),textSize,CUSTOM_COLOR_TRANSPARENT,CUSTOM_COLOR_TRANSPARENT,CUSTOM_COLOR_TRANSPARENT,true);
662                 else
663                         pItem->AddElement(Rectangle(x_Margin_Url, y_Margin_Url, width_Url, height_Url), IDA_FORMAT_URL, pBookMark->GetUrl(),textSize,CUSTOM_COLOR_GREY,CUSTOM_COLOR_GREY,CUSTOM_COLOR_GREY,true);
664
665                 if (pBitmap != null)
666                 {
667                         delete pBitmap;
668                 }
669                 if ( __pItemContextSite != NULL)
670                 {
671                         pItem->SetContextItem(__pItemContextSite);
672                 }
673         }
674
675         delete pImage;
676         return pItem;
677
678         CATCH:
679
680         delete pImage;
681         delete pItem;
682         pItem = null;
683         return null;
684
685 }
686
687 bool
688 BookmarkListForm::DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth)
689 {
690         delete pItem;
691         pItem = null;
692         return true;
693 }
694
695 int
696 BookmarkListForm::GetItemCount(void)
697 {
698         int count = 0;
699
700         if (__pData != NULL )
701         {
702                 __pData->RemoveAll(true);
703                 delete __pData;
704                 __pData = null;
705         }
706         __pData = new(std::nothrow) Collection::ArrayList();
707         __pData->Construct();
708
709         if (__searchBookmark == false)
710         {
711                 BookmarkPresentationModel::GetInstance()->GetFolderBookmarkCount(__parentID, count);
712                 BookmarkPresentationModel::GetInstance()->GetFoldersBookmarks(__parentID, 0, count, *__pData);
713         }
714         else
715         {
716                 BookmarkPresentationModel::GetInstance()->GetSearchFolderBookmarkCount(count,__searchText);
717                 BookmarkPresentationModel::GetInstance()->GetSearchFoldersBookmarks(0, count, *__pData, __searchText);
718         }
719
720         AppLogDebug("Count = %d parentId = %ls", count, __parentID.GetPointer());
721
722         if (count <= 0)
723         {
724                 __noBookmarks = true;
725                 GetFooter()->SetItemEnabled(1,false);
726         }
727         else
728         {
729                 __noBookmarks = false;
730                 GetFooter()->SetItemEnabled(1,true);
731         }
732
733         AppLogDebug("Result: %s", GetErrorMessage(GetLastResult()));
734         GetFooter()->Invalidate(true);
735         if (__pData != null && __pData->GetCount() >= 1)
736         {
737                 //              __pSearchBar->SetMode(SEARCH_BAR_MODE_NORMAL);
738                 __pSearchBar->SetShowState(true);
739                 __pSearchBar->Invalidate(true);
740         }
741         else if (__searchBookmark == false)
742         {
743                 __pSearchBar->SetShowState(false);
744                 __pSearchBar->Invalidate(true);
745         }
746
747         if (__parentID.CompareTo(L"0") != 0)
748         {
749                 __pSearchBar->SetShowState(false);
750                 __pSearchBar->Invalidate(true);
751         }
752         if (__noBookmarks == true)
753         {
754                 __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetPosition().y,__pSearchBar->GetWidth() ,GetClientAreaBounds().height);
755                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_NO_CONTENT_BOOKMARK);
756
757                 if ( pBitmap != NULL)
758                 {
759                         __pListview->SetBitmapOfEmptyList(pBitmap);
760                         delete pBitmap;
761                 }
762         }
763         else
764         {
765                 if (__parentID.CompareTo(L"0") == 0)
766                 {
767                         __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetHeight(),GetClientAreaBounds().width ,GetClientAreaBounds().height - __pSearchBar->GetY() - __pSearchBar->GetHeight());
768                 }
769                 else
770                 {
771                         __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetY(),__pSearchBar->GetWidth() ,GetClientAreaBounds().height);
772
773                 }
774
775         }
776         __pListview->Invalidate(true);
777         return count;
778
779 }
780
781 void
782 BookmarkListForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status)
783 {
784         AppLogDebug("BookmarkListForm::OnListViewContextItemStateChanged int index %d, int elementId %d, Tizen::Ui::Controls::ListContextItemStatus status %d",index,elementId,status);
785
786         String deleteText = CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB");
787         deleteText.Append(L"? ");
788         int timeOut = 25000;
789         result r = E_SUCCESS;
790
791         switch(elementId)
792         {
793         case IDA_CONTEXT_ITEM_FOLDER_EDIT:
794         {
795                 ArrayList* pArgList = null;
796                 String* pEdit = null;
797
798                 SceneManager* pSceneManager = SceneManager::GetInstance();
799                 BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
800                 if (pBookMark != null && pBookMark->GetBookmarkType() == BOOKMARK_TYPE_FOLDER)
801                 {
802                         pArgList = new(std::nothrow) ArrayList();
803                         if (pArgList != null)
804                         {
805                                 pEdit= new(std::nothrow) String(CommonUtil::GetString(L"IDS_BR_HEADER_EDIT_FOLDER"));
806                                 pArgList->Construct();
807                                 pArgList->Add(*new(std::nothrow) BookmarkData(*pBookMark));
808                                 pArgList->Add(*pEdit);
809                                 if (    pSceneManager != null)
810                                 {
811                                         result r;
812                                         r = pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER), pArgList);
813                                 }
814
815                                 if (pArgList != null)
816                                 {
817                                         delete pArgList;
818                                         pArgList = null;
819                                 }
820                                 if(IsFailed(r))
821                                 {
822                                         AppLogDebug("BookmarkListForm::OnListViewContextItemStateChanged GoForward failed %s",GetErrorMessage(r));
823                                         return;
824                                 }
825                         }
826                 }
827
828         }
829         break;
830
831         case IDA_CONTEXT_ITEM_FOLDER_DELETE:
832         case IDA_CONTEXT_ITEM_DELETE:
833         {
834                 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
835                 __pConfirmationPopup->Initialize();
836                 __pConfirmationPopup->RemoveActionListener(*this);
837                 __pConfirmationPopup->AddActionListener(*this);
838                 __pConfirmationPopup->setMessage(deleteText);
839                 __pConfirmationPopup->Show();
840                 __selectedindex = index;
841         }
842         break;
843
844         case IDA_CONTEXT_ITEM_EDIT:
845         {
846                 ArrayList* pArgList = null;
847                 SceneManager* pSceneManager = SceneManager::GetInstance();
848                 BookmarkData* pBookMark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
849                 if (pBookMark!= null && pBookMark->GetBookmarkType() == BOOKMARK_TYPE_URL)
850                 {
851                         AppLogDebug("ID_CONTEXT_ITEM_SITE_1 BOOKMARK_TYPE_URL");
852                         pArgList = new(std::nothrow) ArrayList();
853                         if (pArgList != null)
854                         {
855                                 pArgList->Construct();
856                                 pArgList->Add(*new(std::nothrow) String(L"1"));
857                                 pArgList->Add(*new(std::nothrow) BookmarkData(*pBookMark));
858                                 if (    pSceneManager != null)
859                                 {
860                                         result r;
861                                         r = pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ADD_BOOKMARK), pArgList);
862                                         if (pArgList != null)
863                                         {
864                                                 delete pArgList;
865                                                 pArgList = null;
866                                         }
867                                         if(IsFailed(r))
868                                         {
869                                                 AppLogDebug("BookmarkListForm::OnListViewContextItemStateChanged GoForward failed %s",GetErrorMessage(r));
870                                                 return;
871                                         }
872                                 }
873                         }
874                 }
875         }
876         break;
877         case IDA_CONTEXT_ITEM_SHARE:
878         {
879                 AppLogDebug("OnListViewContextItemStateChanged Share");
880
881                 BookmarkData* pBookmark = dynamic_cast<BookmarkData*>(__pData->GetAt(index));
882                 if (pBookmark != null)
883                 {
884                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
885                         pShareInfo->SetPageTitle(pBookmark->GetBookmarkTitle());
886                         pShareInfo->SetPageUrl(pBookmark->GetUrl());
887                         pShareInfo->SetImageAttached(false);
888                         __pPopUp->RemoveAllShareInfo();
889                         __pPopUp->AddShareInfo(pShareInfo);
890                 }
891
892                 if (__pPopUp != null)
893                 {
894                         __pPopUp->SetShowState(true);
895                         __pPopUp->Show();
896                 }
897         }
898         break;
899         default:
900                 break;
901         }
902
903 }
904
905 void
906 BookmarkListForm::OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
907 {
908
909 }
910
911 void
912 BookmarkListForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status)
913 {
914         AppLogDebug("BookmarkListForm::OnListViewItemStateChanged");
915
916         result r = E_FAILURE;
917         ArrayList *pArgList = null;
918         SceneManager* pSceneManager = SceneManager::GetInstance();
919         BookmarkData* pBookmark = dynamic_cast< BookmarkData* >(__pData->GetAt(index));
920
921         if ( pBookmark == NULL )
922         {
923                 return;
924         }
925
926         switch (pBookmark->GetBookmarkType())
927         {
928         case BOOKMARK_TYPE_FOLDER:
929
930                 __parentID = pBookmark->GetBookmarkId();
931                 AppLogDebug("BOOKMARK_TYPE_FOLDER parent ID is %ls",__parentID.GetPointer());
932
933                 listView.UpdateList();
934                 if (listView.GetItemCount() == 0)
935                 {
936                         GetFooter()->SetItemEnabled(1,false);
937                 }
938                 else
939                 {
940                         GetFooter()->SetItemEnabled(1,true);
941                 }
942                 GetFooter()->SetItemEnabled(2,false);
943                 GetFooter()->Invalidate(true);
944                 __pSearchBar->HideKeypad();
945                 __pSearchBar->SetMode(SEARCH_BAR_MODE_NORMAL);
946                 __pSearchBar->SetShowState(false);
947                 __pSearchBar->Invalidate(true);
948                 __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetY(),__pListview->GetWidth() ,GetClientAreaBounds().height);
949                 break;
950
951         case BOOKMARK_TYPE_URL:
952
953                 pArgList = new(std::nothrow) ArrayList();
954                 if (pArgList != null)
955                 {
956                         r = pArgList->Construct();
957                         TryCatch(!IsFailed(r), L"BookmarkListForm::OnListViewItemStateChanged pArgList Construct failed %s", GetErrorMessage(r));
958
959                         AppLogDebug("bookmark url = %ls",pBookmark->GetUrl().GetPointer());
960                         r = pArgList->Add(*MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo());
961                         pArgList->Add(*new(std::nothrow) String(pBookmark->GetUrl()));
962
963                         if (pSceneManager != null)
964                         {
965                                 AppLogDebug("pSceneManager exists");
966                                 String prevSceneId;
967                                 MultipleWindowPresentationModel::GetInstance()->GetCurrentSceneId(prevSceneId);
968                                 r = pSceneManager->GoBackward(BackwardSceneTransition(prevSceneId), pArgList);
969                                 TryCatch(!IsFailed(r), L"BookmarkListForm::OnListViewItemStateChanged pArgList Construct failed %s", GetErrorMessage(r));
970                         }
971                         delete pArgList;
972                 }
973                 break;
974
975         default:
976                 break;
977         }
978
979         return;
980         CATCH:
981         if(pArgList)
982         {
983                 pArgList->RemoveAll(true);
984                 delete pArgList;
985         }
986
987 }
988
989 void
990 BookmarkListForm::OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction)
991 {
992
993
994 }
995
996 void
997 BookmarkListForm::OnFastScrollIndexSelected(Tizen::Ui::Control& source, Tizen::Base::String& index)
998 {
999
1000 }
1001
1002 void
1003 BookmarkListForm::OnSearchBarModeChanged(Tizen::Ui::Controls::SearchBar& source, Tizen::Ui::Controls::SearchBarMode mode)
1004 {
1005         result r = E_FAILURE;
1006
1007         if (mode == SEARCH_BAR_MODE_NORMAL)
1008         {
1009                 __pSearchListView->SetShowState(false);
1010                 __pSearchListView->UpdateList();
1011                 __pListview->SetShowState(true);
1012                 Invalidate(true);
1013                 __searchBookmark = false;
1014                 r = __pListview->UpdateList();
1015                 __pSearchListView->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height -__pSearchBar->GetHeight());
1016                 __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), __pSearchListView->GetHeight()));
1017                 TryCatch( !IsFailed(r),,"BookmarkListForm::OnSearchBarModeChanged Update list failed %s",GetErrorMessage(r));
1018                 CATCH:return;
1019         }
1020         else
1021         {
1022                 __pSearchListView->SetShowState(true);
1023                 __pSearchListView->SetEnabled(false);
1024                 __pListview->SetShowState(false);
1025
1026                 if(__pSearchBar)
1027                 {
1028                         __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), __pSearchListView->GetHeight()));
1029                         __pSearchBar->SetText(L"");
1030                 }
1031                 AppLog("OnSearchBarModeChanged SetContentAreaSize heihgt %d",__pSearchListView->GetHeight());
1032                  __pListview->UpdateList();
1033                 __pSearchListView->UpdateList();
1034         }
1035 }
1036
1037 void
1038 BookmarkListForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
1039 {
1040         GetFooter()->SetShowState(false);
1041         __pSearchListView->SetBounds(__pSearchListView->GetX(), __pSearchListView->GetY(), __pSearchListView->GetWidth(), __pSearchListView->GetHeight() + GetFooter()->GetHeight());
1042         __pSearchListView->SetEnabled(false);
1043         __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), __pSearchListView->GetHeight()));
1044         Invalidate(true);
1045         __pSearchListView->SetBounds(__pSearchListView->GetX(), __pSearchListView->GetY(), __pSearchListView->GetWidth(), __pSearchListView->GetHeight() - GetFooter()->GetHeight());
1046 }
1047
1048 void
1049 BookmarkListForm::OnKeypadOpened(Tizen::Ui::Control& source)
1050 {
1051         GetFooter()->SetShowState(false);
1052         __pSearchListView->UpdateList();
1053         Invalidate(true);
1054 }
1055
1056 void
1057 BookmarkListForm::OnKeypadClosed(Tizen::Ui::Control& source)
1058 {
1059
1060         GetFooter()->SetShowState(true);
1061         GetFooter()->Invalidate(true);
1062         __pSearchListView->SetBounds(__pSearchListView->GetX(), __pSearchListView->GetY(), __pSearchListView->GetWidth(), GetClientAreaBounds().height - __pSearchBar->GetHeight());
1063         __pListview->SetBounds(__pSearchListView->GetX(), __pSearchBar->GetY() + __pSearchBar->GetHeight(), __pSearchListView->GetWidth(), GetClientAreaBounds().height - __pSearchBar->GetHeight());
1064         __pSearchListView->Invalidate(false);
1065         __pSearchListView->SetEnabled(true);
1066         __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), GetClientAreaBounds().height - __pSearchBar->GetHeight()));
1067         Invalidate(true);
1068 }
1069
1070 void
1071 BookmarkListForm::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
1072 {
1073         AppLog("BookmarkListForm::OnKeypadActionPerformed %d",keypadAction);
1074
1075         if (__pSearchBar != null)
1076         {
1077                 __pSearchBar->HideKeypad();
1078         }
1079
1080         if ( __pSearchBar != null && keypadAction == KEYPAD_ACTION_SEARCH)
1081         {
1082                 if (__pSearchBar->GetText().GetLength() == 0)
1083                 {
1084                         return;
1085                 }
1086
1087                 __searchText = __pSearchBar->GetText();
1088                 __searchBookmark = true;
1089                 __pListview->SetShowState(false);
1090                 __pSearchListView->SetEnabled(true);
1091                 __pSearchListView->SetShowState(true);
1092                 __pSearchListView->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height -__pSearchBar->GetHeight());
1093                 __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), __pSearchListView->GetHeight()));
1094                 __pSearchListView->UpdateList();
1095
1096         }
1097         Invalidate(true);
1098 }
1099
1100 void
1101 BookmarkListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
1102 {
1103         AppLogDebug("BookmarkListForm::OnSceneActivatedN called");
1104         ArrayListT<String> * pList = dynamic_cast<ArrayListT<String>* >(SceneManager::GetInstance()->GetSceneHistoryN());
1105         if(pList != null)
1106         {
1107                 pList->GetAt(pList->GetCount()-1,__previousSceneId);
1108         }
1109
1110         __searchBookmark = false;
1111         GetFooter()->SetShowState(true);
1112         GetFooter()->Invalidate(true);
1113         GetHeader()->SetItemSelected(0);
1114         GetHeader()->Invalidate(true);
1115
1116         /*      if (previousSceneId != IDSCN_HISTORY_LIST && previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER && previousSceneId != IDSCN_EDIT_BOOKMARK_LIST)
1117         {
1118                 __previousSceneId = previousSceneId;
1119         }*/
1120
1121         if (__pListview != null)
1122         {
1123                 __pListview->UpdateList();
1124         }
1125
1126         return;
1127 }
1128
1129 void
1130 BookmarkListForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
1131 {
1132         AppLog("BookmarkListForm::OnOrientationChanged start");
1133
1134         if (__pListview)
1135         {
1136                 if(__pSearchBar->GetShowState())
1137                 {
1138                         __pListview->SetBounds(__pListview->GetX(),__pSearchBar->GetHeight(),GetClientAreaBounds().width ,GetClientAreaBounds().height - __pSearchBar->GetY() - __pSearchBar->GetHeight());
1139                 }
1140                 else
1141                 {
1142                         __pListview->SetBounds(__pListview->GetX(),0,GetClientAreaBounds().width ,GetClientAreaBounds().height);
1143                 }
1144                 __pListview->UpdateList();
1145         }
1146
1147         if (__pSearchListView && __pListview)
1148         {
1149                 AppLog("__pListview->GetBounds() %d, %d, %d, %d",__pListview->GetBounds().x,__pListview->GetBounds().y,__pListview->GetBounds().width,__pListview->GetBounds().height);
1150                 __pSearchListView->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height -__pSearchBar->GetHeight());
1151
1152                 __pSearchListView->UpdateList();
1153         }
1154
1155         if (__pSearchListView && __pData != null )
1156         {
1157                 if (__parentID != DEFAULT_VALUE_PARENTID)
1158                 {
1159                         AppLog("BookmarkListForm::OnOrientationChanged parent id true");
1160                         __pSearchBar->SetShowState(false);
1161                         __pSearchBar->Invalidate(true);
1162                 }
1163
1164                 __pSearchBar->SetContentAreaSize(Dimension(__pSearchListView->GetWidth(), GetClientAreaBounds().height));
1165         }
1166
1167
1168         Invalidate(true);
1169 }
1170
1171 void
1172 BookmarkListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
1173 {
1174         if (__pData != null)
1175         {
1176                 __pData->RemoveAll(true);
1177                 delete __pData;
1178                 __pData = null;
1179         }
1180         __pSearchBar->SetMode(SEARCH_BAR_MODE_NORMAL);
1181         return;
1182 }
1183