Fixed Nabi Issues
[apps/osp/Internet.git] / src / IntAddressbar.cpp
index b7eb241..1c39882 100644 (file)
@@ -1,7 +1,7 @@
 //
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Flora License, Version 1.1 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
 
 using namespace Tizen::App;
 using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::System;
 using namespace Tizen::Ui;
 using namespace Tizen::Ui::Controls;
-using namespace Tizen::Graphics;
 
 static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.9.png";
 static const wchar_t* IDB_TITLE_PROGRESS_BAR_BG = L"I01_title_progress_bar_bg.png";
@@ -38,8 +39,7 @@ static const wchar_t* IDB_TITLE_PROGRESS_BAR = L"I01_title_progress_bar.png";
 static const wchar_t* IDB_ICON_PRIVATE = L"I01_icon_private.png";
 
 //Action IDs
-const int Addressbar::IDA_REFRESH_BTN_CLICKED = 101;
-const int Addressbar::IDA_READER_BTN_CLICKED = 102;
+
 const int Addressbar::IDA_STOP_BTN_CLICKED = 103;
 const int Addressbar::IDA_GO_BACK = 104;
 const int Addressbar::IDA_GO_FORWARD = 105;
@@ -50,32 +50,29 @@ Addressbar::Addressbar(void)
 {
        //__currentAddMode = ADDRESSBAR_MODE_LOADING_COMPLETE;
        __displayUrl = L"";
-       __editTextUrl = L"";
+//     __editTextUrl = L"";
        __isLoadingData = false;
        __isLoadingCompleted = false;
        __progressPercentage = 0;
        __pAddressbarBg = null;
        __pBgPanel = null;
-       //__pCancelBtn = null;
-       __pClearBtn = null;
        __pFavIcon = FaviconManager::GetInstance()->GetDefaultFaviconN();
        __pFaviconLabel = null;
-       //__pGoBackBtn = null;
-       //__pGoForwardBtn = null;
        __pLabelPrivateOn = null;
        __pListener = null;
        __pPrivateIconLabel = null;
        __pProgressbarLabel = null;
        __pPrivateIconLabel = null ;
-       //__pReaderBtn = null;
-       //__pRefreshBtn = null;
-       __pStopBtn = null;
        __pClearBtn = null ;
        __pSearchLabel = null;
        __pAddressbarUrlField = null;
        __pToolBarLabel = null;
        __pAddressbarURLLabel = null;
        __pAddressBackBtn = null;
+       __isClipboardOpen = false;
+       __isKeyboardConnected = false;
+       __isKeyPadOpened = false;
+       __isAppBackGround = false;
 }
 
 Addressbar::~Addressbar(void)
@@ -88,6 +85,13 @@ Addressbar::~Addressbar(void)
 }
 
 result
+Addressbar::OnTerminating(void)
+{
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_USB_CLIENT, *this);
+       return E_SUCCESS;
+}
+
+result
 Addressbar::Initialize(const Rectangle& rect)
 {
        result r = E_SUCCESS;
@@ -112,15 +116,6 @@ Addressbar::Initialize(const Rectangle& rect)
                return E_INVALID_KEY;
        }
 
-       /*__pLabelPrivateOn = static_cast<Label*> (GetControl(L"IDC_LABEL_PRIVATE_ON",true));
-
-       if (__pLabelPrivateOn == NULL)
-       {
-               AppLogDebug("Control not found returning E_INVALID_KEY");
-               return E_INVALID_KEY;
-       }
-       __pLabelPrivateOn->SetShowState(false);*/
-
        __pAddressbarBg = static_cast<Label*> (GetControl(L"IDC_ADDRESSBAR_BG_LABEL",true));
        if (__pAddressbarBg == NULL)
        {
@@ -135,27 +130,6 @@ Addressbar::Initialize(const Rectangle& rect)
                delete pBitmap;
        }
 
