[Porting_2.4_UI_to_3.0] TabUI - secret mode items style 38/86938/3
authorm.kawonczyk <m.kawonczyk@samsung.com>
Mon, 5 Sep 2016 13:42:27 +0000 (15:42 +0200)
committerDariusz Frankiewicz <d.frankiewic@samsung.com>
Tue, 6 Sep 2016 13:23:58 +0000 (06:23 -0700)
[Issue]        http://suprem.sec.samsung.net/jira/browse/TWF-1897
[Problem]      Tab items didn't change colors when secret mode was
               enabled.
[Solution]     Add realized callback, added new descriptions in edc.
[Verify]       Open tab manager in secret mode, add tabs. Check if
               everything works as intended.

Change-Id: If29c50ee9d0036e6bcb7ea637ffc3a0473f6cced

core/AbstractWebEngine/TabId.cpp
core/AbstractWebEngine/TabId.h
core/Tools/edc/ColorClasses.edc
services/TabUI/TabUI.cpp
services/TabUI/TabUI.h
services/TabUI/edc/TabUI_mob.edc
services/WebEngineService/WebEngineService.cpp

index b455a22b4f8459f8d1658cd1b364cb9c205105cc..42c27c5f1d656ef6eae02ea3539b775a118ca7ba 100644 (file)
@@ -53,17 +53,19 @@ TabContent::TabContent(TabId id,
         const std::string& url,
         const std::string& title,
         const TabOrigin& origin,
-        tools::BrowserImagePtr thumbnail)
+        tools::BrowserImagePtr thumbnail,
+        bool isSecret)
     : m_id(id)
     , m_url(url)
     , m_title(title)
     , m_origin(origin)
     , m_thumbnail(thumbnail)
+    , m_isSecret(isSecret)
 {
 }
 
-TabContent::TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin) :
-        TabContent(id, url, title, origin, std::make_shared<tools::BrowserImage>())
+TabContent::TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin, bool isSecret) :
+        TabContent(id, url, title, origin, std::make_shared<tools::BrowserImage>(), isSecret)
 {
 }
 
@@ -97,5 +99,10 @@ tools::BrowserImagePtr TabContent::getThumbnail() const
     return m_thumbnail;
 }
 
+bool TabContent::getIsSecret() const
+{
+    return m_isSecret;
+}
+
 } /* end of basic_webengine */
 } /* end of tizen_browser */
index 01440821772c9930a7c956419efbc9356c199893..bc383f0dc96c7e82b184bec6695b8c221dbc90dd 100644 (file)
@@ -70,14 +70,20 @@ public:
             const std::string& url,
             const std::string& title,
             const TabOrigin& origin,
-            tools::BrowserImagePtr thumbnail);
-    TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin);
+            tools::BrowserImagePtr thumbnail,
+            bool isSecret = false);
+    TabContent(const TabId& id,
+               const std::string& url,
+               const std::string& title,
+               const TabOrigin& origin,
+               bool isSecret = false);
     TabId getId() const;
     std::string getUrl() const;
     std::string getTitle() const;
     TabOrigin getOrigin() const;
     void setThumbnail(tools::BrowserImagePtr thumbnail);
     tools::BrowserImagePtr getThumbnail() const;
+    bool getIsSecret() const;
 
 private:
     TabId m_id;
@@ -85,6 +91,7 @@ private:
     std::string m_title;
     TabOrigin m_origin;
     tools::BrowserImagePtr m_thumbnail;
+    bool m_isSecret;
 
 };
 } /* end of basic_webengine */
index 16d80345a7e7a0a6980d86f7e32067a7425a06b7..44928cbc2ca3aba9281899e841b01945960f6fb3 100644 (file)
@@ -15,22 +15,37 @@ color_classes {
     }
     color_class {
         name: "AO027";
-        color: 0 0 0 255;
+        //TODO: add correct color when guidelines are fixed.
+        color: 61 185 204 255;
+    }
+    color_class {
+        name: "tabs_secret_bg";
+        color: 97 97 97 255;
+    }
+    color_class {
+        name: "AO028";
+        color: 15 125 153 255;
     }
     color_class {
         name: "AO030";
         color: 102 102 102 205;
     }
+    color_class {
+        name: "AO033";
+        color: 0 0 0 127;
+    }
     color_class {
         name: "AO034";
         color: 0 0 0 205;
     }
     color_class {
         name: "AO035";
+        //TODO: add correct color when guidelines are fixed.
         color: 255 255 255 230;
     }
     color_class {
         name: "secret";
+        //TODO: add correct color when guidelines are fixed.
         color: 97 97 97 255;
     }
 //Font colors
