Fixed Nabi Issues: 53721,53372,53761,53768
[apps/osp/Internet.git] / src / IntAddBookmarkForm.cpp
index f341684..82cf5bd 100644 (file)
@@ -44,7 +44,7 @@ using namespace Tizen::Ui::Scenes;
 
 static const int LIST_ITEM_HEIGHT = 112;
 static const int H_ITEM_HEIGHT = 112;
-static const int H_TITLE_ITEM_HEIGHT = 140;
+static const int H_TITLE_ITEM_HEIGHT = 144;
 static const wchar_t* IDB_LIST_LEFT_SIDE = L"ListLeftSide.png";
 
 const int AddBookmarkForm::IDA_CREATE_BOOKMARK_FOLDER = 101;
@@ -72,7 +72,8 @@ AddBookmarkForm::AddBookmarkForm(void)
 ,__titleOnViewDeactivated(L"")
 , __view(L"")
 ,__urlOnViewDeactivated(L"")
-
+, __itemHeight(0)
+, __dropdownItemHeight(0)
 {
 
 }
@@ -118,7 +119,7 @@ AddBookmarkForm::OnInitializing(void)
        {
                return E_FAILURE;
        }
-       __pScrollPanel->SetPageScrollEnabled(true);
+       //__pScrollPanel->SetPageScrollEnabled(true);
        // Title EditField added on the Scroll Panel
        __pEditFieldTitle = static_cast< EditField* >(__pScrollPanel->GetControl(L"IDC_EDITFIELD1"));
 
@@ -161,6 +162,7 @@ AddBookmarkForm::OnInitializing(void)
        ScrollPanelScrollDirection direction = __pScrollPanel->GetScrollDirection();
        AppLogDebug("ScrollDirection = %d SetClientAreaHeight ret = %s value = %d autoresize = %d",direction,GetErrorMessage(r),__pScrollPanel->GetClientAreaBounds().height,__pScrollPanel->IsScrollAreaAutoResizingEnabled());
        __fontSize = CommonUtil::GetFontSize();
+       __itemHeight = 112 + (__fontSize-44);
        r = E_SUCCESS;
 
        return r;
@@ -287,8 +289,22 @@ AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
 
                                AppLog("IDA_BUTTON_DONE tempParentId ID is %S",tempParentId.GetPointer());
                                AppLog("IDA_BUTTON_DONE bookMarkID ID is %S",bookMarkID.GetPointer());
+                               String urlText = __pEditFieldUrl->GetText();
+                               String urlWithSlash = L"";
+                               String urlWithoutSlash = L"";
+                               if(urlText.EndsWith(L"/"))
+                               {
+                                       urlWithSlash = urlText;
+                                       urlText.SubString(0,urlText.GetLength()-1,urlWithoutSlash);
+                               }
+                               else
+                               {
+                                       urlWithoutSlash = urlText;
+                                       urlWithSlash = urlWithoutSlash;
+                                       urlWithSlash.Append(L"/");
+                               }
 
