[UI] Clock view update. 53/123453/4
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Wed, 5 Apr 2017 14:01:09 +0000 (16:01 +0200)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Wed, 12 Apr 2017 10:49:17 +0000 (12:49 +0200)
Change-Id: I977de711b534720ea0cf654d61477039358587a8
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
include/define.h
include/view/system/view_clock.h
res/view/system/clock.edc
src/view/system/view_clock.c
src/view/system/view_clock_mode.c

index c26b970..c1378c1 100644 (file)
 #define STR_NOT_SUPPORTED "Not supported"
 
 #define STR_CLOCK "Clock"
-#define STR_CLOCK_DES "If you set Clock Manual, You can set date and time."
+#define STR_CLOCK_DES "If you set Clock Auto, You can set 24-hour format."
 #define STR_RESET "Reset"
 
 #define STR_SETUP "Setup"
index 619b597..38f4b87 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __AIR_SETTINGS_VIEW_CLOCK_H__
 #define __AIR_SETTINGS_VIEW_CLOCK_H__
 
+#define CLOCK_DISPLAY_MODE_UPDATE 1
+
 /**
 * @brief Get the pointer to the view_class object of clock view.
 *
index 7d9fc4c..3875dad 100755 (executable)
 
 #define TITLE_BG_Y2 (104.0 / BASE_RESOLUTION_Y)
 
-#define CONTROLS_X1 0.39
-#define LABELS_X2 0.62
+#define CONTROLS_X1 0.36
+#define LABELS_X2 0.32
 
-#define GUIDE_LABEL_Y1 0.14
-#define GUIDE_LABEL_Y2 0.17
+#define GUIDE_LABEL_Y1 TITLE_BG_Y2
+#define GUIDE_LABEL_Y2 0.20
 
-#define MAIN_LABEL_Y1 0.20
-#define MAIN_LABEL_Y2 0.24
-
-#define MANUAL_SETUP_Y1 0.25
-#define MANUAL_SETUP_Y2 0.30
-#define MANUAL_SETUP_X2 0.62
-
-#define DATE_LABEL_Y1 0.32
-#define DATE_LABEL_Y2 0.36
-
-#define DATE_ITEM_Y1 0.38
-#define DATE_ITEM_Y2 0.52
+#define DATE_ITEM_Y1 0.30
+#define DATE_ITEM_Y2 0.44
 #define DATE_ITEM_X2 0.62
 
-#define _24HOUR_LABEL_Y1 0.54
-#define _24HOUR_LABEL_Y2 0.58
-
-#define _24HOUR_ITEM_Y1 0.59
-#define _24HOUR_ITEM_Y2 0.63
+#define _24HOUR_ITEM_Y1 0.52
+#define _24HOUR_ITEM_Y2 0.56
 #define _24HOUR_ITEM_X2 0.55
 
-#define TIME_LABEL_Y1 0.64
-#define TIME_LABEL_Y2 0.68
-
-#define TIME_ITEM_Y1 0.70
-#define TIME_ITEM_Y2 0.84
+#define TIME_ITEM_Y1 0.64
+#define TIME_ITEM_Y2 0.78
 #define TIME_ITEM_X2 0.62
 
 
@@ -93,7 +77,6 @@ group {
                                }
                        }
                }
-
                part {
                        name, PART_GUIDE;
                        type, TEXT;
@@ -110,37 +93,6 @@ group {
                                }
                        }
                }
-
-               part {
-                       name, PART_MAIN_LABEL_SETUP;
-                       type, TEXT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               color, 116 116 116 255;
-                               align, 0.0 0.5;
-                               rel1.relative, CONTROLS_X1 MAIN_LABEL_Y1;
-                               rel2.relative, LABELS_X2 MAIN_LABEL_Y2;
-                               text {
-                                       font, FONT_LIGHT;
-                                       size, 32;
-                                       align, 0.0 0.5;
-                               }
-                       }
-               }
-
-               part {
-                       name, PART_MAIN_ITEM_SETUP;
-                       type, SWALLOW;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               align, 0.5 0.5;
-                               rel1.relative, CONTROLS_X1 MANUAL_SETUP_Y1;
-                               rel2.relative, MANUAL_SETUP_X2 MANUAL_SETUP_Y2;
-                       }
-               }
-
                part {
                        name, PART_MAIN_LABEL_DATE;
                        type, TEXT;
@@ -148,17 +100,15 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 116 116 116 255;
-                               align, 0.0 0.5;
-                               rel1.relative, CONTROLS_X1 DATE_LABEL_Y1;
-                               rel2.relative, LABELS_X2 DATE_LABEL_Y2;
+                               rel1.relative, 0.0       DATE_ITEM_Y1;
+                               rel2.relative, LABELS_X2 DATE_ITEM_Y2;
                                text {
                                        font, FONT_LIGHT;
                                        size, 32;
-                                       align, 0.0 0.5;
+                                       align, 1.0 0.5;
                                }
                        }
                }
-
                part {
                        name, PART_MAIN_ITEM_DATE;
                        type, SWALLOW;
@@ -170,7 +120,6 @@ group {
                                rel2.relative, DATE_ITEM_X2 DATE_ITEM_Y2;
                        }
                }
-
                part {
                        name, PART_MAIN_LABEL_24HOUR;
                        type, TEXT;
@@ -178,17 +127,15 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 116 116 116 255;
-                               align, 0.0 0.5;
-                               rel1.relative, CONTROLS_X1 _24HOUR_LABEL_Y1;
-                               rel2.relative, LABELS_X2 _24HOUR_LABEL_Y2;
+                               rel1.relative, 0.0       _24HOUR_ITEM_Y1;
+                               rel2.relative, LABELS_X2 _24HOUR_ITEM_Y2;
                                text {
                                        font, FONT_LIGHT;
                                        size, 32;
-                                       align, 0.0 0.5;
+                                       align, 1.0 0.5;
                                }
                        }
                }
-
                part {
                        name, PART_MAIN_ITEM_24HOUR;
                        type, SWALLOW;
@@ -200,7 +147,6 @@ group {
                                rel2.relative, _24HOUR_ITEM_X2 _24HOUR_ITEM_Y2;
                        }
                }
-
                part {
                        name, PART_MAIN_LABEL_TIME;
                        type, TEXT;
@@ -208,17 +154,15 @@ group {
                        description {
                                state, "default" 0.0;
                                color, 116 116 116 255;
-                               align, 0.0 0.5;
-                               rel1.relative, CONTROLS_X1 TIME_LABEL_Y1;
-                               rel2.relative, LABELS_X2 TIME_LABEL_Y2;
+                               rel1.relative, 0.0 TIME_ITEM_Y1;
+                               rel2.relative, LABELS_X2 TIME_ITEM_Y2;
                                text {
                                        font, FONT_LIGHT;
                                        size, 32;
-                                       align, 0.0 0.5;
+                                       align, 1.0 0.5;
                                }
                        }
                }
-
                part {
                        name, PART_MAIN_ITEM_TIME;
                        type, SWALLOW;
@@ -230,7 +174,6 @@ group {
                                rel2.relative, TIME_ITEM_X2 TIME_ITEM_Y2;
                        }
                }
-
                part {
                        name, "padding.bottom";
                        type, SPACER;
@@ -250,14 +193,13 @@ group {
                                }
                        }
                }
-
                part {
                        name, "part.bottom.bg";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               min, 0 148;
+                               min, 0 86;
                                fixed, 0 1;
                                align, 0.5 1.0;
                                rel1.relative, 0.0 1.0;
@@ -265,7 +207,6 @@ group {
                                color, 255 255 255 255;
                        }
                }
-
                part {
                        name, "part.bottom.pad";
                        type, SPACER;
@@ -284,7 +225,6 @@ group {
                                }
                        }
                }
-
                part {
                        name, PART_VIEW_BOTTOM_BTN1;
                        type, SWALLOW;
@@ -301,7 +241,6 @@ group {
                                }
                        }
                }
-
                part {
                        name, PART_VIEW_BOTTOM_BTN2;
                        type, SWALLOW;
index bcd703e..ca53377 100755 (executable)
@@ -30,8 +30,7 @@
 
 #define DEFAULT_KEYPAD_POS             636
 #define PADDING_VKEYBOARD              30
-
-
+#define LAYOUT_SIZE_MULTIPLIER 0.6
 
 enum setup_type {
        TYPE_MANUAL = 0,
@@ -55,7 +54,6 @@ typedef struct {
        Evas_Object *conformant;
        Evas_Object *done;
        Evas_Object *cancel;
-       Evas_Object *auto_manual_setup_btn;
        Evas_Object *setup_type_popup;
 
        Evas_Object *date_part;
@@ -66,6 +64,7 @@ typedef struct {
        /* store input panel state */
        bool input_panel_show;
        Evas_Object *focused_entry;
