patch for rc20
[framework/osp/web.git] / src / controls / FWebCtrl_AuthConfirmPopup.cpp
index 6959353..9b3108b 100755 (executable)
 #include <FBaseSysLog.h>
 #include <FGrpDimension.h>
 #include <FGrpRectangle.h>
+#include <FSysVibrator.h>
 #include <FUiCtrlButton.h>
 #include <FUiCtrlEditField.h>
 #include <FUiCtrlLabel.h>
 #include <FUiCtrlPanel.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
-#include <FWebCtrlAuthenticationChallenge.h>
 #include <FSys_SystemResource.h>
+#include <FSys_VibratorImpl.h>
 #include <FUi_ControlManager.h>
 #include <FUi_ResourceManager.h>
-#include "FWebCtrl_WebImpl.h"
 #include "FWebCtrl_AuthConfirmPopup.h"
+#include "FWebCtrl_WebImpl.h"
 
 
 using namespace Tizen::Base;
@@ -45,17 +47,17 @@ using namespace Tizen::Ui;
 using namespace Tizen::Ui::Controls;
 
 
-static const int AUTH_POPUP_TMP_LABLE_HEIGHT = 10;
-
-
 namespace Tizen { namespace Web { namespace Controls
 {
 
 
+static const int EDIT_TEXT_SIZE = 35;
+
+
 _AuthConfirmPopup::_AuthConfirmPopup(void)
        : __pIdEditField(null)
        , __pPwdEditField(null)
-       , __pAuthHandler(null)
+       , __pImpl(null)
 {
 }
 
@@ -67,11 +69,10 @@ _AuthConfirmPopup::~_AuthConfirmPopup(void)
 
 // Authentication popup
 result
-_AuthConfirmPopup::Construct(const String& host, const String& realm, AuthenticationChallenge* pAuth)
+_AuthConfirmPopup::Construct(const String& host, const String& realm, _WebImpl* pImpl)
 {
-       SysTryReturnResult(NID_WEB_CTRL, pAuth != null, E_INVALID_ARG, "invalid argument(s) is used. The AuthenticationChallenge is null.");
-
-       __pAuthHandler = pAuth;
+       __pImpl = pImpl;
+       SysAssertf(__pImpl != null, "Failed to get _WebImpl");
 
        _SystemResource* pSysResource = _SystemResource::GetInstance();
        SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
@@ -82,11 +83,11 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
 
        Rectangle rect(0, 0, 0, 0);
        rect.width = pPopupData->popupDim.width;
-       rect.height = (5*pPopupData->spacePad) + (pPopupData->editDim.height*2) + pPopupData->btnDim.height + 2*pPopupData->labelDim.height;
+       rect.height = (2*pPopupData->spacePad) + (pPopupData->editDim.height*2) + pPopupData->panelHeight + (2*pPopupData->labelDim.height);
        r = _WebPopup::Construct(true, Dimension(rect.width, rect.height));
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       SetTitleText("Authentication Required");
+       SetTitleText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_HEADER_ENTER_CREDENTIALS_ABB"));
 
        //host realm label
        rect.height = 2*pPopupData->labelDim.height;
@@ -94,11 +95,9 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        std::unique_ptr<Label> pLabel(new (std::nothrow) Label());
        SysTryReturnResult(NID_WEB_CTRL, pLabel.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
 
-       String hostRealm(L"A username and password are being requested by ");
-       hostRealm.Append(host);
-       hostRealm.Append(L". The site says: \"");
+       String hostRealm(host);
+       hostRealm.Append(L": \n ");
        hostRealm.Append(realm);
-       hostRealm.Append(L"\"");
        r = pLabel->Construct(rect, hostRealm);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -113,6 +112,7 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        rect.x = 0;
        rect.y = 0;
        rect.height = pPopupData->editDim.height;
+       rect.width = pPopupData->labelDim.width;
 
        std::unique_ptr<EditField> pIdEditField(new (std::nothrow) EditField());
        SysTryReturnResult(NID_WEB_CTRL, pIdEditField.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
@@ -120,9 +120,9 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        r = pIdEditField->Construct(rect, EDIT_FIELD_STYLE_NORMAL);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       pIdEditField->SetGuideText(L"User name");
+       pIdEditField->SetGuideText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_WIFI_BODY_ENTER_YOUR_ID"));
        pIdEditField->SetGuideTextColor(Color::GetColor(COLOR_ID_GREY));
-       pIdEditField->SetTextSize(35);;
+       pIdEditField->SetTextSize(EDIT_TEXT_SIZE);;
 
        r = AddControl(*pIdEditField);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
@@ -135,31 +135,34 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        r = pPwdEditField->Construct(rect, EDIT_FIELD_STYLE_PASSWORD);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       pPwdEditField->SetGuideText(L"Password");
+       pPwdEditField->SetGuideText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ENTER_YOUR_PASSWORD_ABB"));
        pPwdEditField->SetGuideTextColor(Color::GetColor(COLOR_ID_GREY));
-       pPwdEditField->SetTextSize(35);;
+       pPwdEditField->SetTextSize(EDIT_TEXT_SIZE);;
 
        r = AddControl(*pPwdEditField);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        __pPwdEditField = pPwdEditField.release();
+
        __pIdEditField->SetFocus();
 
        Panel* pButtonPanel = CreateAndAddPanel();
        SysTryReturn(NID_WEB_CTRL, pButtonPanel, r = GetLastResult(), r, "[%s] Propagating.", GetErrorMessage(r));
 
        //Add Buttons
-       ArrayList idList;
+       ArrayList idList(SingleObjectDeleter);
        r = idList.Construct();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       idList.Add(*(new Integer(ID_BUTTON_AUTH_PROCESS)));
-       idList.Add(*(new Integer(ID_BUTTON_AUTH_CANCEL)));
 
-       ArrayList titleList;
+       idList.Add(new Integer(ID_BUTTON_AUTH_CANCEL));
+       idList.Add(new Integer(ID_BUTTON_AUTH_PROCESS));
+
+
+       ArrayList titleList(SingleObjectDeleter);
        r = titleList.Construct();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       titleList.Add(*(new String(pSysResource->GetString("sys_string", "IDS_COM_SK_OK"))));
-       titleList.Add(*(new String(pSysResource->GetString("sys_string", "IDS_COM_POP_CANCEL"))));
+       titleList.Add(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CANCEL_ABB")));
+       titleList.Add(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CONTINUE_ABB")));
 
        r = CreateAndAddButtons(idList, titleList, pButtonPanel);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
@@ -167,19 +170,15 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        std::unique_ptr<VerticalBoxLayout> pLayout(dynamic_cast< VerticalBoxLayout* >(GetLayoutN()));
        SysTryReturn(NID_WEB_CTRL, pLayout.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
-       pLayout->SetHorizontalFitPolicy(*pHostLabel, FIT_POLICY_PARENT);
-       pLayout->SetHorizontalFitPolicy(*__pIdEditField, FIT_POLICY_PARENT);
-       pLayout->SetHorizontalFitPolicy(*__pPwdEditField, FIT_POLICY_PARENT);
-       pLayout->SetHorizontalFitPolicy(*pButtonPanel, FIT_POLICY_PARENT);
-
        pLayout->SetHorizontalAlignment(*pHostLabel, LAYOUT_HORIZONTAL_ALIGN_CENTER);
        pLayout->SetHorizontalAlignment(*__pIdEditField, LAYOUT_HORIZONTAL_ALIGN_CENTER);
        pLayout->SetHorizontalAlignment(*__pPwdEditField, LAYOUT_HORIZONTAL_ALIGN_CENTER);
-       pLayout->SetHorizontalAlignment(*pButtonPanel, LAYOUT_HORIZONTAL_ALIGN_CENTER);
 
        pLayout->SetSpacing(*__pPwdEditField, pPopupData->spacePad);
        pLayout->SetSpacing(*pButtonPanel, pPopupData->spacePad);
 
+       SetPropagatedKeyEventListener(this);
+
        return E_SUCCESS;
 }
 
@@ -189,22 +188,71 @@ _AuthConfirmPopup::OnActionPerformed(const Control& source, int actionId)
 {
        result r = E_SUCCESS;
 
+       r = HidePopup();
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       ArrayList* pAuthValueList = null;
+
        switch (actionId)
        {
        case ID_BUTTON_AUTH_PROCESS:
-               __pAuthHandler->Process(__pIdEditField->GetText(), __pPwdEditField->GetText());
+
+               pAuthValueList = new (std::nothrow) ArrayList();
+               pAuthValueList->Construct();
+               pAuthValueList->Add(new String(__pIdEditField->GetText()));
+               pAuthValueList->Add(new String(__pPwdEditField->GetText()));
+               __pImpl->SendUserEvent(ID_AUTHENTICATION_CONFIRM_POPUP_PROCESS, pAuthValueList);
                break;
 
        case ID_BUTTON_AUTH_CANCEL:
-               __pAuthHandler->Cancel();
+               __pImpl->SendUserEvent(ID_AUTHENTICATION_CONFIRM_POPUP_CANCEL, null);
                break;
 
        default:
                break;
        }
+}
 
-       r = HidePopup();
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+bool
+_AuthConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_AuthConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       result r = E_SUCCESS;
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               r = HidePopup();
+               if (IsFailed(r))
+               {
+                       SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
+
+               __pImpl->SendUserEvent(ID_AUTHENTICATION_CONFIRM_POPUP_CANCEL, null);
+       }
+
+       return false;
+}
+
+bool
+_AuthConfirmPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_AuthConfirmPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_AuthConfirmPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
 }