d5234ed84ab4b7377884ac997eabef25847e4ff3
[apps/osp/Internet.git] / src / IntAddressbar.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
18 /*@file:    IntAddressbar
19  *@brief:       This class defines common behaviour of Addressbar control.
20  *
21  */
22 #include "IntAddressbar.h"
23 #include "IntCommonLib.h"
24 #include "IntTypes.h"
25 #include "IntMultipleWindowPresentationModel.h"
26 #include "IntSettingPresentationModel.h"
27 #include "IntMultipleWindowPresentationModel.h"
28
29 using namespace Tizen::App;
30 using namespace Tizen::Base;
31 using namespace Tizen::Graphics;
32 using namespace Tizen::System;
33 using namespace Tizen::Ui;
34 using namespace Tizen::Ui::Controls;
35
36 static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.9.png";
37 static const wchar_t* IDB_TITLE_PROGRESS_BAR_BG = L"I01_title_progress_bar_bg.png";
38 static const wchar_t* IDB_TITLE_PROGRESS_BAR = L"I01_title_progress_bar.png";
39 static const wchar_t* IDB_ICON_PRIVATE = L"I01_icon_private.png";
40
41 //Action IDs
42
43 const int Addressbar::IDA_STOP_BTN_CLICKED = 103;
44 const int Addressbar::IDA_GO_BACK = 104;
45 const int Addressbar::IDA_GO_FORWARD = 105;
46 const int Addressbar::IDA_CANCEL = 106;
47 const int Addressbar::IDA_CLEAR_URL = 107;
48
49 Addressbar::Addressbar(void)
50 {
51         //__currentAddMode = ADDRESSBAR_MODE_LOADING_COMPLETE;
52         __displayUrl = L"";
53 //      __editTextUrl = L"";
54         __isLoadingData = false;
55         __isLoadingCompleted = false;
56         __progressPercentage = 0;
57         __pAddressbarBg = null;
58         __pBgPanel = null;
59         __pFavIcon = FaviconManager::GetInstance()->GetDefaultFaviconN();
60         __pFaviconLabel = null;
61         __pLabelPrivateOn = null;
62         __pListener = null;
63         __pPrivateIconLabel = null;
64         __pProgressbarLabel = null;
65         __pPrivateIconLabel = null ;
66         __pClearBtn = null ;
67         __pSearchLabel = null;
68         __pAddressbarUrlField = null;
69         __pToolBarLabel = null;
70         __pAddressbarURLLabel = null;
71         __pAddressBackBtn = null;
72         __isClipboardOpen = false;
73         __isKeyboardConnected = false;
74         __isKeyPadOpened = false;
75         __isAppBackGround = false;
76 }
77
78 Addressbar::~Addressbar(void)
79 {
80         if (__pFavIcon != null)
81         {
82                 delete __pFavIcon;
83                 __pFavIcon = null;
84         }
85 }
86
87 result
88 Addressbar::OnTerminating(void)
89 {
90         DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_USB_CLIENT, *this);
91         return E_SUCCESS;
92 }
93
94 result
95 Addressbar::Initialize(const Rectangle& rect)
96 {
97         result r = E_SUCCESS;
98
99         AppLogDebug("Addressbar::Initialize entered");
100         //Construct the base first
101         r = Construct(L"IDL_ADDRESSBAR");
102
103         //Add background label
104         Label* pBgLabel = static_cast<Label*> (GetControl(L"IDC_BG_LABEL",true));
105         if (pBgLabel == NULL)
106         {
107                 AppLogDebug("Control not found returning E_INVALID_KEY");
108                 return E_INVALID_KEY;
109         }
110
111         //Add inner panel for border
112         __pBgPanel = static_cast<Panel*> (GetControl(L"IDC_BG_PANEL",true));
113         if (__pBgPanel == NULL)
114         {
115                 AppLogDebug("Control not found returning E_INVALID_KEY");
116                 return E_INVALID_KEY;
117         }
118
119         __pAddressbarBg = static_cast<Label*> (GetControl(L"IDC_ADDRESSBAR_BG_LABEL",true));
120         if (__pAddressbarBg == NULL)
121         {
122                 AppLogDebug("Control not found returning E_INVALID_KEY");
123                 return E_INVALID_KEY;
124         }
125         __pBgPanel->SetBackgroundColor(CUSTOM_COLOR_TRANSPARENT);
126         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pAddressbarBg->GetWidth(), __pAddressbarBg->GetHeight());
127         if (pBitmap != null)
128         {
129                 __pAddressbarBg->SetBackgroundBitmap(*pBitmap);
130                 delete pBitmap;
131         }
132
133         __pClearBtn = static_cast<Button*> (GetControl(L"IDC_CLEAR_BUTTON",true));
134         if (__pClearBtn == NULL)
135         {
136                 AppLogDebug("Control not found returning E_INVALID_KEY");
137                 return E_INVALID_KEY;
138         }
139         __pClearBtn->SetActionId(IDA_CLEAR_URL);
140         __pClearBtn->AddActionEventListener(*this);
141         __pClearBtn->SetShowState(true);
142         __pClearBtn->SetFocusable(true);
143
144         //Add the editfield for url
145         __pAddressbarUrlField =  static_cast<EditField*> (GetControl(L"IDC_URL_EDITFIELD",true));
146         if (__pAddressbarUrlField == NULL)
147         {
148                 AppLogDebug("Control not found returning E_INVALID_KEY");
149                 return E_INVALID_KEY;
150         }
151
152         __pAddressbarUrlField->SetOverlayKeypadCommandButtonVisible(false);
153         __pAddressbarUrlField->SetKeypadAction(KEYPAD_ACTION_GO);
154         __pAddressbarUrlField->AddFocusEventListener(*this);
155         __pAddressbarUrlField->AddTextEventListener(*this);
156         if(__pAddressbarUrlField->GetTextLength() == 0)
157         {
158                 __pAddressbarUrlField->SetKeypadActionEnabled(false);
159         }
160         else
161         {
162                 __pAddressbarUrlField->SetKeypadActionEnabled(true);
163         }
164
165         __pToolBarLabel = static_cast<Label*> (GetControl(L"IDC_TOOLBAR_LABEL",true));
166         if (__pToolBarLabel == NULL)
167         {
168                 AppLogDebug("Control not found returning E_INVALID_KEY");
169                 return E_INVALID_KEY;
170         }
171         __pToolBarLabel->SetShowState(true);
172
173         __pAddressbarURLLabel = static_cast<Label*> (GetControl(L"IDC_URL_LABEL",true));
174         if (__pAddressbarURLLabel == NULL)
175         {
176                 AppLogDebug("__pURLLabel Control not found returning E_INVALID_KEY");
177                 return E_INVALID_KEY;
178         }
179         __pAddressbarURLLabel->SetShowState(true);
180
181         __pAddressBackBtn = static_cast<Button*> (GetControl(L"IDC_ADDRESS_BACK_BUTTON",true));
182         if (__pAddressBackBtn == NULL)
183         {
184                 AppLogDebug("__pAddressBackBtn Control not found returning E_INVALID_KEY");
185                 return E_INVALID_KEY;
186         }
187         __pAddressBackBtn->SetActionId(IDA_CANCEL);
188         __pAddressBackBtn->AddActionEventListener(*this);
189         __pAddressBackBtn->SetShowState(true);
190         //IDC_ADDRESS_BACK_BUTTON
191
192         // Added to get the favorite url if not set then address bar is about blank
193
194         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
195         {
196                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
197         }
198         else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
199         {
200                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
201         }
202         else
203         {
204                 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
205                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
206         }
207         __pAddressbarUrlField->AddKeypadEventListener(*this);
208
209         r = DeviceManager::AddDeviceEventListener(DEVICE_TYPE_USB_CLIENT,*this);
210         AppLog("1234:: DeviceManager::AddDeviceEventListener result %s",GetErrorMessage(r));
211         AppLogDebug("Addressbar::Initialize exit");
212         return r;
213 }
214
215 void
216 Addressbar::UpdateProgressBitmap(void)
217 {
218         result r = E_SUCCESS;
219         if (__pProgressbarLabel == null)
220                 return;
221         int w = __pProgressbarLabel->GetWidth();
222         int h = __pProgressbarLabel->GetHeight();
223         Canvas canvas;
224         int progressWidth = 0;
225         Bitmap* pRetBitmap = null;
226
227         if (__progressPercentage == 0 || __progressPercentage == 100)
228         {
229                 __pProgressbarLabel->SetShowState(false);
230                 __pProgressbarLabel->Invalidate(false);
231                 return;
232         }
233         else
234         {
235                 __pProgressbarLabel->SetShowState(true);
236                 __pProgressbarLabel->Invalidate(false);
237         }
238
239         r = canvas.Construct(Rectangle(0, 0, w, h));
240
241         if (r != E_SUCCESS)
242         {
243                 AppLogException("Canvas construction failed with %s", GetErrorMessage(r));
244                 return;
245         }
246
247         canvas.Clear();
248         Bitmap *pBgBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR_BG);
249
250         if (pBgBmp != null)
251         {
252                 pBgBmp->Scale(Dimension(w, h));
253                 canvas.DrawBitmap(Point(0,0), *pBgBmp);
254                 delete pBgBmp;
255         }
256
257         progressWidth = (double) (w) * __progressPercentage / 100;
258         AppLogDebug("progressWidth: %d", progressWidth);
259         Bitmap *pProgressBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR);
260
261         if (pProgressBmp != null)
262         {
263                 pProgressBmp->Scale(Dimension(progressWidth, h));
264                 canvas.DrawBitmap(Point(0,0), *pProgressBmp);
265                 delete pProgressBmp;
266         }
267
268         pRetBitmap = new (std::nothrow) Bitmap();
269
270         if (pRetBitmap == null)
271         {
272                 AppLogException("Bitmap creation failed with %s", GetErrorMessage(r));
273                 return;
274         }
275
276         pRetBitmap->Construct(canvas, canvas.GetBounds());
277
278         if (__pProgressbarLabel != null && pRetBitmap != null)
279         {
280                 __pProgressbarLabel->SetBackgroundBitmap(*pRetBitmap);
281                 __pProgressbarLabel->Invalidate(false);
282         }
283
284
285         if (pRetBitmap != null)
286         {
287                 delete pRetBitmap;
288                 pRetBitmap = null;
289         }
290         return;
291 }
292
293 void
294 Addressbar::ResetGuideText(void)
295 {
296         AppLog("Addressbar::ResetGuideText called");
297
298         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
299         {
300                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
301         }
302         else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
303         {
304                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
305         }
306         else
307         {
308                 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
309                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
310         }
311         __pAddressbarUrlField->Invalidate(true);
312 }
313
314 void
315 Addressbar::SetUrl(const String& url)
316 {
317         __displayUrl = url;
318         String updatedDisplayUrl;
319         updatedDisplayUrl.Clear();
320
321         if (__pAddressbarUrlField != NULL)
322         {
323                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
324                 if (removedHttpUrl.IsEmpty() == false)
325                 {
326                         __pAddressbarUrlField->SetText(removedHttpUrl);
327                 }
328                 else
329                 {
330                         __pAddressbarUrlField->SetText(__displayUrl);
331                 }
332
333                 __pAddressbarUrlField->Invalidate(false);
334                 __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
335         }
336 }
337
338 String
339 Addressbar::GetUrl(void)
340 {
341         return __displayUrl;
342 }
343
344 void
345 Addressbar::SetFaviconBitmap(const Tizen::Graphics::Bitmap& favicon)
346 {
347
348         String url =__pAddressbarUrlField->GetText();
349         String secureSiteText = "https://";
350         bool flag = false;
351         flag = url.StartsWith(secureSiteText,0);
352
353         if (__pFavIcon != null)
354         {
355                 delete __pFavIcon;
356         }
357
358         __pFavIcon = new(std::nothrow) Bitmap();
359         __pFavIcon->Construct(favicon,Rectangle(0,0,favicon.GetWidth(),favicon.GetHeight()));
360 }
361
362 void Addressbar::SaveAddressbarEditText()
363 {
364 //      __editTextUrl = __pAddressbarUrlField->GetText();
365 }
366
367 void
368 Addressbar::UpdateFaviconBitmap(bool isPrivateOn)
369 {
370
371         String url =__pAddressbarUrlField->GetText();
372         String secureSiteText = "https://";
373         bool flag = false;
374         flag = url.StartsWith(secureSiteText,0);
375
376         __pAddressbarBg->Invalidate(true);
377 }
378
379 void
380 Addressbar::SetForwardButtonEnabled(bool isEnabled)
381 {
382 }
383
384 void
385 Addressbar::SetBackButtonEnabled(bool isEnabled)
386 {
387 }
388
389 void
390 Addressbar::SetAddressbarEventListener(IAddressbarEventListener* plistener)
391 {
392         __pListener = plistener;
393 }
394
395 void
396 Addressbar::UpdateProgress(int percentage)
397 {
398         __progressPercentage = percentage;
399         if (percentage == 0 || percentage == 100)
400         {
401                 __isLoadingData = false;
402                 if (percentage == 100)
403                 {
404                         __isLoadingCompleted = true;
405                         __progressPercentage = 0;
406                 }
407                 else
408                 {
409                         __isLoadingCompleted = false;
410                 }
411         }
412         else
413         {
414                 __isLoadingData = true;
415         }
416         UpdateProgressBitmap();
417 }
418
419 int
420 Addressbar::GetProgress(void)
421 {
422         return __progressPercentage;
423 }
424
425 void
426 Addressbar::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
427 {
428         AppLogDebug("Addressbar::OnActionPerformed action %d",actionId);
429
430         switch (actionId)
431         {
432         case IDA_CANCEL:
433         {
434 //              __pAddressbarUrlField->HideKeypad();
435                 __pListener->OnAddressCancelledClicked(*this);
436                 //SetAddressbarMode(ADDRESSBAR_MODE_LOADING_COMPLETE);
437         }
438         break;
439
440         case IDA_CLEAR_URL:
441         {
442                 if (__pAddressbarUrlField->GetText().IsEmpty() == false)
443                 {
444                         //__displayUrl = __pUrlField->GetText();
445                         __pAddressbarUrlField->Clear();
446                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
447                         __pAddressbarUrlField->Invalidate(true);
448                 }
449         }
450         break;
451         default:
452                 break;
453         }
454 }
455
456 void
457 Addressbar::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
458 {
459         AppLog("XYZ::Addressbar::OnKeypadActionPerformed keypadAction %d",keypadAction);
460         switch (keypadAction)
461         {
462         case KEYPAD_ACTION_GO:
463         case KEYPAD_ACTION_ENTER:
464         case KEYPAD_ACTION_SEND:
465         {
466                 if (__pAddressbarUrlField->GetText().IsEmpty() == false)
467                 {
468                         //SetAddressbarMode(ADDRESSBAR_MODE_LOADING);
469                         __displayUrl = __pAddressbarUrlField->GetText();
470
471                         __isLoadingCompleted = false;
472                         __isLoadingData = true;
473                         __progressPercentage = 0;
474                         __pAddressbarUrlField->HideKeypad();
475
476                         if (__pListener != NULL)
477                         {
478                                 __pListener->OnUrlSubmitted(*this);
479                         }
480
481                         //UpdateProgressBitmap();
482                 }
483         }
484         break;
485
486         default:
487                 break;
488         }
489 }
490
491 void
492 Addressbar::OnKeypadClosed(Tizen::Ui::Control& source)
493 {
494         AppLog("XYZ::Addressbar::OnKeypadClosed");
495
496         __isKeyPadOpened = false;
497
498         if (__isKeyboardConnected == true)
499         {
500                 return;
501         }
502         if (__isClipboardOpen == true)
503         {
504                 __isClipboardOpen = false;
505                 __pListener->OnClipboardClosed(*this);
506                 return;
507         }
508
509
510 //      if(__pAddressbarUrlField)
511 //      {
512 //              String removedHttpUrl = RemoveHttpTextFromDisplayURL();
513 //              if (removedHttpUrl.IsEmpty() == false)
514 //              {
515 //                      __pAddressbarUrlField->SetText(removedHttpUrl);
516 //              }
517 //              else
518 //              {
519 //                      __pAddressbarUrlField->SetText(__displayUrl);
520 //              }
521 //      }
522 //      __editTextUrl = L"";
523         if(__pListener != null)
524         {
525                 __pListener->OnAddressBarKeypadClosed(*this,true);
526         }
527 }
528
529 void
530 Addressbar::OnKeypadOpened(Tizen::Ui::Control& source)
531 {
532         AppLog("XYZ::Addressbar::OnKeypadOpened");
533         AppLog("Addressbar::OnKeypadOpened %d",Clipboard::GetInstance()->IsPopupVisible());
534
535         __isKeyPadOpened = true;
536
537         __isClipboardOpen = Clipboard::GetInstance()->IsPopupVisible();
538
539         if(__pListener != null)
540         {
541                 __pListener->OnAddressBarKeypadOpened(*this);
542         }
543 }
544
545 void
546 Addressbar::OnKeypadWillOpen(Tizen::Ui::Control& source)
547 {
548         AppLog("XYZ::Addressbar::OnKeypadWillOpen");
549
550 }
551
552 void
553 Addressbar::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
554 {
555         AppLog("XYZ::KeypadBoundsChanged");
556
557         if(__pListener != null)
558         {
559                 __pListener->OnAddressBarKeypadBoundsChanged(*this);
560         }
561 }
562
563 void
564 Addressbar::OrientationChanged( int& width)
565 {
566        int gap = 10;
567         __pBgPanel->SetBounds(__pBgPanel->GetX(),__pBgPanel->GetY(), width - __pAddressBackBtn->GetWidth() - gap -__pBgPanel->GetX() ,__pBgPanel->GetHeight());
568         __pAddressBackBtn->SetBounds(width - __pAddressBackBtn->GetWidth() - 6,__pAddressBackBtn->GetY(),__pAddressBackBtn->GetWidth(),__pAddressBackBtn->GetHeight());
569         __pClearBtn->SetBounds(__pBgPanel->GetWidth() - __pClearBtn->GetWidth() ,__pClearBtn->GetY(),__pClearBtn->GetWidth(),__pClearBtn->GetHeight());
570
571         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pAddressbarBg->GetWidth(), __pAddressbarBg->GetHeight());
572         if (pBitmap != null)
573         {
574                 __pAddressbarBg->SetBackgroundBitmap(*pBitmap);
575                 delete pBitmap;
576         }
577
578         Invalidate(true);
579 }
580
581 String
582 Addressbar::RemoveHttpTextFromDisplayURL(void)
583 {
584         bool isHttpText = __displayUrl.Contains(L"http://");
585         String updatedDisplayUrl;
586         updatedDisplayUrl.Clear();
587
588         if (isHttpText == true)
589         {
590                 __displayUrl.SubString(7,updatedDisplayUrl);
591         }
592         return updatedDisplayUrl;
593 }
594
595 Bitmap*
596 Addressbar::GetLockedImageN(void)
597 {
598         Bitmap* pIconImage = null;
599
600         AppResource* pAppResource = Application::GetInstance()->GetAppResource();
601         if (pAppResource)
602         {
603                 pIconImage = pAppResource->GetBitmapN(IDB_ICON_PRIVATE);
604         }
605
606         Bitmap* pLockImage = new (std::nothrow) Bitmap();
607
608         Canvas* pCanvas = new (std::nothrow) Canvas();
609         pCanvas->Construct(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
610         pCanvas->Clear();
611         if(__pFavIcon != null)
612         {
613                 pCanvas->DrawBitmap(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()),*__pFavIcon);
614         }
615         if(pIconImage != null)
616         {
617                 pCanvas->DrawBitmap(Rectangle(__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2,__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2),*pIconImage);
618         }
619         pLockImage->Construct(*pCanvas,Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
620
621         delete pCanvas;
622         return pLockImage;
623 }
624
625 void
626 Addressbar::OnFocusGained(const Control& source)
627 {
628         AppLog("XYZ::Addressbar::OnFocusGained");
629         if(__pAddressbarUrlField && __isAppBackGround == false)
630         {
631                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
632                 if (removedHttpUrl.IsEmpty() == false)
633                 {
634                         __pAddressbarUrlField->SetText(removedHttpUrl);
635                 }
636                 else
637                 {
638                         __pAddressbarUrlField->SetText(__displayUrl);
639                 }
640         }
641
642         if(__pAddressbarUrlField != null)
643         {
644                 __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
645                 if(__pAddressbarUrlField->GetTextLength() == 0)
646                 {
647                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
648                 }
649                 else
650                 {
651                         __pAddressbarUrlField->SetKeypadActionEnabled(true);
652                 }
653         }
654         if (__pListener != null)
655         {
656                 __pListener->OnAddressBarFocusGained(*this);
657         }
658 }
659
660 void
661 Addressbar::OnFocusLost(const Tizen::Ui::Control& source)
662 {
663         AppLog("XYZ::Addressbar::OnFocusLost");
664         if(GetShowState() == true)
665                 __isAppBackGround = true;
666
667 //      __editTextUrl = L"";
668         if(__pListener != null)
669         {
670                 __pListener->OnAddressBarFocusLost(*this, __isKeyPadOpened);
671         }
672 }
673
674 void
675 Addressbar::OnTextValueChanged(const Control& source)
676 {
677         if(__pAddressbarUrlField != null)
678         {
679                 if(__pAddressbarUrlField->GetTextLength() == 0)
680                 {
681                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
682                 }
683                 else
684                 {
685                         __pAddressbarUrlField->SetKeypadActionEnabled(true);
686                 }
687         }
688 }
689
690 void
691 Addressbar::OnDeviceStateChanged(DeviceType deviceType, const String &state)
692 {
693         AppLog("1234:: Addressbar::OnDeviceStateChanged %ls %d",state.GetPointer(),(int)deviceType);
694         if(deviceType == DEVICE_TYPE_KEYBOARD && state.Equals(L"Closed",true) == 0)
695         {
696                 __isKeyboardConnected = true;
697         }
698 }
699 void
700 Addressbar::SetAddressbarURLFocus()
701 {
702         AppLog("Addressbar::SetAddressbarURLFocus");
703         result r = __pAddressbarUrlField->SetFocus();
704         AppLog("Addressbar::SetAddressbarURLFocus result %s",GetErrorMessage(r));
705 }
706
707 String
708 Addressbar::GetAddressbarURL()
709 {
710         return __pAddressbarUrlField->GetText();
711 }
712
713 bool
714 Addressbar::HasCurrentFocus()
715 {
716         return __pAddressbarUrlField->HasFocus();
717 }
718
719 void
720 Addressbar::HideKeypad()
721 {
722         __pAddressbarUrlField->HideKeypad();
723 }
724
725 void
726 Addressbar::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
727 {
728         if (requestId == BACK_GROUND_APP_EVENT)
729         {
730                 __isAppBackGround = true;
731         }
732         else if(requestId == FORE_GROUND_APP_EVENT)
733         {
734                 __isAppBackGround = false;
735         }
736 }