+       enum setup_type view_mode_on_show;
 
 } clock_view_priv_data;
 
@@ -253,8 +252,6 @@ static void _setup_type_option_selected(clock_view_priv_data *priv, int id,
 
        _destroy_setup_type_popup(priv);
 
-       elm_object_text_set(priv->auto_manual_setup_btn, elm_object_text_get(obj));
-
        switch (id) {
                case TYPE_AUTO:
                        _disable_manual_settings(true, priv);
@@ -279,7 +276,6 @@ static void _draw_setup_type_popup(clock_view_priv_data *priv)
                _ERR("priv data NULL");
                return;
        }
-       elm_object_signal_emit(priv->auto_manual_setup_btn, SIG_SELECTED, SRC_ELM);
 
        ctxpopup = utils_add_ctxpopup(priv->base, TYPE_MAX,
                        id_setup_type_opt, str_setup_type_opt,
@@ -290,7 +286,6 @@ static void _draw_setup_type_popup(clock_view_priv_data *priv)
                return;
        }
 
-       evas_object_geometry_get(priv->auto_manual_setup_btn, &x, &y, &w, &h);
        evas_object_move(ctxpopup, (x + w / 2), (y + h));
        evas_object_size_hint_min_set(ctxpopup, w, 0);
 
@@ -302,7 +297,7 @@ static void _draw_setup_type_popup(clock_view_priv_data *priv)
 static bool _add_clock_setting(clock_view_priv_data *priv)
 {
        SETTING_TRACE_BEGIN
-               
+
        Evas_Object *done = NULL;
        Evas_Object *cancel = NULL;
 
@@ -313,7 +308,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv)
 
        elm_object_part_text_set(priv->base, PART_TOP_TITLE, STR_CLOCK);
        elm_object_part_text_set(priv->base, PART_GUIDE, STR_CLOCK_DES);
-       elm_object_part_text_set(priv->base, PART_MAIN_LABEL_SETUP, STR_SETUP);
        elm_object_part_text_set(priv->base, PART_MAIN_LABEL_DATE, STR_DATE);
        elm_object_part_text_set(priv->base, PART_MAIN_LABEL_24HOUR, STR_24HOUR);
        elm_object_part_text_set(priv->base, PART_MAIN_LABEL_TIME, STR_TIME);
@@ -335,9 +329,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv)
        priv->cancel = cancel;
        priv->done = done;
 
