View: Draw lock icon on thumbnail when contents is locked 14/47314/1
authorHyojung Jo <hj903.jo@samsung.com>
Wed, 2 Sep 2015 08:18:50 +0000 (17:18 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Wed, 2 Sep 2015 08:18:50 +0000 (17:18 +0900)
Change-Id: Id8d39b474d4b8dd7f71b5a64bb10ce2eb8862c24
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
include/view.h
res/images/ic_thumbnail_lock_01.png [new file with mode: 0644]
res/widgets/gengrid_tv.edc
src/view/view_base.c
src/view/view_pin.c

index 4b1616d..b8b3263 100644 (file)
@@ -82,6 +82,7 @@
 #define SRC_EDC "edc"
 #define SRC_MENU_BTN "menubtn"
 #define SRC_ACTION_BTN "source.action.btn"
+#define SRC_LOCK_ICON "source.lock.icon"
 
 /* Transition */
 #define TRANSITION_FOCUS DECELERATE 0.20
 #define ACTION_LOCK_FOC_PNG "btn_menu_lock_foc.png"
 #define ACTION_LOCK_SEL_PNG "btn_menu_lock_sel.png"
 #define ACTION_LOCK_DIS_PNG "btn_menu_lock_dis.png"
+#define LOCK_ICON_PNG "ic_thumbnail_lock_01.png"
 
 /* Path */
 #define PATH_PLAY_ICON_PNG IMGDIR"/ic_thumbnail_play.png"
index af49323..88fbb88 100644 (file)
@@ -25,6 +25,8 @@ enum update_type {
        UPDATE_DATA = 0,
        UPDATE_GRID,
        UPDATE_SHOW_TOAST,
+       UPDATE_LOCK,
+       UPDATE_UNLOCK,
 };
 
 #endif /* __AIR_APPS_VIEW_H__ */
diff --git a/res/images/ic_thumbnail_lock_01.png b/res/images/ic_thumbnail_lock_01.png
new file mode 100644 (file)
index 0000000..cbd4267
Binary files /dev/null and b/res/images/ic_thumbnail_lock_01.png differ
index b67e2c6..4c6c8de 100644 (file)
@@ -20,6 +20,10 @@ group {
        data.item, "focus_highlight" "on";
        data.item, "texts" "part.thumb.text";
        data.item, "contents" "part.thumb.icon part.thumb.default.tv.icon part.thumb.bg part.text.bg";
+       images {
+               image, LOCK_ICON_PNG COMP;
+       }
+
        parts {
                part {
                        name, "padding.bottom.right";
@@ -373,6 +377,53 @@ group {
                                inherit, "focused" 0.0;
                        }
                }
+
+               part {
+                       name, "padding.lock.icon";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 14 18;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               align, 1.0 0.0;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
+                       name, "part.lock.icon";
+                       type, IMAGE;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 40 40;
+                               rel1 {
+                                       to, "padding.lock.icon";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "padding.lock.icon";
+                                       relative, 0.0 1.0;
+                               }
+                               align, 1.0 0.0;
+                               fixed, 1 1;
+                               image.normal, LOCK_ICON_PNG;
+                               visible, 0;
+                       }
+                       description {
+                               state, "visible" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
        }
 
        programs {
@@ -464,5 +515,21 @@ group {
                        name, "item_selected";
                        action, SIGNAL_EMIT SIG_ITEM_SELECTED SRC_EDC;
                }
+
+               program {
+                       name, SIG_VISIBLE;
+                       signal, SIG_VISIBLE;
+                       source, SRC_LOCK_ICON;
+                       action, STATE_SET "visible" 0.0;
+                       target, "part.lock.icon";
+               }
+
+               program {
+                       name, SIG_INVISIBLE;
+                       signal, SIG_INVISIBLE;
+                       source, SRC_LOCK_ICON;
+                       action, STATE_SET "default" 0.0;
+                       target, "part.lock.icon";
+               }
        }
 }
index 7c41ebd..e31dff6 100644 (file)
@@ -523,6 +523,7 @@ static void _hide(void *data)
 static void _update(void *view_data, int update_type, void *data)
 {
        struct _priv *priv;
+       struct grid_data *gdata;
 
        if (!view_data) {
                _ERR("Get data failed.");
@@ -541,6 +542,27 @@ static void _update(void *view_data, int update_type, void *data)
 
                break;
 
+       case UPDATE_LOCK:
+               if (!data)
+                       return;
+
+               gdata = data;
+
+               elm_object_item_signal_emit(gdata->focused_item, SIG_VISIBLE,
+                               SRC_LOCK_ICON);
+
+               break;
+
+       case UPDATE_UNLOCK:
+               if (!data)
+                       return;
+
+               gdata = data;
+
+               elm_object_item_signal_emit(gdata->focused_item, SIG_INVISIBLE,
+                               SRC_LOCK_ICON);
+
+               break;
        default:
                _ERR("Unhandled update type.");
        }
index 7a86e4e..253db24 100644 (file)
@@ -67,10 +67,14 @@ static void _pincode_checked(struct _priv *priv, char *pincode)
                goto end;
        }
 
-       if (locked)
+
+       if (locked) {
+               viewmgr_update_view(VIEW_BASE, UPDATE_LOCK, priv->gdata);
                viewmgr_update_view(VIEW_BASE, UPDATE_SHOW_TOAST, STR_LOCKED);
-       else
+       } else {
+               viewmgr_update_view(VIEW_BASE, UPDATE_UNLOCK, priv->gdata);
                viewmgr_update_view(VIEW_BASE, UPDATE_SHOW_TOAST, STR_UNLOCKED);
+       }
 
 end:
        viewmgr_hide_view(VIEW_PIN);