-       //Add the backround label for displaying progressbar
-       __pProgressbarLabel = static_cast<Label*> (GetControl(L"IDC_PROGRESS_BAR_LABEL",true));
-       if (__pProgressbarLabel == NULL)
-       {
-               AppLogDebug("Control not found returning E_INVALID_KEY");
-               return E_INVALID_KEY;
-       }
-       __pProgressbarLabel->SetShowState(false);
-
-       //Add the stop button
-       __pStopBtn = static_cast<Button*> (GetControl(L"IDC_STOP_BUTTON",true));
-       if (__pStopBtn == NULL)
-       {
-               AppLogDebug("Control not found returning E_INVALID_KEY");
-               return E_INVALID_KEY;
-       }
-       __pStopBtn->SetActionId(IDA_STOP_BTN_CLICKED);
-       __pStopBtn->AddActionEventListener(*this);
-       __pStopBtn->SetShowState(false);
-
-
        __pClearBtn = static_cast<Button*> (GetControl(L"IDC_CLEAR_BUTTON",true));
        if (__pClearBtn == NULL)
        {
@@ -165,6 +139,7 @@ Addressbar::Initialize(const Rectangle& rect)
        __pClearBtn->SetActionId(IDA_CLEAR_URL);
        __pClearBtn->AddActionEventListener(*this);
        __pClearBtn->SetShowState(true);
+       __pClearBtn->SetFocusable(true);
 
        //Add the editfield for url
        __pAddressbarUrlField =  static_cast<EditField*> (GetControl(L"IDC_URL_EDITFIELD",true));
@@ -212,6 +187,7 @@ Addressbar::Initialize(const Rectangle& rect)
        __pAddressBackBtn->SetActionId(IDA_CANCEL);
        __pAddressBackBtn->AddActionEventListener(*this);
        __pAddressBackBtn->SetShowState(true);
+       __pAddressBackBtn->SetFocusable(true);
        //IDC_ADDRESS_BACK_BUTTON
 
        // Added to get the favorite url if not set then address bar is about blank
@@ -222,7 +198,7 @@ Addressbar::Initialize(const Rectangle& rect)
        }
        else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
        {
-               __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_ABOUT_C_BLANK"));
+               __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
        }
        else
        {
@@ -231,6 +207,8 @@ Addressbar::Initialize(const Rectangle& rect)
        }
        __pAddressbarUrlField->AddKeypadEventListener(*this);
 
+       r = DeviceManager::AddDeviceEventListener(DEVICE_TYPE_USB_CLIENT,*this);
+       AppLog("1234:: DeviceManager::AddDeviceEventListener result %s",GetErrorMessage(r));
        AppLogDebug("Addressbar::Initialize exit");
        return r;
 }
@@ -314,6 +292,27 @@ Addressbar::UpdateProgressBitmap(void)
 }
 
 void
+Addressbar::ResetGuideText(void)
+{
+       AppLog("Addressbar::ResetGuideText called");
+
+       if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
+       {
+               __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
+       }
+       else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
+       {
+               __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
+       }
+       else
+       {
+               //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
+               __pAddressbarUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
+       }
+       __pAddressbarUrlField->Invalidate(true);
+}
+
+void
 Addressbar::SetUrl(const String& url)
 {
        __displayUrl = url;
@@ -333,7 +332,7 @@ Addressbar::SetUrl(const String& url)
                }
 
                __pAddressbarUrlField->Invalidate(false);
-               __pAddressbarUrlField->SetCursorPosition(0);
+               __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
        }
 }
 
@@ -343,152 +342,6 @@ Addressbar::GetUrl(void)
        return __displayUrl;
 }
 