-       /* item - SETUP (clock auto/manual) */
-       priv->auto_manual_setup_btn = utils_add_button(priv->base, PART_MAIN_ITEM_SETUP, STYLE_OPTION_BTN, str_setup_type_opt[priv->cur_type]);
-
        /* TODO: For some reason, setting ampm to visible corrects the widget's layout
                 without displaying AM/PM - remove it when datetime is fixed */
        priv->date_part = utils_add_datetime(priv->base, PART_MAIN_ITEM_DATE,
@@ -364,7 +355,6 @@ static bool _add_clock_setting(clock_view_priv_data *priv)
 
        inputmgr_add_callback(done, INPUT_HANDLER_TYPE_BTN_DONE, &done_btn_handler, priv);
        inputmgr_add_callback(cancel, INPUT_HANDLER_TYPE_BTN_CANCEL, &cancel_btn_handler, priv);
-       inputmgr_add_callback(priv->auto_manual_setup_btn, 0, &_auto_manual_setup_input_handler, priv);
        inputmgr_add_callback(priv->check_24, INPUT_HANDLER_TYPE_CHECK_H12_24, &h_12_24_changed, priv);
        inputmgr_add_callback(priv->date_part, INPUT_HANDLER_TYPE_DATE_TIME, &date_time_handler, priv);
        inputmgr_add_callback(priv->time_part, INPUT_HANDLER_TYPE_DATE_TIME, &date_time_handler, priv);
@@ -373,6 +363,17 @@ static bool _add_clock_setting(clock_view_priv_data *priv)
        return true;
 }
 
+static void _resize(Evas_Object *win, Evas_Object *base)
+{
+       int w = 0;
+       int h = 0;
+       float move_offset = (1.0 - LAYOUT_SIZE_MULTIPLIER) * 0.5;
+
+       evas_object_geometry_get(win, NULL, NULL, &w, &h);
+       evas_object_resize(base, LAYOUT_SIZE_MULTIPLIER * w, LAYOUT_SIZE_MULTIPLIER * h);
+       evas_object_move(base, move_offset * w, move_offset * h);
+}
+
 static Evas_Object *_create(Evas_Object *win, void *data)
 {
        SETTING_TRACE_BEGIN;
@@ -401,17 +402,18 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                return NULL;
        }
 
-       base = utils_add_layout(win, GRP_VIEW_CLOCK, EINA_TRUE);
+       base = utils_add_layout(win, GRP_VIEW_CLOCK, EINA_FALSE);
        if (!base) {
                _ERR("Add layout failed.");
                free(priv);
                return NULL;
        }
 
+       _resize(win, base);
+
        priv->win = win;
        priv->base = base;
        priv->conformant = conformant;