-                               if (bookMarkID.CompareTo(tempParentId) == 0 && __pEditFieldUrl->GetText().CompareTo(tempUrl) == 0 && __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
+                               if (bookMarkID.CompareTo(tempParentId) == 0 && (urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 )&& __pEditFieldTitle->GetText().CompareTo(tempTitle) == 0)
                                {
                                        pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
                                        return;
@@ -301,7 +317,7 @@ AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
                                }
 
 
-                               if ( exist == true)
+                               if ( exist == true && !(urlWithSlash.CompareTo(tempUrl) == 0 || urlWithoutSlash.CompareTo(tempUrl) == 0 ))
                                {
                                        String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
                                        CreateMessage(msg);
@@ -361,7 +377,7 @@ AddBookmarkForm::OnActionPerformed(const Control& source, int actionId)
                                AppLog("AddBookmarkForm::OnActionPerformed does url exist 2");
                                if ( exist  == true)
                                {
-                                       String msg = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ALREADY_EXISTS");
+                                       String msg = CommonUtil::GetString(L"IDS_BR_POP_ALREADY_EXISTS");
                                        CreateMessage(msg);
 
                                        AppLogDebug("Bookmark already exists");
@@ -467,6 +483,7 @@ AddBookmarkForm::OnListViewItemLongPressed(ListView& listView, int index, int el
 void
 AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
 {
+       AppLog("AddBookmarkForm::OnListViewItemStateChanged listitemstatus %d for index",status,index);
        if (__pEditFieldTitle != NULL)
        {
                __pEditFieldTitle->HideKeypad();
@@ -483,7 +500,7 @@ AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int e
                        AppLog("AddBookmarkForm::OnListViewItemStateChanged false");
                        __showFolderList = true;
                        __pList->UpdateList();
-                       __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() -1) * H_ITEM_HEIGHT;
+                       __listHeight = __dropdownItemHeight + (__pList->GetItemCount() -1) * __itemHeight;
 
                }
                else
@@ -491,14 +508,17 @@ AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int e
                        AppLog("AddBookmarkForm::OnListViewItemStateChanged true");
                        __showFolderList = false;
                        __pList->UpdateList();
-                       __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() - 1) * H_ITEM_HEIGHT;
+                       __listHeight = __dropdownItemHeight + (__pList->GetItemCount() - 1) * __itemHeight;
 
                }
 
        }
        else
        {
+               __pList->SetItemChecked(__selectedIndex,false);
+               __pList->SetItemChecked(index,true);
                __selectedIndex = index;
+
                if (index > 1 && __pList->GetItemCount() != index +1)
                {
                        String parentID = "0";
@@ -513,15 +533,15 @@ AddBookmarkForm::OnListViewItemStateChanged(ListView& listView, int index, int e
                {
                        __folderName = CommonUtil::GetString(L"IDS_BR_TAB_BOOKMARKS") ;
                }
-               __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount()-1) * H_ITEM_HEIGHT;
+               __listHeight = __dropdownItemHeight + (__pList->GetItemCount()-1) * __itemHeight;
                if (__pList->GetItemCount() == index +1)
                {
                        SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CREATE_BOOKMARK_FOLDER, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
                        return;
                }
 
-               __pList->UpdateList();
-               //              __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
+//             __pList->UpdateList();//removed for issue 53372
+                               __pList->RefreshList(0, LIST_REFRESH_TYPE_ITEM_MODIFY);
 
        }
 
@@ -622,6 +642,7 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
                        return null;
                }
 
+               __dropdownItemHeight = 140 + (__fontSize - 44);
                if ( __showFolderList == true )
                {
                        pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
@@ -633,8 +654,8 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
 
 
                pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
-               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
-               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
                pItem->SetMainText(CommonUtil::GetString(L"IDS_BR_HEADER_FOLDER"));
                pItem->SetSubText(__folderName);
                pItem->Make();
@@ -656,8 +677,8 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
                if (index == 1)
                {
                        radioItem = new(std::nothrow) RadioCustomItem();
-                       //                      r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
-                       r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
+                       //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
+                       r = radioItem->Construct(itemWidth, __itemHeight);
                        if (IsFailed(r))
                        {
                                AppLog("Create Item Failed with error %s", GetErrorMessage(r));
@@ -683,8 +704,8 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
                                folderTitle = pBookmark->GetBookmarkTitle();
                        }
                        radioItem = new(std::nothrow) RadioCustomItem();
-                       //                      r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
-                       r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
+                       //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
+                       r = radioItem->Construct(itemWidth, __itemHeight);
                        if (IsFailed(r))
                        {
                                AppLog("Create Item Failed with error %s", GetErrorMessage(r));
@@ -703,8 +724,8 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
                else
                {
                        radioItem = new(std::nothrow) RadioCustomItem();
-                       //                      r = radioItem->Construct(GetClientAreaBounds().width, LIST_ITEM_HEIGHT);
-                       r = radioItem->Construct(itemWidth, LIST_ITEM_HEIGHT);
+                       //                      r = radioItem->Construct(GetClientAreaBounds().width, __itemHeight);
+                       r = radioItem->Construct(itemWidth, __itemHeight);
                        if (IsFailed(r))
                        {
                                AppLog("Create Item Failed with error %s", GetErrorMessage(r));
@@ -712,7 +733,7 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
                                delete pBitmap;
                                return null;
                        }
-                       //radioItem->AddElement(Rectangle(MARGIN_X, 0, __pList->GetBounds().width, LIST_ITEM_HEIGHT), IDA_FORMAT_STRING1, CommonUtil::GetString(L"IDS_CREATE_NEW_FOLDER"), textsize, Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), true);
+                       //radioItem->AddElement(Rectangle(MARGIN_X, 0, __pList->GetBounds().width, itemHeight), IDA_FORMAT_STRING1, CommonUtil::GetString(L"IDS_CREATE_NEW_FOLDER"), textsize, Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), true);
                        folderTitle = CommonUtil::GetString(L"IDS_BR_OPT_NEW_FOLDER");
                        radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
                        radioItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
@@ -725,23 +746,28 @@ AddBookmarkForm::CreateItem(int index, int itemWidth)
 
                if (__selectedIndex == index)
                {
-                       radioItem->SetSelected(true);
+//                     radioItem->SetSelected(true);
+                       __pList->SetItemChecked(index,true);
                }
                else
                {
-                       radioItem->SetSelected(false);
+//                     radioItem->SetSelected(false);
+                       __pList->SetItemChecked(index,false);
                }
 
                if(__selectedIndex == 0 && index == 1)
-                       radioItem->SetSelected(true);
-               if (radioItem->GetSelected() == true)
+               {
+//                     radioItem->SetSelected(true);
+                       __pList->SetItemChecked(index,true);
+               }
+               if (__pList->IsItemChecked(index) == true)
                {
                        __folderName = radioItem->GetText();
                }
 
                if (pBitmap != null)
                {
-                       //radioItem->AddElement(Rectangle(0, 0, 10, LIST_ITEM_HEIGHT), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
+                       //radioItem->AddElement(Rectangle(0, 0, 10, itemHeight), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
                        delete pBitmap;
                }
 
@@ -872,7 +898,7 @@ AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId
                                return;
                        }
 
-                       if(pWindowInfo->pageTitle.CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_ABOUT_C_BLANK")) != 0)
+                       if(pWindowInfo->pageTitle.CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE")) != 0)
                                pageTitle = pWindowInfo->pageTitle;
 
                        if(pWindowInfo->pageUrl.IsEmpty() == false)
@@ -931,10 +957,10 @@ AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId
                }
        }
 
-       if(__pEditFieldTitle != NULL)
-       {
-               __pEditFieldTitle->ShowKeypad();
-       }
+//     if(__pEditFieldTitle != NULL)
+//     {
+//             __pEditFieldTitle->ShowKeypad();
+//     }
        if ( previousSceneId != IDSCN_CREATE_BOOKMARK_FOLDER )
        {
                if (__pEditFieldTitle != NULL)
@@ -1036,12 +1062,12 @@ AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId
        // To disable done button if either of the Title or Url field is empty
        if (title.GetLength() == 0 || url.GetLength() == 0)
        {
-               pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+               pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
                pHeader->Invalidate(true);
        }
        else
        {
-               pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+               pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
                pHeader->Invalidate(true);
        }
 
@@ -1049,8 +1075,9 @@ AddBookmarkForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId
        {
 
                __pList->UpdateList();
-               __listHeight = H_TITLE_ITEM_HEIGHT + (__pList->GetItemCount() - 1) * H_ITEM_HEIGHT;
+               __listHeight = __dropdownItemHeight + (__pList->GetItemCount() - 1) * __itemHeight;
                __pList->SetBounds(__pList->GetX(),__pList->GetY(),__pList->GetWidth(),__listHeight);
+               AppLog("ListWidth %d",__pList->GetWidth());
        }
 
        Invalidate(true);
@@ -1121,12 +1148,12 @@ AddBookmarkForm::OnTextValueChanged(const Control& source)
        // To disable done button if either of the Title or Url field is empty
        if (title.GetLength() == 0 || url.GetLength() == 0)
        {
-               pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+               pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
                pHeader->Invalidate(true);
        }
        else
        {
-               pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+               pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
                pHeader->Invalidate(true);
        }
 
@@ -1148,7 +1175,7 @@ AddBookmarkForm::CreateMessage(String& str)
        pMsgBox = new(std::nothrow) MessageBox;
        if (pMsgBox != null)
        {
-               pMsgBox->Construct(str, L"", MSGBOX_STYLE_OK, 3000);
+               pMsgBox->Construct(L"", str, MSGBOX_STYLE_OK, 3000);
                pMsgBox->ShowAndWait(__modalMsgBoxResult);
                delete pMsgBox;
                pMsgBox = null;