index 701ab65472f608207b86a9c88bf81bba47a76349..f9f5c6304fab4a228a96f077021497a777acbf77 100644 (file)
@@ -211,6 +211,7 @@ void TabUI::createGengrid()
     elm_gengrid_align_set(m_gengrid, 0.5, 0.0);
     evas_object_smart_callback_add(m_gengrid, "pressed", _gengrid_tab_pressed, this);
     evas_object_smart_callback_add(m_gengrid, "released", _gengrid_tab_released, this);
+    evas_object_smart_callback_add(m_gengrid, "realized", _gengrid_tab_realized, this);
 
     elm_object_part_content_set(m_content, "elm.swallow.content", m_gengrid);
     evas_object_show(m_gengrid);
@@ -232,12 +233,20 @@ void TabUI::orientationChanged()
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     boost::optional<bool> landscape = isLandscape();
     if (landscape) {
+        std::string state;
         if (*landscape) {
             elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH_LANDSCAPE), ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT_LANDSCAPE));
             elm_object_signal_emit(m_content, "switch_landscape", "ui");
+            state = "state_landscape";
         } else {
             elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT));
             elm_object_signal_emit(m_content, "switch_vertical", "ui");
+            state = "state_default";
+        }
+        Elm_Object_Item *it = elm_gengrid_first_item_get(m_gengrid);
+        while (it) {
+            elm_object_item_signal_emit(it, state.c_str(), "ui");
+            it = elm_gengrid_item_next_get(it);
         }
     } else {
         BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__);
@@ -541,6 +550,25 @@ void TabUI::_gengrid_tab_clicked(void *data, Evas_Object*, void*)
     }
 }
 