-/*AddressBarMode
-Addressbar::GetAddressbarMode(void)
-{
-       return __currentAddMode;
-}*/
-
-/*void
-Addressbar::SetAddressbarMode(AddressBarMode addMode)
-{
-       AppLogDebug("AddressBar::setAddressbarMode to %d",addMode);
-
-       __currentAddMode = addMode;
-
-       switch(addMode)
-       {
-       case ADDRESSBAR_MODE_INVALID:
-       {
-               // do nothing
-       }
-       break;
-       case ADDRESSBAR_MODE_READER:
-       {
-       //      __pBgPanel->SetPosition(__pGoBackBtn->GetPosition().x + 2* __pGoBackBtn->GetWidth() + 13,__pBgPanel->GetPosition().y);
-       //      __pSearchLabel->SetShowState(false);
-       //      __pFaviconLabel->SetShowState(true);
-       //      __pCancelBtn->SetShowState(false);
-       //      __pRefreshBtn->SetShowState(false);
-               __pStopBtn->SetShowState(false);
-       //      __pReaderBtn->SetShowState(true);
-       //      __pReaderBtn->Invalidate(true);
-       //      __pGoForwardBtn->SetShowState(true);
-       //      __pGoBackBtn->SetShowState(true);
-               __pClearBtn->SetShowState(false);
-       }
-       break;
-       case ADDRESSBAR_MODE_LOADING:
-       {
-       //      __pBgPanel->SetPosition(__pGoBackBtn->GetPosition().x + 2* __pGoBackBtn->GetWidth() + 13,__pBgPanel->GetPosition().y);
-       //      __pSearchLabel->SetShowState(false);
-       //      __pFaviconLabel->SetShowState(true);
-       //      __pCancelBtn->SetShowState(false);
-       //      __pRefreshBtn->SetShowState(false);
-               __pStopBtn->SetShowState(true);
-       //      __pReaderBtn->SetShowState(false);
-       //      __pGoForwardBtn->SetShowState(true);
-       //      __pGoBackBtn->SetShowState(true);
-               __pClearBtn->SetShowState(false);
-       }
-       break;
-
-       case ADDRESSBAR_MODE_LOADING_COMPLETE:
-       {
-       //      __pBgPanel->SetPosition(__pGoBackBtn->GetPosition().x + 2* __pGoBackBtn->GetWidth() + 13,__pBgPanel->GetPosition().y);
-       //      __pCancelBtn->SetShowState(false);
-
-               if (__pAddressbarUrlField && __pAddressbarUrlField->GetText().IsEmpty() == false)
-               {
-               //      __pSearchLabel->SetShowState(false);
-               //      __pFaviconLabel->SetShowState(true);
-               }
-               else
-               {
-               //      __pSearchLabel->SetShowState(true);
-               //      __pFaviconLabel->SetShowState(false);
-               }
-
-               if (__pAddressbarUrlField != NULL)
-               {
-                       __pAddressbarUrlField->SetText(__displayUrl);
-                       __pAddressbarUrlField->HideKeypad();
-               }
-
-       //      __pRefreshBtn->SetShowState(true);
-               __pStopBtn->SetShowState(false);
-       //      __pReaderBtn->SetShowState(false);
-       //      __pGoForwardBtn->SetShowState(true);
-       //      __pGoBackBtn->SetShowState(true);
-               __pClearBtn->SetShowState(false);
-       }
-       break;
-       case ADDRESSBAR_MODE_EDIT:
-       {
-               Form *pForm = static_cast<Form*>(GetParent());
-               if (pForm!= null && (pForm->GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT ||pForm->GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE ))
-               {
-               //      __pBgPanel->SetBounds(__pBgPanel->GetX(),__pBgPanel->GetY(),static_cast<Form*>(GetParent())->GetClientAreaBounds().width - __pCancelBtn->GetWidth() - 30,__pBgPanel->GetHeight());
-               //      __pAddressbarBg->SetBounds(__pAddressbarBg->GetX(),__pAddressbarBg->GetY(),static_cast<Form*>(GetParent())->GetClientAreaBounds().width - __pCancelBtn->GetWidth() - 30,__pAddressbarBg->GetHeight());
-                       __pClearBtn->SetBounds(__pBgPanel->GetWidth() - __pClearBtn->GetWidth(),__pClearBtn->GetY(),__pClearBtn->GetWidth(),__pClearBtn->GetHeight());
-               }
-               else
-               {
-               //      __pBgPanel->SetBounds(__pBgPanel->GetX(),__pBgPanel->GetY(),static_cast<Form*>(GetParent())->GetClientAreaBounds().width - __pCancelBtn->GetWidth() - 48,__pBgPanel->GetHeight());
-               //      __pAddressbarBg->SetBounds(__pAddressbarBg->GetX(),__pAddressbarBg->GetY(),static_cast<Form*>(GetParent())->GetClientAreaBounds().width - __pCancelBtn->GetWidth() - 48,__pAddressbarBg->GetHeight());
-                       __pClearBtn->SetBounds(__pBgPanel->GetWidth() - __pClearBtn->GetWidth(),__pClearBtn->GetY(),__pClearBtn->GetWidth(),__pClearBtn->GetHeight());
-               }
-
-       //      __pBgPanel->SetPosition(__pGoBackBtn->GetPosition().x,__pBgPanel->GetPosition().y);
-       //      __pCancelBtn->SetShowState(true);
-       //      __pRefreshBtn->SetShowState(false);
-               __pStopBtn->SetShowState(false);
-       //      __pReaderBtn->SetShowState(false);
-       //      __pGoForwardBtn->SetShowState(false);
-       //      __pGoBackBtn->SetShowState(false);
-               __pClearBtn->SetShowState(true);
-
-
-//             __pCancelBtn->SetBounds(__pBgPanel->GetWidth(), __pCancelBtn->GetY(), GetWidth() - 48 - __pBgPanel->GetWidth(), __pCancelBtn->GetHeight());
-
-               if (__pAddressbarUrlField && __pAddressbarUrlField->GetText().IsEmpty() == true)
-               {
-               //      __pSearchLabel->SetShowState(true);
-               //      __pFaviconLabel->SetShowState(false);
-               }
-               else
-               {
-               //      __pSearchLabel->SetShowState(false);
-               //      __pFaviconLabel->SetShowState(true);
-               }
-               if (__pAddressbarUrlField != NULL)
-               {
-                       __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
-               }
-
-       }
-       break;
-       }
-
-       if (__pAddressbarBg->GetWidth() != __pBgPanel->GetWidth())
-       {
-               __pAddressbarBg->SetBounds(Rectangle(0, 0, __pBgPanel->GetWidth(), __pBgPanel->GetHeight()));
-               Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pAddressbarBg->GetWidth(), __pAddressbarBg->GetHeight());
-               if (pBitmap != null)
-               {
-                       __pAddressbarBg->SetBackgroundBitmap(*pBitmap);
-                       delete pBitmap;
-               }
-       }
-
-       Invalidate(true);
-
-       if (__pListener != null)
-       {
-               __pListener->OnAddressBarModeChanged(*this);
-       }
-}*/
-
 void
 Addressbar::SetFaviconBitmap(const Tizen::Graphics::Bitmap& favicon)
 {
@@ -505,31 +358,11 @@ Addressbar::SetFaviconBitmap(const Tizen::Graphics::Bitmap& favicon)
 
        __pFavIcon = new(std::nothrow) Bitmap();
        __pFavIcon->Construct(favicon,Rectangle(0,0,favicon.GetWidth(),favicon.GetHeight()));
-
-       if (flag == true)
-       {
-               Bitmap* pButtonImage = GetLockedImageN();
-
-               if (pButtonImage != null)
-               {
-               //      __pFaviconLabel->SetBackgroundBitmap(*pButtonImage);
-               //      __pFaviconLabel->Invalidate(true);
-                       delete pButtonImage;
-               }
-       }
-       else
-       {
-               /*if (__pFaviconLabel != null)
-               {
-                       __pFaviconLabel->SetBackgroundBitmap(*__pFavIcon);
-                       __pFaviconLabel->Invalidate(true);
-               }*/
-       }
 }
 
 void Addressbar::SaveAddressbarEditText()
 {
-       __editTextUrl = __pAddressbarUrlField->GetText();
+//     __editTextUrl = __pAddressbarUrlField->GetText();
 }
 
 void
