Fixed Nabi Issues N_SE-56908,56903,56917,56940
[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.#.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         __pAddressBackBtn->SetFocusable(true);
191         //IDC_ADDRESS_BACK_BUTTON
192
193         // Added to get the favorite url if not set then address bar is about blank
194
195         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
196         {
197                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
198         }
199         else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
200         {
201                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
202         }
203         else
204         {
205                 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
206                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
207         }
208         __pAddressbarUrlField->AddKeypadEventListener(*this);
209
210         r = DeviceManager::AddDeviceEventListener(DEVICE_TYPE_USB_CLIENT,*this);
211         AppLog("1234:: DeviceManager::AddDeviceEventListener result %s",GetErrorMessage(r));
212         AppLogDebug("Addressbar::Initialize exit");
213         return r;
214 }
215
216 void
217 Addressbar::UpdateProgressBitmap(void)
218 {
219         result r = E_SUCCESS;
220         if (__pProgressbarLabel == null)
221                 return;
222         int w = __pProgressbarLabel->GetWidth();
223         int h = __pProgressbarLabel->GetHeight();
224         Canvas canvas;
225         int progressWidth = 0;
226         Bitmap* pRetBitmap = null;
227
228         if (__progressPercentage == 0 || __progressPercentage == 100)
229         {
230                 __pProgressbarLabel->SetShowState(false);
231                 __pProgressbarLabel->Invalidate(false);
232                 return;
233         }
234         else
235         {
236                 __pProgressbarLabel->SetShowState(true);
237                 __pProgressbarLabel->Invalidate(false);
238         }
239
240         r = canvas.Construct(Rectangle(0, 0, w, h));
241
242         if (r != E_SUCCESS)
243         {
244                 AppLogException("Canvas construction failed with %s", GetErrorMessage(r));
245                 return;
246         }
247
248         canvas.Clear();
249         Bitmap *pBgBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR_BG);
250
251         if (pBgBmp != null)
252         {
253                 pBgBmp->Scale(Dimension(w, h));
254                 canvas.DrawBitmap(Point(0,0), *pBgBmp);
255                 delete pBgBmp;
256         }
257
258         progressWidth = (double) (w) * __progressPercentage / 100;
259         AppLogDebug("progressWidth: %d", progressWidth);
260         Bitmap *pProgressBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR);
261
262         if (pProgressBmp != null)
263         {
264                 pProgressBmp->Scale(Dimension(progressWidth, h));
265                 canvas.DrawBitmap(Point(0,0), *pProgressBmp);
266                 delete pProgressBmp;
267         }
268
269         pRetBitmap = new (std::nothrow) Bitmap();
270
271         if (pRetBitmap == null)
272         {
273                 AppLogException("Bitmap creation failed with %s", GetErrorMessage(r));
274                 return;
275         }
276
277         pRetBitmap->Construct(canvas, canvas.GetBounds());
278
279         if (__pProgressbarLabel != null && pRetBitmap != null)
280         {
281                 __pProgressbarLabel->SetBackgroundBitmap(*pRetBitmap);
282                 __pProgressbarLabel->Invalidate(false);
283         }
284
285
286         if (pRetBitmap != null)
287         {
288                 delete pRetBitmap;
289                 pRetBitmap = null;
290         }
291         return;
292 }
293
294 void
295 Addressbar::ResetGuideText(void)
296 {
297         AppLog("Addressbar::ResetGuideText called");
298
299         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
300         {
301                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
302         }
303         else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
304         {
305                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
306         }
307         else
308         {
309                 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
310                 __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
311         }
312         __pAddressbarUrlField->Invalidate(true);
313 }
314
315 void
316 Addressbar::SetUrl(const String& url)
317 {
318         __displayUrl = url;
319         String updatedDisplayUrl;
320         updatedDisplayUrl.Clear();
321
322         if (__pAddressbarUrlField != NULL)
323         {
324                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
325                 if (removedHttpUrl.IsEmpty() == false)
326                 {
327                         __pAddressbarUrlField->SetText(removedHttpUrl);
328                 }
329                 else
330                 {
331                         __pAddressbarUrlField->SetText(__displayUrl);
332                 }
333
334                 __pAddressbarUrlField->Invalidate(false);
335                 __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
336         }
337 }
338
339 String
340 Addressbar::GetUrl(void)
341 {
342         return __displayUrl;
343 }
344
345 void
346 Addressbar::SetFaviconBitmap(const Tizen::Graphics::Bitmap& favicon)
347 {
348
349         String url =__pAddressbarUrlField->GetText();
350         String secureSiteText = "https://";
351         bool flag = false;
352         flag = url.StartsWith(secureSiteText,0);
353
354         if (__pFavIcon != null)
355         {
356                 delete __pFavIcon;
357         }
358
359         __pFavIcon = new(std::nothrow) Bitmap();
360         __pFavIcon->Construct(favicon,Rectangle(0,0,favicon.GetWidth(),favicon.GetHeight()));
361 }
362
363 void Addressbar::SaveAddressbarEditText()
364 {
365 //      __editTextUrl = __pAddressbarUrlField->GetText();
366 }
367
368 void
369 Addressbar::UpdateFaviconBitmap(bool isPrivateOn)
370 {
371
372         String url =__pAddressbarUrlField->GetText();
373         String secureSiteText = "https://";
374         bool flag = false;
375         flag = url.StartsWith(secureSiteText,0);
376
377         __pAddressbarBg->Invalidate(true);
378 }
379
380 void
381 Addressbar::SetForwardButtonEnabled(bool isEnabled)
382 {
383 }
384
385 void
386 Addressbar::SetBackButtonEnabled(bool isEnabled)
387 {
388 }
389
390 void
391 Addressbar::SetAddressbarEventListener(IAddressbarEventListener* plistener)
392 {
393         __pListener = plistener;
394 }
395
396 void
397 Addressbar::UpdateProgress(int percentage)
398 {
399         __progressPercentage = percentage;
400         if (percentage == 0 || percentage == 100)
401         {
402                 __isLoadingData = false;
403                 if (percentage == 100)
404                 {
405                         __isLoadingCompleted = true;
406                         __progressPercentage = 0;
407                 }
408                 else
409                 {
410                         __isLoadingCompleted = false;
411                 }
412         }
413         else
414         {
415                 __isLoadingData = true;
416         }
417         UpdateProgressBitmap();
418 }
419
420 int
421 Addressbar::GetProgress(void)
422 {
423         return __progressPercentage;
424 }
425
426 void
427 Addressbar::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
428 {
429         AppLogDebug("Addressbar::OnActionPerformed action %d",actionId);
430
431         switch (actionId)
432         {
433         case IDA_CANCEL:
434         {
435                 __isAppBackGround = false;
436 //              __pAddressbarUrlField->HideKeypad();
437                 __pListener->OnAddressCancelledClicked(*this);
438                 //SetAddressbarMode(ADDRESSBAR_MODE_LOADING_COMPLETE);
439         }
440         break;
441
442         case IDA_CLEAR_URL:
443         {
444                 if (__pAddressbarUrlField->GetText().IsEmpty() == false)
445                 {
446                         //__displayUrl = __pUrlField->GetText();
447                         __pAddressbarUrlField->Clear();
448                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
449                         __pAddressbarUrlField->Invalidate(true);
450                 }
451         }
452         break;
453         default:
454                 break;
455         }
456 }
457
458 void
459 Addressbar::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
460 {
461         AppLog("XYZ::Addressbar::OnKeypadActionPerformed keypadAction %d",keypadAction);
462         switch (keypadAction)
463         {
464         case KEYPAD_ACTION_GO:
465         case KEYPAD_ACTION_ENTER:
466         case KEYPAD_ACTION_SEND:
467         {
468                 if (__pAddressbarUrlField->GetText().IsEmpty() == false)
469                 {
470                         //SetAddressbarMode(ADDRESSBAR_MODE_LOADING);
471                         __displayUrl = __pAddressbarUrlField->GetText();
472
473                         __isLoadingCompleted = false;
474                         __isLoadingData = true;
475                         __progressPercentage = 0;
476                         __pAddressbarUrlField->HideKeypad();
477
478                         if (__pListener != NULL)
479                         {
480                                 __pListener->OnUrlSubmitted(*this);
481                         }
482
483                         //UpdateProgressBitmap();
484                 }
485         }
486         break;
487
488         default:
489                 break;
490         }
491 }
492
493 void
494 Addressbar::OnKeypadClosed(Tizen::Ui::Control& source)
495 {
496         AppLog("XYZ::Addressbar::OnKeypadClosed");
497
498         __isKeyPadOpened = false;
499
500         if (__isKeyboardConnected == true)
501         {
502                 return;
503         }
504         if (__isClipboardOpen == true)
505         {
506                 __isClipboardOpen = false;
507                 __pListener->OnClipboardClosed(*this);
508                 return;
509         }
510
511
512 //      if(__pAddressbarUrlField)
513 //      {
514 //              String removedHttpUrl = RemoveHttpTextFromDisplayURL();
515 //              if (removedHttpUrl.IsEmpty() == false)
516 //              {
517 //                      __pAddressbarUrlField->SetText(removedHttpUrl);
518 //              }
519 //              else
520 //              {
521 //                      __pAddressbarUrlField->SetText(__displayUrl);
522 //              }
523 //      }
524 //      __editTextUrl = L"";
525         if(__pListener != null)
526         {
527                 __pListener->OnAddressBarKeypadClosed(*this,true);
528         }
529 }
530
531 void
532 Addressbar::OnKeypadOpened(Tizen::Ui::Control& source)
533 {
534         AppLog("XYZ::Addressbar::OnKeypadOpened");
535         AppLog("Addressbar::OnKeypadOpened %d",Clipboard::GetInstance()->IsPopupVisible());
536
537         __isKeyPadOpened = true;
538
539         __isClipboardOpen = Clipboard::GetInstance()->IsPopupVisible();
540
541         if(__pListener != null)
542         {
543                 __pListener->OnAddressBarKeypadOpened(*this);
544         }
545 }
546
547 void
548 Addressbar::OnKeypadWillOpen(Tizen::Ui::Control& source)
549 {
550         AppLog("XYZ::Addressbar::OnKeypadWillOpen");
551
552 }
553
554 void
555 Addressbar::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
556 {
557         AppLog("XYZ::KeypadBoundsChanged");
558
559         if(__pListener != null)
560         {
561                 __pListener->OnAddressBarKeypadBoundsChanged(*this);
562         }
563 }
564
565 void
566 Addressbar::OrientationChanged( int& width)
567 {
568        int gap = 10;
569         __pBgPanel->SetBounds(__pBgPanel->GetX(),__pBgPanel->GetY(), width - __pAddressBackBtn->GetWidth() - gap -__pBgPanel->GetX() ,__pBgPanel->GetHeight());
570         __pAddressBackBtn->SetBounds(width - __pAddressBackBtn->GetWidth() - 6,__pAddressBackBtn->GetY(),__pAddressBackBtn->GetWidth(),__pAddressBackBtn->GetHeight());
571         __pClearBtn->SetBounds(__pBgPanel->GetWidth() - __pClearBtn->GetWidth() ,__pClearBtn->GetY(),__pClearBtn->GetWidth(),__pClearBtn->GetHeight());
572
573         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pAddressbarBg->GetWidth(), __pAddressbarBg->GetHeight());
574         if (pBitmap != null)
575         {
576                 __pAddressbarBg->SetBackgroundBitmap(*pBitmap);
577                 delete pBitmap;
578         }
579
580         Invalidate(true);
581 }
582
583 String
584 Addressbar::RemoveHttpTextFromDisplayURL(void)
585 {
586         bool isHttpText = __displayUrl.Contains(L"http://");
587         String updatedDisplayUrl;
588         updatedDisplayUrl.Clear();
589
590         if (isHttpText == true)
591         {
592                 __displayUrl.SubString(7,updatedDisplayUrl);
593         }
594         return updatedDisplayUrl;
595 }
596
597 Bitmap*
598 Addressbar::GetLockedImageN(void)
599 {
600         Bitmap* pIconImage = null;
601
602         AppResource* pAppResource = Application::GetInstance()->GetAppResource();
603         if (pAppResource)
604         {
605                 pIconImage = pAppResource->GetBitmapN(IDB_ICON_PRIVATE);
606         }
607
608         Bitmap* pLockImage = new (std::nothrow) Bitmap();
609
610         Canvas* pCanvas = new (std::nothrow) Canvas();
611         pCanvas->Construct(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
612         pCanvas->Clear();
613         if(__pFavIcon != null)
614         {
615                 pCanvas->DrawBitmap(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()),*__pFavIcon);
616         }
617         if(pIconImage != null)
618         {
619                 pCanvas->DrawBitmap(Rectangle(__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2,__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2),*pIconImage);
620         }
621         pLockImage->Construct(*pCanvas,Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
622
623         delete pCanvas;
624         return pLockImage;
625 }
626
627 void
628 Addressbar::OnFocusGained(const Control& source)
629 {
630         AppLog("XYZ::Addressbar::OnFocusGained");
631         if(__pAddressbarUrlField && __isAppBackGround == false)
632         {
633                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
634                 if (removedHttpUrl.IsEmpty() == false)
635                 {
636                         __pAddressbarUrlField->SetText(removedHttpUrl);
637                 }
638                 else
639                 {
640                         __pAddressbarUrlField->SetText(__displayUrl);
641                 }
642         }
643
644         if(__pAddressbarUrlField != null)
645         {
646                 __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
647                 if(__pAddressbarUrlField->GetTextLength() == 0)
648                 {
649                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
650                 }
651                 else
652                 {
653                         __pAddressbarUrlField->SetKeypadActionEnabled(true);
654                 }
655         }
656         if (__pListener != null)
657         {
658                 __pListener->OnAddressBarFocusGained(*this);
659         }
660         __isAppBackGround = false;
661 }
662
663 void
664 Addressbar::OnFocusLost(const Tizen::Ui::Control& source)
665 {
666         AppLog("XYZ::Addressbar::OnFocusLost");
667         if(GetShowState() == true)
668                 __isAppBackGround = true;
669
670 //      __editTextUrl = L"";
671         if(__pListener != null)
672         {
673                 __pListener->OnAddressBarFocusLost(*this, __isKeyPadOpened);
674         }
675 }
676
677 void
678 Addressbar::OnTextValueChanged(const Control& source)
679 {
680         if(__pAddressbarUrlField != null)
681         {
682                 if(__pAddressbarUrlField->GetTextLength() == 0)
683                 {
684                         __pAddressbarUrlField->SetKeypadActionEnabled(false);
685                 }
686                 else
687                 {
688                         __pAddressbarUrlField->SetKeypadActionEnabled(true);
689                 }
690         }
691 }
692
693 void
694 Addressbar::OnDeviceStateChanged(DeviceType deviceType, const String &state)
695 {
696         AppLog("1234:: Addressbar::OnDeviceStateChanged %ls %d",state.GetPointer(),(int)deviceType);
697         if(deviceType == DEVICE_TYPE_KEYBOARD && state.Equals(L"Closed",true) == 0)
698         {
699                 __isKeyboardConnected = true;
700         }
701 }
702 void
703 Addressbar::SetAddressbarURLFocus()
704 {
705         AppLog("Addressbar::SetAddressbarURLFocus");
706         result r = __pAddressbarUrlField->SetFocus();
707         AppLog("Addressbar::SetAddressbarURLFocus result %s",GetErrorMessage(r));
708 }
709
710 String
711 Addressbar::GetAddressbarURL()
712 {
713         return __pAddressbarUrlField->GetText();
714 }
715
716 bool
717 Addressbar::HasCurrentFocus()
718 {
719         return __pAddressbarUrlField->HasFocus();
720 }
721
722 void
723 Addressbar::HideKeypad()
724 {
725         __pAddressbarUrlField->HideKeypad();
726 }
727
728 void
729 Addressbar::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
730 {
731         if (requestId == BACK_GROUND_APP_EVENT)
732         {
733                 __isAppBackGround = true;
734         }
735         else if(requestId == FORE_GROUND_APP_EVENT)
736         {
737                 __isAppBackGround = false;
738         }
739 }