[W-clock-viewer] Show the opr 58/123258/1 accepted/tizen/unified/20170406.173424 submit/tizen/20170406.075032
authormoon87.park <moon87.park@samsung.com>
Wed, 5 Apr 2017 05:40:08 +0000 (14:40 +0900)
committermoon87.park <moon87.park@samsung.com>
Wed, 5 Apr 2017 05:40:08 +0000 (14:40 +0900)
Change-Id: Ibad2402637d9965909391e80a3e7ab29f90c619c

clock-viewer/data/CMakeLists.txt
clock-viewer/data/clock-viewer.edc
clock-viewer/data/opr_bg.png [new file with mode: 0755]
clock-viewer/include/clock-viewer-widget.h
clock-viewer/src/clock-viewer-widget.c
clock-viewer/src/clock-viewer.c

index 5d417d2e40ae3cc8f1efa92e33d1c294f0dde28e..1570dff1fe6ade362ea92338592a24c3d07638c8 100644 (file)
@@ -1,12 +1,12 @@
 # install edj
 ADD_CUSTOM_TARGET(clock-viewer.edj
-               COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images ${EDJE_CFLAGS}
+               COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR} ${EDJE_CFLAGS}
                ${CMAKE_CURRENT_SOURCE_DIR}/clock-viewer.edc clock-viewer.edj
                DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/clock-viewer.edc
 )
 ADD_DEPENDENCIES(${PROJECT_NAME} clock-viewer.edj)
 ADD_CUSTOM_TARGET(default-clock-fallback.edj
-               COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images ${EDJE_CFLAGS}
+               COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR} ${EDJE_CFLAGS}
                ${CMAKE_CURRENT_SOURCE_DIR}/default-clock-fallback.edc default-clock-fallback.edj
                DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/default-clock-fallback.edc
 )
index 6654ff5898ae687bbdcc180dd53288f87579ebb4..a5b58045cd8dbc2b3ec2676ef555f61b9d451913 100644 (file)
@@ -26,6 +26,9 @@
        }
 
 collections {
+       images {
+               image: "opr_bg.png" COMP;
+       }
        group {
                name: "layout_manual_clock_position";
                parts {
@@ -90,6 +93,58 @@ collections {
                                        rel2 { relative: 0.98 0.98; to: "bg"; }
                                }
                        }
+                       part {
+                               name: "opr_bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 0.14; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "opr_bg_image";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "opr_bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "opr_bg"; }
+                                       image { normal: "opr_bg.png"; }
+                                       color: 0 0 0 178;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "opr_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.5; to: "opr_bg"; }
+                                       rel2 { relative: 1.0 0.5; to: "opr_bg"; }
+                                       text {
+                                               font: "Tizen:style=Regular";
+                                               text: "Loading";
+                                               size: 18;
+                                               align: 0.5 0.5;
+                                               min: 0 1;
+                                       }
+                                       fixed: 0 1;
+                                       color: 77 207 255 255;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
                }
                programs {
                        IDLE_CLOCK_ALPM_STATE_CHANGE(elm.swallow.body, default)
@@ -101,6 +156,22 @@ collections {
                        IDLE_CLOCK_ALPM_STATE_CHANGE(elm.swallow.body, bottomright)
                        IDLE_CLOCK_ALPM_STATE_CHANGE(elm.swallow.body, bottomleft)
                        IDLE_CLOCK_ALPM_STATE_CHANGE(elm.swallow.body, topleft)
+                       program {
+                               name: "opr,show";
+                               signal: "opr_info.show";
+                               source: "clock";
+                               action: STATE_SET "show" 0.0;
+                               target: "opr_bg_image";
+                               target: "opr_text";
+                       }
+                       program {
+                               name: "opr,hide";
+                               signal: "opr_info.hide";
+                               source: "clock";
+                               action: STATE_SET "default" 0.0;
+                               target: "opr_bg_image";
+                               target: "opr_text";
+                       }
                }
        }
 }
diff --git a/clock-viewer/data/opr_bg.png b/clock-viewer/data/opr_bg.png
new file mode 100755 (executable)
index 0000000..c3c7461
Binary files /dev/null and b/clock-viewer/data/opr_bg.png differ
index 49a9170891f3050247f4ca879981aca9e74f0a83..e64790518637725fd9880bc625c3df730bae3e1c 100644 (file)
@@ -28,6 +28,8 @@ extern void clock_viewer_widget_init(void *data, Evas_Object *parent, char *pkgn
 extern void clock_viewer_widget_fini(void *data);
 extern void clock_viewer_widget_pause(void);
 extern void clock_viewer_widget_resume(void);
+extern void clock_viewer_widget_show_opr(void);
+extern void clock_viewer_widget_hide_opr(void);
 
 extern void clock_viewer_default_widget_init(void *data, Evas_Object *parent, char *clock_name);
 extern void clock_viewer_default_widget_fini(void *data);
index fd443386180e646c2075ba2314ee5d8d2fb3a4b4..febddf9980acc6692876c6c3794de4e04f29c354 100644 (file)
@@ -101,6 +101,29 @@ static void _watch_removed_cb(void *data, Evas_Object *obj, void *event_info)
         evas_object_del(clock);
 }
 
