Add removing http prefix from URL, add preventing from loading view two times. 29/46229/4
authorMaciej Skrzypkowski <m.skrzypkows@samsung.com>
Wed, 19 Aug 2015 09:13:52 +0000 (11:13 +0200)
committerJanusz Majnert <j.majnert@samsung.com>
Wed, 19 Aug 2015 12:19:31 +0000 (05:19 -0700)
[Issue#] https://bugs.tizen.org/jira/browse/TT-73
[Problem] Full URL was shown, second click on button caused
          hiding view.
[Cause] N/A
[Solution] Parsing URL, preventing second view show.
[Verify] Check URL on "Most visited" tiles, check if second click on
         "Most visited" or "Bookmark" button causes hiding view.

Change-Id: I0b043c75e2779ae277620cc16d14c221da64df22
Signed-off-by: Maciej Skrzypkowski <m.skrzypkows@samsung.com>
services/MainUI/MainUI.cpp

index c6feff8febcd18fd905897e319c65ee568df88cf..8e4afd75a15bfb69cf140ce76ad1424d0d3d0c9e 100644 (file)
@@ -31,6 +31,9 @@ namespace tizen_browser{
 namespace base_ui{
 
 const int SMALL_TILES_ROWS = 2;
+const int SUFIX_CHAR_DEL = 1;
+const char * HTTP_PREFIX = "http://";
+const char * HTTPS_PREFIX = "https://";
 
 EXPORT_SERVICE(MainUI, "org.tizen.browser.mainui")
 
@@ -229,6 +232,8 @@ void MainUI::_mostVisited_clicked(void * data, Evas_Object * /* obj */, void * e
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     MainUI* mainUI = reinterpret_cast<MainUI *>(data);
+    if (elm_object_part_content_get(mainUI->m_layout, "elm.swallow.left"))  // check if most visited view is already set
+        return;
     mainUI->mostVisitedClicked(std::string());
 }
 
@@ -236,6 +241,8 @@ void MainUI::_bookmark_clicked(void * data, Evas_Object * /* obj */, void * even
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     MainUI* mainUI = reinterpret_cast<MainUI *>(data);
+    if (elm_object_part_content_get(mainUI->m_layout, "elm.swallow.grid"))  // check if bookmark view is already set
+        return;
     mainUI->bookmarkClicked(std::string());
 }
 
@@ -323,14 +330,21 @@ void MainUI::addBookmarkItems(std::vector<std::shared_ptr<tizen_browser::service
 
 char* MainUI::_grid_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       HistoryItemData *itemData = reinterpret_cast<HistoryItemData*>(data);
-       if (!strcmp(part, "page_title")) {
-               return strdup(itemData->item->getTitle().c_str());
-       }
-       if (!strcmp(part, "page_url")) {
-               return strdup(itemData->item->getUrl().c_str());
-       }
-       return strdup("");
+    HistoryItemData *itemData = reinterpret_cast<HistoryItemData*>(data);
+    if (!strcmp(part, "page_title")) {
+        return strdup(itemData->item->getTitle().c_str());
+    }
+    if (!strcmp(part, "page_url")) {
+        if (itemData->item->getUrl().find(HTTPS_PREFIX) == 0) {
+            size_t len = strlen(HTTPS_PREFIX);
+            return strdup(itemData->item->getUrl().substr(len, itemData->item->getUrl().size() - len - SUFIX_CHAR_DEL).c_str());      // remove https prefix
+        } else if (itemData->item->getUrl().find(HTTP_PREFIX) == 0) {
+            size_t len = strlen(HTTP_PREFIX);
+            return strdup(itemData->item->getUrl().substr(len, itemData->item->getUrl().size() - len - SUFIX_CHAR_DEL).c_str());      // remove http prefix
+        }
+        return strdup(itemData->item->getUrl().c_str());
+    }
+    return strdup("");
 }
 
 char* MainUI::_grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part)