@@ -541,55 +374,17 @@ Addressbar::UpdateFaviconBitmap(bool isPrivateOn)
        bool flag = false;
        flag = url.StartsWith(secureSiteText,0);
 
-       /*if (isPrivateOn == true)
-       {
-               __pUrlField->SetBounds(__pLabelPrivateOn->GetBounds().x + __pLabelPrivateOn->GetBounds().width,__pUrlField->GetBounds().y , __pAddressbarBg->GetBounds().width - __pLabelPrivateOn->GetBounds().width - __pRefreshBtn->GetBounds().width - __pSearchLabel->GetBounds().width,__pUrlField->GetBounds().height );
-               __pLabelPrivateOn->SetShowState(true);
-
-       }
-       else
-       {
-               __pUrlField->SetBounds(__pLabelPrivateOn->GetBounds().x ,__pUrlField->GetBounds().y , __pAddressbarBg->GetBounds().width - __pRefreshBtn->GetBounds().width - __pSearchLabel->GetBounds().width,__pUrlField->GetBounds().height );
-               __pLabelPrivateOn->SetShowState(false);
-       }*/
-
-
-       if (flag == true)
-               {
-                       Bitmap* pButtonImage = GetLockedImageN();
-
-                       if (pButtonImage != null)
-                       {
-                       //      __pFaviconLabel->SetBackgroundBitmap(*pButtonImage);
-                       //      __pFaviconLabel->Invalidate(true);
-                               delete pButtonImage;
-                       }
-               }
-               else
-               {
-                       /*if (__pFaviconLabel != null)
-                       {
-                               __pFaviconLabel->SetBackgroundBitmap(*__pFavIcon);
-                               __pFaviconLabel->Invalidate(true);
-                       }*/
-               }
-
-
        __pAddressbarBg->Invalidate(true);
 }
 
 void
 Addressbar::SetForwardButtonEnabled(bool isEnabled)
 {
-//     __pGoForwardBtn->SetEnabled(isEnabled);
-//     __pGoBackBtn->Invalidate(true);
 }
 
 void
 Addressbar::SetBackButtonEnabled(bool isEnabled)
 {
-//     __pGoBackBtn->SetEnabled(isEnabled);
-//     __pGoBackBtn->Invalidate(true);
 }
 
 void