+void clock_viewer_widget_show_opr(void)
+{
+       char opr_buf[16];
+       float opr = 0;
+       watch_manager_get_opr(&opr);
+       _DBG("opr show (%.2f)\n", opr);
+       opr = opr * 100;
+
+       snprintf(opr_buf, sizeof(opr_buf), "OPR %d%%", (int)opr);
+       elm_object_part_text_set(s_widget_info.layout, "opr_text", opr_buf);
+
+       elm_object_signal_emit(s_widget_info.layout, "opr_info.show", "clock");
+       edje_object_message_signal_process(elm_layout_edje_get(s_widget_info.layout));
+}
+
+void clock_viewer_widget_hide_opr(void)
+{
+       _DBG("opr hide");
+
+       elm_object_signal_emit(s_widget_info.layout, "opr_info.hide", "clock");
+       edje_object_message_signal_process(elm_layout_edje_get(s_widget_info.layout));
+}
+
 void clock_viewer_default_widget_init(void *data, Evas_Object *parent, char *clock_name)
 {
        app_control_h watch_control = NULL;
index 282887064d3e5962595f71a468781e740061fbdb..7601419287235897843abadca5ecfe3f34593f38 100644 (file)
@@ -54,6 +54,7 @@ static struct _info {
        clock_viewer_ambient_type ambient_type;
        char *clock_pkgname;
        int resource_id;
+       int is_opr_show;
 
        /* clockend condition check list */
        int is_drawdone;
@@ -69,6 +70,7 @@ static struct _info {
        .is_render_added = 0,
        .is_clock_resumed = 0,
        .resource_id = 0,
+       .is_opr_show = 0,
 
        .home_clock_visibitity = 0,
        .clock_visibitity = 0,
@@ -168,6 +170,8 @@ static void __clock_viewer_widget_updated_cb(void *data, Evas_Object *obj, void
 {
        __clock_viewer_render_pre_cb(data, NULL, NULL);
        __clock_viewer_render_post_cb(data, NULL, NULL);
+       if (s_info.is_opr_show)
+               clock_viewer_widget_show_opr();
 }
 
 Eina_Bool __clock_viewer_render_first_timer_cb(void *data)
@@ -233,6 +237,14 @@ static void __clock_viewer_lcdon_cb(void *data, DBusMessage *msg)
        }
 }
 
+static Eina_Bool __opr_timer_cb(void *data)
+{
+       if (s_info.is_opr_show) {
+               clock_viewer_widget_show_opr();
+       }
+       return EINA_FALSE;
+}
+
 static void __clock_viewer_lcdoff_cb(void *data, DBusMessage *msg)
 {
        clock_viewer_s *clock_viewer = (clock_viewer_s *) data;
@@ -293,6 +305,11 @@ static void __clock_viewer_lcdoff_cb(void *data, DBusMessage *msg)
                if (!s_info.clock_visibitity) {
                        clock_viewer_show(clock_viewer, 0);
                }
+
+               if (s_info.is_opr_show)
+                       ecore_timer_add(1.0f, __opr_timer_cb, NULL);
+               else
+                       clock_viewer_widget_hide_opr();
        }
 }
 
@@ -350,6 +367,24 @@ static void __clock_viewer_homescreen_clock_visibility_changed_cb(keynode_t *nod
        s_info.home_clock_visibitity = value;
 }
 
+static void __clock_viewer_opr_changed_cb(keynode_t *node, void *data)
+{
+       int ret = 0;
+       int value = 0;
+
+       ret = vconf_get_bool("db/setting/aod_on_pixel_ratio", &value);
+       if (ret != 0) {
+               _ERR("Failed to get aod on pixel ratio[%d]", ret);
+       }
+       _DBG("aod on pixel ratio changed [%d]->[%d]", s_info.is_opr_show, value);
+       s_info.is_opr_show = value;
+       if (s_info.is_opr_show == 0) {
+               clock_viewer_widget_hide_opr();
+       } else {
+               clock_viewer_widget_show_opr();
+       }
+}
+
 static void _clock_viewer_set_current_clock(clock_viewer_s *clock_viewer)
 {
        clock_viewer_ambient_type ambient_type;
@@ -422,7 +457,14 @@ static void _clock_viewer_register_event(clock_viewer_s *clock_viewer)
        if (ret != 0) {
                _ERR("Failed to notify homescreen clock visibility changed event[%d]", ret);
        }
+
+       ret = vconf_notify_key_changed("db/setting/aod_on_pixel_ratio", __clock_viewer_opr_changed_cb, clock_viewer);
+       if (ret != 0) {
+               _ERR("Failed to notify aod_on_pixel_ratio chagned event[%d]", ret);
+       }
+
        __clock_viewer_homescreen_clock_visibility_changed_cb(NULL, NULL);
+       __clock_viewer_opr_changed_cb(NULL, NULL);
 }
 
 static void _clock_viewer_unregister_event(clock_viewer_s *clock_viewer)