3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
\r
5 // Licensed under the Flora License, Version 1.0 (the License);
\r
6 // you may not use this file except in compliance with the License.
\r
7 // You may obtain a copy of the License at
\r
9 // http://floralicense.org/license/
\r
11 // Unless required by applicable law or agreed to in writing, software
\r
12 // distributed under the License is distributed on an AS IS BASIS,
\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 // See the License for the specific language governing permissions and
\r
15 // limitations under the License.
\r
18 //!Internet EditHomePageForm class
\r
19 /*@file: EditHomePageForm.h
\r
20 *@brief: Allow user to set any page as Home page.
\r
24 #include <FAppUiApp.h>
\r
27 #include "IntBookmarkData.h"
\r
28 #include "IntCommonLib.h"
\r
29 #include "IntEditHomePageForm.h"
\r
30 #include "IntMultipleWindowPresentationModel.h"
\r
31 #include "IntSceneRegister.h"
\r
32 #include "IntSettingPresentationModel.h"
\r
35 using namespace Tizen::App;
\r
36 using namespace Tizen::Base;
\r
37 using namespace Tizen::Base::Collection;
\r
38 using namespace Tizen::Base::Utility;
\r
39 using namespace Tizen::Graphics;
\r
40 using namespace Tizen::Ui;
\r
41 using namespace Tizen::Ui::Controls;
\r
42 using namespace Tizen::Ui::Scenes;
\r
44 const int EditHomePageForm::IDA_BUTTON_DONE = 101;
\r
45 const int EditHomePageForm::IDA_BUTTON_CANCEL = 102;
\r
47 EditHomePageForm::EditHomePageForm(void)
\r
48 :__pUrlEditField(null)
\r
50 , __modalMsgBoxResult(0)
\r
55 EditHomePageForm::~EditHomePageForm(void)
\r
61 EditHomePageForm::Initialize(void)
\r
63 Construct(L"IDL_EDIT_HOME_PAGE");
\r
64 SetOrientation(ORIENTATION_AUTOMATIC);
\r
69 EditHomePageForm::OnInitializing(void)
\r
71 result r = E_SUCCESS;
\r
72 SetFormBackEventListener(this);
\r
73 SceneManager* pSceneManager = SceneManager::GetInstance();
\r
74 AppAssert(pSceneManager);
\r
75 pSceneManager->AddSceneEventListener(IDSCN_EDIT_HOMEPAGE_VIEW, *this);
\r
77 GetHeader()->AddActionEventListener(*this);
\r
79 __pUrlEditField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD"));
\r
80 if (__pUrlEditField != null)
\r
82 __pUrlEditField->AddTextEventListener(*this);
\r
83 __pUrlEditField->SetOverlayKeypadCommandButtonVisible(false);
\r
89 EditHomePageForm::OnTerminating(void)
\r
91 result r = E_SUCCESS;
\r
96 EditHomePageForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
\r
98 if (__pUrlEditField != null)
\r
100 String favURL = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
\r
101 AppLogDebug("EditHomePageForm::OnSceneActivatedN favURL %ls",favURL.GetPointer());
\r
102 __pUrlEditField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteUrl());
\r
103 __pUrlEditField->SetFocus();
\r
104 __pUrlEditField->SetCursorPosition(__pUrlEditField->GetTextLength());
\r
105 __pUrlEditField->ShowKeypad();
\r
106 __pUrlEditField->Invalidate(true);
\r
115 EditHomePageForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
\r
121 EditHomePageForm::OnFormBackRequested(Form& source)
\r
127 EditHomePageForm::OnActionPerformed(const Control& source, int actionId)
\r
129 ArrayList* pArgList = null;
\r
130 pArgList = new(std::nothrow) ArrayList();
\r
133 case IDA_BUTTON_DONE:
\r
135 pArgList->Add(*new(std::nothrow) String(CommonUtil::GetString(L"IDS_BR_SK_DONE")));
\r
136 String urlText = __pUrlEditField->GetText();
\r
138 AppLogDebug("set url text is %ls",urlText.GetPointer());
\r
142 String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
\r
143 String secondPattern(L"^[A-Za-z0-9\.\+-:#@%/;$~?]+\\.[A-Za-z0-9\+-=:#@%/;$~()_?\\\.&]{2,}$"); // URL of type abc.com (i.e without protocol in front of it)
\r
144 RegularExpression firstRegex;
\r
145 RegularExpression secondRegex;
\r
147 firstRegex.Construct(firstPattern, REGEX_CASELESS);
\r
148 secondRegex.Construct(secondPattern, REGEX_CASELESS);
\r
151 uri.SetUri(urlText);
\r
152 urlText = uri.GetEncodedString();
\r
155 ret = firstRegex.Match(urlText, false); // This returns true value
\r
156 flag = secondRegex.Match(urlText, false); // Checks whether URL typed is of type abc.com (i.e without protocol in front of it)
\r
162 SettingPresentationModel::GetInstance()->SetHomepage(urlText);
\r
163 SettingPresentationModel::GetInstance()->SetFavoriteValue(urlText);
\r
164 result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(), pArgList);
\r
165 TryCatch(!IsFailed(r), "EditHomePageForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
\r
172 validUrl = L"http://";
\r
173 validUrl.Append(urlText);
\r
175 SettingPresentationModel::GetInstance()->SetHomepage(validUrl);
\r
176 SettingPresentationModel::GetInstance()->SetFavoriteValue(validUrl);
\r
177 result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(), pArgList);
\r
178 TryCatch(!IsFailed(r), "EditHomePageForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
\r
182 // show pop up , not a valid URL
\r
183 String msg = CommonUtil::GetString(L"IDS_BR_POP_INVALIDADDRESS");
\r
184 CreateMessage(msg);
\r
190 case IDA_BUTTON_CANCEL:
\r
192 pArgList->Add(*new(std::nothrow) String(CommonUtil::GetString(L"IDS_BR_SK_CANCEL")));
\r
193 result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(), pArgList);
\r
194 TryCatch(!IsFailed(r), "EditHomePageForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
\r
202 pArgList->RemoveAll(true);
\r
208 EditHomePageForm::OnTextValueChanged(const Control& source)
\r
211 Header* pHeader = GetHeader();
\r
213 if (pHeader == NULL)
\r
218 if (__pUrlEditField == NULL)
\r
223 title = __pUrlEditField->GetText();
\r
226 // To disable done button when folder title edit-field is empty
\r
227 if (__pUrlEditField && title.IsEmpty() == true)
\r
229 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
\r
233 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
\r
235 pHeader->Invalidate(true);
\r
240 EditHomePageForm::OnTextValueChangeCanceled(const Control& source)
\r
246 EditHomePageForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
\r
252 EditHomePageForm::CreateMessage(String& message)
\r
255 if (__pMsgBox != null)
\r
259 __modalMsgBoxResult = 0;
\r
262 __pMsgBox = new(std::nothrow) MessageBox;
\r
263 if (__pMsgBox != null)
\r
265 __pMsgBox->Construct(L"", message, MSGBOX_STYLE_OK, 3000);
\r
268 if (__pMsgBox != null)
\r
270 __pMsgBox->ShowAndWait(__modalMsgBoxResult);
\r
271 if (__modalMsgBoxResult == MSGBOX_RESULT_OK)
\r
273 if (__pMsgBox != null)
\r
279 __modalMsgBoxResult = 0;
\r