@@ -635,69 +430,10 @@ Addressbar::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
 
        switch (actionId)
        {
-       case IDA_REFRESH_BTN_CLICKED:
-               __isLoadingCompleted = false;
-               __isLoadingData = true;
-               __progressPercentage = 0;
-               __pAddressbarUrlField->HideKeypad();
-               __displayUrl = __pAddressbarUrlField->GetText();
-
-               /*if (__pListener != NULL)
-               {
-                       __pListener->OnUrlSubmitted(*this);
-               }*/
-
-               UpdateProgressBitmap();
-               break;
-
-       case IDA_STOP_BTN_CLICKED:
-               __isLoadingCompleted = false;
-               __isLoadingData = false;
-               __progressPercentage = 0;
-               __pAddressbarUrlField->HideKeypad();
-               __displayUrl = __pAddressbarUrlField->GetText();
-
-               if (__pListener != NULL)
-               {
-                       __pListener->OnStopClicked(*this);
-               }
-
-               UpdateProgressBitmap();
-               break;
-       case IDA_READER_BTN_CLICKED:
-               __pAddressbarUrlField->HideKeypad();
-               __displayUrl = __pAddressbarUrlField->GetText();
-
-               if (__pListener != NULL)
-               {
-                       __pListener->OnReaderClicked(*this);
-               }
-
-               break;
-
-       /*case IDA_GO_BACK:
-       {
-               if (__pListener != NULL)
-               {
-                       __pListener->OnBackClicked(*this);
-
-               }
-       }
-       break;
-
-       case IDA_GO_FORWARD:
-       {
-               if (__pListener != NULL )
-                       __pListener->OnForwardClicked(*this);
-       }
-       break;*/
-
        case IDA_CANCEL:
        {
+//             __pAddressbarUrlField->HideKeypad();
                __pListener->OnAddressCancelledClicked(*this);
-               __pAddressbarUrlField->SetText(__displayUrl);
-               __editTextUrl = L"";
-               __pAddressbarUrlField->HideKeypad();
                //SetAddressbarMode(ADDRESSBAR_MODE_LOADING_COMPLETE);
        }
        break;
@@ -708,6 +444,7 @@ Addressbar::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
                {
                        //__displayUrl = __pUrlField->GetText();
                        __pAddressbarUrlField->Clear();
+                       __pAddressbarUrlField->SetKeypadActionEnabled(false);
                        __pAddressbarUrlField->Invalidate(true);
                }
        }
@@ -720,7 +457,7 @@ Addressbar::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
 void
 Addressbar::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
 {
-       AppLog("Addressbar::OnKeypadActionPerformed keypadAction %d",keypadAction);
+       AppLog("XYZ::Addressbar::OnKeypadActionPerformed keypadAction %d",keypadAction);
        switch (keypadAction)
        {
        case KEYPAD_ACTION_GO:
@@ -741,6 +478,7 @@ Addressbar::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::Keypa
                        {
                                __pListener->OnUrlSubmitted(*this);
                        }
+
                        //UpdateProgressBitmap();
                }
        }