-               
 /*
        elm_object_content_set(conformant, priv->base);
        evas_object_show(conformant);
@@ -427,8 +429,6 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                return NULL;
        }
 
-       
-
        if (!viewmgr_set_view_data(VIEW_CLOCK, priv)) {
                _ERR("Set view data failed.");
                evas_object_del(base);
@@ -441,18 +441,20 @@ static Evas_Object *_create(Evas_Object *win, void *data)
 
 static void _show(void *data)
 {
+       SETTING_TRACE_BEGIN;
        bool automatic_time = false;
        bool h24 = true;
-       clock_view_priv_data *priv = NULL;
+       clock_view_priv_data *priv = (clock_view_priv_data *)data;
+       bool display_mode;
        struct tm current_time = {0,};
 
-       priv = (clock_view_priv_data *)data;
-
        if (!priv) {
                _ERR("Get data failed.");
                return;
        }
 
+       display_mode = priv->view_mode_on_show ? TYPE_AUTO : TYPE_MANUAL;
+
        if (!settings_clock_get_current_time(&current_time))
                _ERR("Failed to obtain current time");
 
@@ -462,16 +464,8 @@ static void _show(void *data)
        if (!settings_clock_is_time_automatic(&automatic_time))
                _ERR("Failed to check if time is auto");
 
-       if (automatic_time) {
-               priv->cur_type = TYPE_AUTO;
-               elm_object_domain_translatable_text_set(priv->auto_manual_setup_btn, SETTINGS_PACKAGE, _(STR_AUTO));
-       } else {
-               elm_object_domain_translatable_text_set(priv->auto_manual_setup_btn, SETTINGS_PACKAGE, _(STR_MANUAL));
-               priv->cur_type = TYPE_MANUAL;
-       }
-
-       _disable_manual_settings(automatic_time, priv);
-
+//     priv->cur_type = automatic_time ? TYPE_AUTO : TYPE_MANUAL;
+       _disable_manual_settings(display_mode, priv);
        elm_check_state_set(priv->check_24, h24);
 
        if (h24) {
@@ -486,7 +480,8 @@ static void _show(void *data)
        elm_datetime_value_set(priv->time_part, (Elm_Datetime_Time *)&current_time);
 
        evas_object_show(priv->base);
-       elm_object_focus_set(priv->auto_manual_setup_btn, EINA_TRUE);
+       elm_object_focus_set(priv->done, EINA_TRUE);
+       SETTING_TRACE_END;
 }
 
 static void _hide(void *data)
@@ -520,12 +515,28 @@ static void _destroy(void *data)
        free(priv);
 }
 
+void _update(void *view_data, int update_type, void *data)
+{
+       SETTING_TRACE_BEGIN;
+       clock_view_priv_data *priv = (clock_view_priv_data *)view_data;
+
+       if (update_type != CLOCK_DISPLAY_MODE_UPDATE)
+               return;
+
+       dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] VIEW UPDATE %p, priv->view_mode_on_show=%d",
+                       __FILE__, __LINE__, priv, priv->view_mode_on_show);
+
+       priv->view_mode_on_show = (int)data;
+       SETTING_TRACE_END;
+}
+
 static view_class _vclass = {
        .view_id = VIEW_CLOCK,
        .create = _create,
        .show = _show,
        .hide = _hide,
        .destroy = _destroy,
+       .update = _update,
 };
 
 view_class *view_clock_get_vclass(void)
@@ -672,7 +683,7 @@ static void _done_mouse_cb(int id, void *data, Evas_Object *obj)
                settings_clock_set_24h(false);
        }
 
-       if (priv->cur_type == TYPE_AUTO) {
+       if (priv->view_mode_on_show == TYPE_AUTO) {
                settings_clock_set_time_automatic(true);
        } else {
                settings_clock_set_time_automatic(false);
@@ -693,7 +704,6 @@ static void _disable_manual_settings(bool disable, const clock_view_priv_data *p
 {
        elm_object_disabled_set(priv->date_part, disable);
        elm_object_disabled_set(priv->time_part, disable);
-       elm_object_disabled_set(priv->check_24, disable);
 }
 
 static void _get_time_from_controls(struct tm *result, const clock_view_priv_data *priv)
index cdc4297..e2300ae 100755 (executable)
@@ -108,15 +108,8 @@ static void _popup_item_selected_cb(int id, void *data, Evas *e, Evas_Object *ob
                return;
 
        viewmgr_pop_view();
-
-       if (id == TYPE_MANUAL) {
-               settings_clock_set_time_automatic(true);
-               viewmgr_show_view(VIEW_CLOCK);
-       } else {
-               settings_clock_set_time_automatic(true);
-       }
-
-       viewmgr_update_view(VIEW_BASE, UPDATE_CONTENT, NULL);
+       viewmgr_update_view(VIEW_CLOCK, CLOCK_DISPLAY_MODE_UPDATE, (void *)id);
+       viewmgr_show_view(VIEW_CLOCK);
 }
 
 static void _show(void *data)