+void TabUI::_gengrid_tab_realized(void *, Evas_Object *, void *event_info)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (event_info) {
+        auto tabItem = static_cast<Elm_Object_Item*>(event_info);
+        auto tabData = static_cast<TabData*>(elm_object_item_data_get(tabItem));
+        auto favicon = elm_object_item_part_content_get(tabItem, "elm.icon");
+        if (tabData->item->getIsSecret()) {
+            elm_object_item_signal_emit(tabItem, "state_secret", "ui");
+            elm_object_signal_emit(favicon, "state_secret", "ui");
+        } else {
+            elm_object_item_signal_emit(tabItem, "state_normal", "ui");
+            elm_object_signal_emit(favicon, "state_normal", "ui");
+        }
+    } else {
+        BROWSER_LOGW("[%s] event_info = nullptr", __PRETTY_FUNCTION__);
+    }
+}
+
 void TabUI::_close_tab_clicked(void *data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
index 222186acbd9e8855f16f01a899a08d31a4fc0132..db346596f8ec55f89b4c229c9d707d96b485d4ff 100644 (file)
@@ -91,6 +91,7 @@ private:
     static void _gengrid_tab_pressed(void * data, Evas_Object * obj, void * event_info);
     static void _gengrid_tab_released(void * data, Evas_Object * obj, void * event_info);
     static void _gengrid_tab_clicked(void * data, Evas_Object * obj, void * event_info);
+    static void _gengrid_tab_realized(void * data, Evas_Object * obj, void * event_info);
     static void _close_clicked(void *data, Evas_Object *obj, void *event_info);
     void updateNoTabsText(bool forceShow=false);
 
index 30363ca018412bcd11e7ba00b8a6f8d843e0c958..21f3771598b2608a031441fbef0cc9d5bd983d99 100755 (executable)
@@ -189,6 +189,9 @@ collections { base_scale: 2.6;
 
     group { name: "favicon_image";
         images.image: "internet_tabs_ic_default.png" COMP;
+        script {
+            public secret_mode = 0;
+        }
         parts {
             part { name: "image";
                 type: IMAGE;
@@ -217,8 +220,28 @@ collections { base_scale: 2.6;
             program { name: "on_mouse_up";
                 signal: "on_mouse_up";
                 source: "ui";
-                action: STATE_SET "default" 0.0;
-                target: "image";
+                script {
+                    if (get_int(secret_mode))
+                        set_state(PART:"image", "selected", 0.0);
+                    else
+                        set_state(PART:"image", "default", 0.0);
+                }
+            }
+            program { name: "state_secret";
+                signal: "state_secret";
+                source: "ui";
+                script {
+                    set_int(secret_mode, 1);
+                    set_state(PART:"image", "selected", 0.0);
+                }
+            }
+            program { name: "state_normal";
+                signal: "state_normal";
+                source: "ui";
+                script {
+                    set_int(secret_mode, 0);
+                    set_state(PART:"image", "default", 0.0);
+                }
             }
         }
     }
@@ -246,6 +269,9 @@ collections { base_scale: 2.6;
         images.image: "internet_tabs_img_mask.#.png" COMP;
         data.item: "texts" "elm.text";
         data.item: "contents" "elm.icon elm.button elm.thumbnail elm.overlay";
+        script {
+            public secret_mode = 0;
+        }
         parts {
             rect { "top_left_spacer"; scale;
                 description { "default";
@@ -307,10 +333,18 @@ collections { base_scale: 2.6;
                     }
                     color_class: "AO026";
                 }
+                description { "secret_default";
+                    inherit: "default";
+                    color_class: "tabs_secret_bg";
+                }
                 description { "selected";
                     inherit: "default";
                     color_class: "AO027";
                 }
+                description { "secret_selected";
+                    inherit: "default";
+                    color_class: "AO028";
+                }
             }
             rect { "icon_spacer"; scale;
                 description { "default";
@@ -420,6 +454,10 @@ collections { base_scale: 2.6;
                     visible: 1;
                     image.normal: "internet_tabs_img_mask.#.png";
                 }
+                description { state: "secret" 0.0;
+                    inherit: "default";
+                    color_class: "AO033";
+                }
             }
             swallow { "elm.thumbnail"; scale;
                 description { "default";
@@ -483,7 +521,7 @@ collections { base_scale: 2.6;
                 target: "top_left_spacer";
                 target: "bottom_right_spacer";
             }
-            program {  name: "state_default";
+            program { name: "state_default";
                 signal: "state_default";
                 source: "ui";
                 action: STATE_SET "default" 0.0;
@@ -491,20 +529,48 @@ collections { base_scale: 2.6;
                 target: "bottom_right_spacer";
             }
             program { name: "selected";
-               signal: "elm,state,selected";
-               source: "elm";
-               action: STATE_SET "selected" 0.0;
-               target: "elm.text";
-               target: "top_bg";
-               target: "press_effect";
+                signal: "elm,state,selected";
+                source: "elm";
+                script {
+                    if (get_int(secret_mode))
+                        set_state(PART:"top_bg", "secret_selected", 0.0);
+                    else
+                        set_state(PART:"top_bg", "selected", 0.0);
+                    set_state(PART:"elm.text", "selected", 0.0);
+                }
             }
             program { name: "unselected";
-               signal: "elm,state,unselected";
-               source: "elm";
-               action: STATE_SET "default" 0.0;
-               target: "elm.text";
-               target: "top_bg";
-               target: "press_effect";
+                signal: "elm,state,unselected";
+                source: "elm";
+                script {
+                    if (get_int(secret_mode)) {
+                        set_state(PART:"elm.text", "selected", 0.0);
+                        set_state(PART:"top_bg", "secret_default", 0.0);
+                    } else {
+                        set_state(PART:"elm.text", "default", 0.0);
+                        set_state(PART:"top_bg", "default", 0.0);
+                    }
+                }
+            }
+            program { name: "state_secret";
+                signal: "state_secret";
+                source: "ui";
+                script {
+                    set_int(secret_mode, 1);
+                    set_state(PART:"elm.text", "selected", 0.0);
+                    set_state(PART:"top_bg", "secret_default", 0.0);
+                    set_state(PART:"image_mask", "secret", 0.0);
+                }
+            }
+            program { name: "state_normal";
+                signal: "state_normal";
+                source: "ui";
+                script {
+                    set_int(secret_mode, 0);
+                    set_state(PART:"elm.text", "default", 0.0);
+                    set_state(PART:"top_bg", "default", 0.0);
+                    set_state(PART:"image_mask", "default", 0.0);
+                }
             }
         }
     }
index b5a9e047ea6b2b82534eb6f216bf990a4b8c0b9a..34e7f6fa02fcb8dd5f27eb299fab80f391f38e63 100755 (executable)
@@ -465,7 +465,8 @@ TabId WebEngineService::currentTabId() const
 std::vector<TabContentPtr> WebEngineService::getTabContents() const {
     std::vector<TabContentPtr> result;
     for (auto const& tab : m_stateStruct->tabs) {
-        auto tabContent = std::make_shared<TabContent>(tab.first, tab.second->getURI(), tab.second->getTitle(), tab.second->getOrigin());
+        auto tabContent = std::make_shared<TabContent>(tab.first, tab.second->getURI(),
+            tab.second->getTitle(), tab.second->getOrigin(), m_state == State::SECRET);
         result.push_back(tabContent);
     }
     return result;