@@ -754,36 +492,90 @@ Addressbar::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::Keypa
 void
 Addressbar::OnKeypadClosed(Tizen::Ui::Control& source)
 {
-       __pListener->OnAddressBarKeypadClosed(*this);
+       AppLog("XYZ::Addressbar::OnKeypadClosed");
+
+       __isKeyPadOpened = false;
+
+       if (__isKeyboardConnected == true)
+       {
+               return;
+       }
+       if (__isClipboardOpen == true)
+       {
+               __isClipboardOpen = false;
+               __pListener->OnClipboardClosed(*this);
+               return;
+       }
+
+
+//     if(__pAddressbarUrlField)
+//     {
+//             String removedHttpUrl = RemoveHttpTextFromDisplayURL();
+//             if (removedHttpUrl.IsEmpty() == false)
+//             {
+//                     __pAddressbarUrlField->SetText(removedHttpUrl);
+//             }
+//             else
+//             {
+//                     __pAddressbarUrlField->SetText(__displayUrl);
+//             }
+//     }
+//     __editTextUrl = L"";
+       if(__pListener != null)
+       {
+               __pListener->OnAddressBarKeypadClosed(*this,true);
+       }
 }
 
 void
 Addressbar::OnKeypadOpened(Tizen::Ui::Control& source)
 {
+       AppLog("XYZ::Addressbar::OnKeypadOpened");
+       AppLog("Addressbar::OnKeypadOpened %d",Clipboard::GetInstance()->IsPopupVisible());
+
+       __isKeyPadOpened = true;
 
-       __pListener->OnAddressBarKeypadClosed(*this,false);
+       __isClipboardOpen = Clipboard::GetInstance()->IsPopupVisible();
+
+       if(__pListener != null)
+       {
+               __pListener->OnAddressBarKeypadOpened(*this);
+       }
 }
 
 void
 Addressbar::OnKeypadWillOpen(Tizen::Ui::Control& source)
 {
-       //SetAddressbarMode(ADDRESSBAR_MODE_EDIT);
-       //      SetAddressbarMode(__prevAddMode);
+       AppLog("XYZ::Addressbar::OnKeypadWillOpen");
+
+}
+
+void
+Addressbar::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
+{
+       AppLog("XYZ::KeypadBoundsChanged");
+
        if(__pListener != null)
        {
-               __pListener->OnAddressBarKeypadWillOpen(*this);
+               __pListener->OnAddressBarKeypadBoundsChanged(*this);
        }
 }
 
 void
-Addressbar::OrientationChanged(void)
+Addressbar::OrientationChanged( int& width)
 {
+       int gap = 10;
+       __pBgPanel->SetBounds(__pBgPanel->GetX(),__pBgPanel->GetY(), width - __pAddressBackBtn->GetWidth() - gap -__pBgPanel->GetX() ,__pBgPanel->GetHeight());
+       __pAddressBackBtn->SetBounds(width - __pAddressBackBtn->GetWidth() - 6,__pAddressBackBtn->GetY(),__pAddressBackBtn->GetWidth(),__pAddressBackBtn->GetHeight());
+       __pClearBtn->SetBounds(__pBgPanel->GetWidth() - __pClearBtn->GetWidth() ,__pClearBtn->GetY(),__pClearBtn->GetWidth(),__pClearBtn->GetHeight());
+
        Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pAddressbarBg->GetWidth(), __pAddressbarBg->GetHeight());
        if (pBitmap != null)
        {
                __pAddressbarBg->SetBackgroundBitmap(*pBitmap);
                delete pBitmap;
        }
+
        Invalidate(true);
 }
 
@@ -817,8 +609,14 @@ Addressbar::GetLockedImageN(void)
        Canvas* pCanvas = new (std::nothrow) Canvas();
        pCanvas->Construct(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
        pCanvas->Clear();
-       pCanvas->DrawBitmap(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()),*__pFavIcon);
-       pCanvas->DrawBitmap(Rectangle(__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2,__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2),*pIconImage);
+       if(__pFavIcon != null)
+       {
+               pCanvas->DrawBitmap(Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()),*__pFavIcon);
+       }
+       if(pIconImage != null)
+       {
+               pCanvas->DrawBitmap(Rectangle(__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2,__pFaviconLabel->GetWidth()/2,__pFaviconLabel->GetHeight()/2),*pIconImage);
+       }
        pLockImage->Construct(*pCanvas,Rectangle(0,0,__pFaviconLabel->GetWidth(),__pFaviconLabel->GetHeight()));
 
        delete pCanvas;
