Fix issues related datatime widget in Clock 38/98638/1
authorkiso.chang <kiso.chang@samsung.com>
Fri, 18 Nov 2016 05:02:17 +0000 (14:02 +0900)
committerkiso.chang <kiso.chang@samsung.com>
Fri, 18 Nov 2016 05:04:41 +0000 (14:04 +0900)
- Fix AM/PM button to show and hide
- Set min Date (1970.1.1 00:00)

Change-Id: I08bd6211e843fd496211385b6b35ddf9fe074363
Signed-off-by: kiso.chang <kiso.chang@samsung.com>
include/data/system/settings_clock.h [changed mode: 0644->0755]
src/data/system/settings_clock.c [changed mode: 0644->0755]
src/view/system/view_clock.c

old mode 100644 (file)
new mode 100755 (executable)
index 1aef626..b5515df
@@ -3,6 +3,7 @@
 
 #include <stdbool.h>
 #include <time.h>
+#include <Elementary.h>
 
 /**
 * @brief Check if settings clock is set to be 24h format.
@@ -73,4 +74,11 @@ char *settings_clock_get_clock_status_str();
 */
 void settings_clock_set_state_update_callbacks(void *data);
 
+/**
+* @brief Sets min and max date & time of datetime Evas_Object
+*
+* @param datetime Evas_Object for Date and time
+*/
+void settings_clock_set_min_max(Evas_Object *datetime);
+
 #endif /* SETTINGS_CLOCK_H_ */
old mode 100644 (file)
new mode 100755 (executable)
index bf54347..ddd3d22
@@ -233,3 +233,26 @@ void settings_clock_set_state_update_callbacks(void *data)
                        _ERR("Cannot delete ecore timer");
        }
 }
+
+
+void settings_clock_set_min_max(Evas_Object *datetime)
+{
+       /* get the current local time */
+       time_t t = time(NULL);
+       struct tm time1;
+       localtime_r(&t, &time1);
+
+       /* set the max year as 2030 and the remaining fields are equal to
+        *      current time values */
+       /*time1.tm_year = 2030; */
+       /*elm_datetime_value_max_set(datetime, &time1); */
+
+       /* set the min time limit as "1970 January 1th 00:0 AM" */
+       time1.tm_year = 70;
+       time1.tm_mon = 1;
+       time1.tm_mday = 1;
+       time1.tm_hour = 0;
+       time1.tm_min = 0;
+       elm_datetime_value_min_set(datetime, &time1);
+}
+
index 5fdde53..a811ac1 100755 (executable)
@@ -342,6 +342,7 @@ static bool _add_clock_setting(clock_view_priv_data *priv)
                 without displaying AM/PM - remove it when datetime is fixed */
        priv->date_part = utils_add_datetime(priv->base, PART_MAIN_ITEM_DATE,
                        EINA_TRUE, EINA_TRUE, EINA_TRUE, EINA_FALSE, EINA_FALSE, EINA_FALSE, NULL);
+       settings_clock_set_min_max(priv->date_part);
 
        /* 24/12h check: */
        priv->check_24 = elm_check_add(priv->base);
@@ -465,8 +466,10 @@ static void _show(void *data)
 
        if (h24) {
                elm_datetime_format_set(priv->time_part, "%H:%M %P");
+               elm_datetime_field_visible_set(priv->time_part, ELM_DATETIME_AMPM, EINA_FALSE);
        } else {
                elm_datetime_format_set(priv->time_part, "%I:%M %P");
+               elm_datetime_field_visible_set(priv->time_part, ELM_DATETIME_AMPM, EINA_TRUE);
        }
        elm_datetime_format_set(priv->date_part, "%x");
 
@@ -635,9 +638,12 @@ static void _h_24_12_changed_cb(int id, void *data, Evas_Object *check_24)
 
        if (state) {/*24h*/
                elm_datetime_format_set(priv->time_part, "%H:%M %P");
+               elm_datetime_field_visible_set(priv->time_part, ELM_DATETIME_AMPM, EINA_FALSE);
        } else {/*12h*/
                elm_datetime_format_set(priv->time_part, "%I:%M %P");
+               elm_datetime_field_visible_set(priv->time_part, ELM_DATETIME_AMPM, EINA_TRUE);
        }
+
 }
 
 static void _done_mouse_cb(int id, void *data, Evas_Object *obj)
@@ -698,6 +704,17 @@ static void _get_time_from_controls(struct tm *result, const clock_view_priv_dat
        result->tm_min = tmp.tm_min;
        result->tm_sec = tmp.tm_sec;
        result->tm_isdst = -1;
+
+       SETTING_TRACE("result->tm_year: %d", result->tm_year);
+       SETTING_TRACE("result->tm_mon: %d", result->tm_mon);
+       SETTING_TRACE("result->tm_mday: %d", result->tm_mday);
+       SETTING_TRACE("result->tm_wday: %d", result->tm_wday);
+       SETTING_TRACE("result->tm_yday: %d", result->tm_yday);
+
+       SETTING_TRACE("result->tm_hour: %d", result->tm_hour);
+       SETTING_TRACE("result->tm_min: %d", result->tm_min);
+       SETTING_TRACE("result->tm_sec: %d", result->tm_sec);
+       
 }
 
 static void _focused(int id, void *data, Evas_Object *obj, Elm_Object_Item *item)