@@ -828,12 +626,50 @@ Addressbar::GetLockedImageN(void)
 void
 Addressbar::OnFocusGained(const Control& source)
 {
-       //SetAddressbarMode(ADDRESSBAR_MODE_EDIT);
-       //      SetAddressbarMode(__prevAddMode);
+       AppLog("XYZ::Addressbar::OnFocusGained");
+       if(__pAddressbarUrlField && __isAppBackGround == false)
+       {
+               String removedHttpUrl = RemoveHttpTextFromDisplayURL();
+               if (removedHttpUrl.IsEmpty() == false)
+               {
+                       __pAddressbarUrlField->SetText(removedHttpUrl);
+               }
+               else
+               {
+                       __pAddressbarUrlField->SetText(__displayUrl);
+               }
+       }
+
+       if(__pAddressbarUrlField != null)
+       {
+               __pAddressbarUrlField->SetCursorPosition(__pAddressbarUrlField->GetTextLength());
+               if(__pAddressbarUrlField->GetTextLength() == 0)
+               {
+                       __pAddressbarUrlField->SetKeypadActionEnabled(false);
+               }
+               else
+               {
+                       __pAddressbarUrlField->SetKeypadActionEnabled(true);
+               }
+       }
        if (__pListener != null)
        {
-               __pListener->OnAddressBarKeypadWillOpen(*this);
-               __pListener->OnAddressBarKeypadOpened(*this);
+               __pListener->OnAddressBarFocusGained(*this);
+       }
+       __isAppBackGround = false;
+}
+
+void
+Addressbar::OnFocusLost(const Tizen::Ui::Control& source)
+{
+       AppLog("XYZ::Addressbar::OnFocusLost");
+       if(GetShowState() == true)
+               __isAppBackGround = true;
+
+//     __editTextUrl = L"";
+       if(__pListener != null)
+       {
+               __pListener->OnAddressBarFocusLost(*this, __isKeyPadOpened);
        }
 }
 
@@ -844,28 +680,30 @@ Addressbar::OnTextValueChanged(const Control& source)
        {
                if(__pAddressbarUrlField->GetTextLength() == 0)
                {
-                       if(__pAddressbarUrlField->IsKeypadActionEnabled() == true)
-                       {
-                               __pAddressbarUrlField->SetKeypadActionEnabled(false);
-                               GetParent()->GetParent()->Invalidate(true);
-                       }
+                       __pAddressbarUrlField->SetKeypadActionEnabled(false);
                }
                else
                {
-                       if(__pAddressbarUrlField->IsKeypadActionEnabled() == false)
-                       {
-                               __pAddressbarUrlField->SetKeypadActionEnabled(true);
-                               GetParent()->GetParent()->Invalidate(true);
-                       }
+                       __pAddressbarUrlField->SetKeypadActionEnabled(true);
                }
        }
-
 }
 
 void
+Addressbar::OnDeviceStateChanged(DeviceType deviceType, const String &state)
+{
+       AppLog("1234:: Addressbar::OnDeviceStateChanged %ls %d",state.GetPointer(),(int)deviceType);
+       if(deviceType == DEVICE_TYPE_KEYBOARD && state.Equals(L"Closed",true) == 0)
+       {
+               __isKeyboardConnected = true;
+       }
+}
+void
 Addressbar::SetAddressbarURLFocus()
 {
-       __pAddressbarUrlField->SetFocus();
+       AppLog("Addressbar::SetAddressbarURLFocus");
+       result r = __pAddressbarUrlField->SetFocus();
+       AppLog("Addressbar::SetAddressbarURLFocus result %s",GetErrorMessage(r));
 }
 
 String
@@ -873,3 +711,28 @@ Addressbar::GetAddressbarURL()
 {
        return __pAddressbarUrlField->GetText();
 }
+
+bool
+Addressbar::HasCurrentFocus()
+{
+       return __pAddressbarUrlField->HasFocus();
+}
+
+void
+Addressbar::HideKeypad()
+{
+       __pAddressbarUrlField->HideKeypad();
+}
+
+void
+Addressbar::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
+{
+       if (requestId == BACK_GROUND_APP_EVENT)
+       {
+               __isAppBackGround = true;
+       }
+       else if(requestId == FORE_GROUND_APP_EVENT)
+       {
+               __isAppBackGround = false;
+       }
+}