#include <stdio.h>
#include <stdlib.h>
#include <app.h>
+#include <time.h>
#include "log.h"
#include "conf.h"
#include "main_view.h"
#include "scroller.h"
#include "popup.h"
+#include "map.h"
+#include "notification.h"
+#include "group_info.h"
+#include "db.h"
#define _EDJ(o) elm_layout_edje_get(o)
+
const char *const DATA_KEY_CITY = "city";
+const char *const DATA_KEY_MAIN_VIEW_INFO = "mvi";
const char *const ITEM_EDJE = "item.edj";
+const char *const BEST_TIME_EDJE = "best_time.edj";
+const char *const ITEM2_EDJE = "item2.edj";
+static int color_index[MAXIMUM_SELECTED_CITY] = { 0, 0, 0 };
+
+void item_reset_color_index(void)
+{
+ register int i = 0;
+ for (; i < MAXIMUM_SELECTED_CITY; i++) {
+ if (EINA_FALSE == remove_city_from_map(i))
+ _E("cannot remove the city");
+
+ color_index[i] = 0;
+ }
+}
void _text_set_here_time(Evas_Object *item, const char *part)
{
/* Timezone
Asia/Seoul
- */
- if (local_time->tm_gmtoff >= 0)
- snprintf(time_result, sizeof(time_result), "%s, +%ld", timezone_str, local_time->tm_gmtoff / 3600);
+ */
+ if (local_time->tm_gmtoff >= 0l)
+ snprintf(time_result, sizeof(time_result), "%s, +%ld", timezone_str, local_time->tm_gmtoff / 3600l);
else
- snprintf(time_result, sizeof(time_result), "%s, %ld", timezone_str, local_time->tm_gmtoff / 3600);
+ snprintf(time_result, sizeof(time_result), "%s, %ld", timezone_str, local_time->tm_gmtoff / 3600l);
free(timezone_str);
{
Evas_Object *item = obj;
Evas_Object *selecting_item = NULL;
+ Evas_Object *entry = NULL;
main_view_s *main_view_info = data;
+ struct tm *local_time = NULL;
int city = 0;
int count = 0;
+ time_t t = 0;
ret_if(!item);
ret_if(!main_view_info);
_D("An item is selected");
+ time(&t);
+ local_time = localtime(&t);
+
if (scroller_is_scrolling(main_view_info->searchlist))
return;
count = scroller_count_item(main_view_info->city_list);
- if (count >= MAXIMUM_SELECTED_CITY) {
- Evas_Object *popup = NULL;
+ if (count + 1 > MAXIMUM_SELECTED_CITY) {
_D("Cities selected are limited.");
- popup = popup_create_text(main_view_info->main_view, "Maximum number of cities reached");
- elm_object_part_content_set(main_view_info->main_view, "popup", popup);
+ notification_status_message_post("Maximum number of cities reached");
return;
- } else if (count > 0) {
- elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,hide", "");
- } else {
- /* We need to move this to the item_selecting */
- elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,show", "");
}
+ city = (int) evas_object_data_get(item, DATA_KEY_CITY);
+ selecting_item = item_create_selecting(main_view_info->city_list, city, local_time, main_view_info);
+ ret_if(!selecting_item);
+ scroller_append_item(main_view_info->city_list, selecting_item);
+ count++;
+
if (count > 1) {
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,hide", "");
elm_object_signal_emit(main_view_info->main_view, "momentic,state,next_btn,show", "");
+ } else {
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,show", "");
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,next_btn,hide", "");
}
- city = (int) evas_object_data_get(item, DATA_KEY_CITY);
- selecting_item = item_create_selecting(main_view_info->city_list, city, 0);
- ret_if(!selecting_item);
-
- scroller_append_item(main_view_info->city_list, selecting_item);
+ entry = elm_object_part_content_get(main_view_info->searchbar, "entry");
+ elm_entry_entry_set(entry, "");
+ elm_object_focus_set(main_view_info->next_btn, EINA_TRUE);
}
Evas_Object *item_create_typing(Evas_Object *parent, int city, main_view_s *main_view_info)
evas_object_show(item);
+ if (city < 0) {
+ elm_object_part_text_set(item, "city", "No results");
+ elm_object_signal_emit(item, "disable", "item");
+ return item;
+ }
+
city_info = city_get();
if (!city_info) {
_E("Critical, no city information");
evas_object_del(item);
return NULL;
}
-
+
snprintf(city_str, sizeof(city_str), "%s, %s", city_info[city].name, city_info[city].nation);
elm_object_part_text_set(item, "city", city_str);
item_destroy_selecting(obj);
}
-static void _item_selecting_delete_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void _delete_selecting_item_cb(void *data, Evas_Object *obj, void *event_info)
{
- _D("Delete button is down");
+ main_view_s *main_view_info = NULL;
+ Evas_Object *item = data;
+ int count = 0;
+
+ _D("clicked, delete the selected item");
+
+ ret_if(!item);
+
+ main_view_info = evas_object_data_get(item, DATA_KEY_MAIN_VIEW_INFO);
+ ret_if(!main_view_info);
+
+ item_destroy_selecting(item);
+
+ count = scroller_count_item(main_view_info->city_list);
+ if (count > 1) {
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,hide", "");
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,next_btn,show", "");
+ } else {
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,show", "");
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,next_btn,hide", "");
+ }
}
-static void _item_selecting_delete_up_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+void _text_set_local_time(Evas_Object *item, const char *part, int city, struct tm *local_time)
{
- Evas_Object *item= obj;
+ city_s *city_info = NULL;
+ int hour = local_time->tm_hour;
+ int minute = local_time->tm_min;
+
+ char time_result[PATH_LEN] = {0, };
+
ret_if(!item);
+ ret_if(!part);
- _D("Delete button is up");
+ city_info = city_get();
+ ret_if(!city_info);
- item_destroy_selecting(item);
+ if (((double) ((int) city_info[city].timezone)) < city_info[city].timezone) {
+ minute += 30;
+ if (minute > 60) {
+ hour++;
+ minute -= 60;
+ }
+ }
+
+ hour -= local_time->tm_gmtoff / 3600l;
+ hour += (int) city_info[city].timezone;
+ if (hour < 0)
+ hour += 24;
+
+ hour %= 24;
+
+ snprintf(time_result, sizeof(time_result), "%2d:%02d", hour, minute);
+ elm_object_part_text_set(item, part, time_result);
}
-Evas_Object *item_create_selecting(Evas_Object *parent, int city, int color)
+Evas_Object *item_create_selecting(Evas_Object *parent, int city, struct tm *local_time, main_view_s *main_view_info)
{
Evas_Object *item = NULL;
+ Evas_Object *btn = NULL;
city_s *city_info = NULL;
selecting_info_s *selecting_info = NULL;
char *path = NULL;
char full_path[PATH_LEN] = {0, };
char city_str[PATH_LEN] = {0, };
- char color_str[16] = {0, };
+ char gmt_str[PATH_LEN] = {0, };
retv_if(!parent, NULL);
+ city_info = city_get();
+ goto_if(!city_info, error);
+
+ int i = 0;
+ for (i = 0; i < MAXIMUM_SELECTED_CITY; i++) {
+ if (color_index[i]) continue;
+
+ if (EINA_FALSE == add_city_to_map(i, &city_info[city])) {
+ _E("cannot add a city to the map");
+ break;
+ }
+ break;
+ }
+
path = app_get_resource_path();
retv_if(!path, NULL);
- snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM_EDJE);
+ snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM2_EDJE);
free(path);
selecting_info = calloc(1, sizeof(selecting_info_s));
retv_if(!selecting_info, NULL);
selecting_info->city = city;
- selecting_info->color = color;
+ selecting_info->color = i;
item = elm_layout_add(parent);
retv_if(!item, NULL);
- elm_layout_file_set(item, full_path, "item_selecting");
+ elm_layout_file_set(item, full_path, "item");
evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_data_set(item, DATA_KEY_MAIN_VIEW_INFO, main_view_info);
evas_object_data_set(item, DATA_KEY_SELECTING, selecting_info);
evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_selecting_del_cb, NULL);
- elm_object_signal_callback_add(item, "delete,down", "item", _item_selecting_delete_down_cb, NULL);
- elm_object_signal_callback_add(item, "delete,up", "item", _item_selecting_delete_up_cb, NULL);
evas_object_show(item);
- city_info = city_get();
- goto_if(!city_info, error);
-
+ btn = elm_button_add(item);
+ if (btn) {
+ elm_object_style_set(btn, "transparent");
+ elm_object_part_content_set(item, "delete_event", btn);
+ evas_object_smart_callback_add(btn, "clicked", _delete_selecting_item_cb, item);
+ evas_object_show(btn);
+ }
+
snprintf(city_str, sizeof(city_str), "%s, %s", city_info[city].name, city_info[city].nation);
elm_object_part_text_set(item, "city", city_str);
- if (color) {
- snprintf(color_str, sizeof(color_str), "%d", color);
- elm_object_signal_emit(item, color_str, "mark");
- }
+ if (city_info[city].timezone > 0)
+ snprintf(gmt_str, sizeof(gmt_str), "GMT +%.1f", city_info[city].timezone);
+ else
+ snprintf(gmt_str, sizeof(gmt_str), "GMT %.1f", city_info[city].timezone);
+
+ elm_object_part_text_set(item, "gmt", gmt_str);
+ _text_set_local_time(item, "time", city, local_time);
+
+ if (set_marker(item, i) == EINA_FALSE)
+ _E("cannot set the marker");
+
+ color_index[i] = 1;
return item;
ret_if(!item);
+ evas_object_data_del(item, DATA_KEY_MAIN_VIEW_INFO);
selecting_info = evas_object_data_del(item, DATA_KEY_SELECTING);
- free(selecting_info);
+ if (selecting_info) {
+ if (EINA_FALSE == remove_city_from_map(selecting_info->color))
+ _E("cannot remove the city");
- evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_selecting_del_cb);
- elm_object_signal_callback_del(item, "delete,down", "item", _item_selecting_delete_down_cb);
- elm_object_signal_callback_del(item, "delete,up", "item", _item_selecting_delete_up_cb);
+ color_index[selecting_info->color] = 0;
+ free(selecting_info);
+ }
+ evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_selecting_del_cb);
evas_object_del(item);
}
-void _text_set_local_time(Evas_Object *item, const char *part, int city, struct tm *global_time)
+static void _item_group_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- city_s *city_info = NULL;
- int hour = global_time->tm_hour;
- int minute = global_time->tm_min;
+ item_destroy_group(obj);
+}
- char time_result[PATH_LEN] = {0, };
+static void _item_group_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ _D("An item is down");
+}
- ret_if(!item);
- ret_if(!part);
+static Eina_Bool _item_group_up_timer_cb(void *data)
+{
+ Evas_Object *item = data;
+ Evas_Object *selecting_item = NULL;
+ main_view_s *main_view_info = NULL;
+ group_info_s *group_info = NULL;
+ struct tm *local_time = NULL;
+ time_t t = 0;
+ int i = 0;
- city_info = city_get();
- ret_if(!city_info);
+ retv_if(!item, ECORE_CALLBACK_CANCEL);
- if (((double) ((int) city_info[city].timezone)) < city_info[city].timezone) {
- minute += 30;
- if (minute > 60) {
- hour++;
- minute -= 60;
+ main_view_info = evas_object_data_get(item, DATA_KEY_MAIN_VIEW_INFO);
+ retv_if(!main_view_info, ECORE_CALLBACK_CANCEL);
+ retv_if(!main_view_info->city_list, ECORE_CALLBACK_CANCEL);
+
+ group_info = evas_object_data_get(item, GROUP_INFO);
+ retv_if(!group_info, ECORE_CALLBACK_CANCEL);
+
+ time(&t);
+ local_time = localtime(&t);
+
+ for (i = 0; i < MAXIMUM_SELECTED_CITY; i++) {
+ if (!group_info->city[i]) {
+ _D("No city anymore");
+ break;
}
+ selecting_item = item_create_selecting(main_view_info->city_list, group_info->city[i], local_time, main_view_info);
+ break_if(!selecting_item);
+ scroller_append_item(main_view_info->city_list, selecting_item);
}
- snprintf(time_result, sizeof(time_result), "%d:%d", hour, minute);
- elm_object_part_text_set(item, part, time_result);
-}
+ main_view_go_result(main_view_info);
-static void _resize_graph_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- result_info_s *result_info = NULL;
- int x, y, w, h;
- int start_x = 0;
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,drawer,hide", "");
+ //elm_object_signal_emit(main_view_info->main_view, "momentic,state,drawer_btn,hide", "");
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,result,show", "");
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,add_description,hide", "");
- result_info = evas_object_data_get(obj, DATA_KEY_RESULT);
- ret_if(!result_info);
- edje_object_part_geometry_get(_EDJ(obj), "graph_base", &x, &y, &w, &h);
+ return ECORE_CALLBACK_CANCEL;
+}
- if (result_info->start > result_info->end) {
- evas_object_move(result_info->rect2, x, y);
- evas_object_resize(result_info->rect2, w / 10.0, h);
- evas_object_color_set(result_info->rect2, 0, 0, 0, 255);
- evas_object_show(result_info->rect2);
- } else {
- evas_object_hide(result_info->rect2);
- }
+static void _item_group_up_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ main_view_s *main_view_info = data;
+ ret_if(!main_view_info);
+ ret_if(!main_view_info->city_list);
- start_x = (result_info->start / 24.0f) * w + x;
+ scroller_clear_item(main_view_info->city_list);
- evas_object_move(result_info->rect1, start_x, y);
- evas_object_resize(result_info->rect1, x + w - start_x, h);
- evas_object_color_set(result_info->rect1, 0, 0, 0, 255);
- evas_object_show(result_info->rect1);
+ ecore_timer_add(0.4, _item_group_up_timer_cb, obj);
}
-static void _item_result_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void _delete_group_item_cb(void *data, Evas_Object *obj, void *event_info)
{
- item_destroy_result(obj);
+ main_view_s *main_view_info = NULL;
+ Evas_Object *item = data;
+ group_info_s *group_info = NULL;
+ int count = 0;
+
+ _D("clicked, delete the group item");
+
+ ret_if(!item);
+
+ main_view_info = evas_object_data_get(item, DATA_KEY_MAIN_VIEW_INFO);
+ ret_if(!main_view_info);
+
+ group_info = evas_object_data_get(item, GROUP_INFO);
+ ret_if(!group_info);
+
+ db_delete_group(main_view_info->moment_info->db, group_info->id);
+ main_view_info->moment_info->group_list = eina_list_remove(main_view_info->moment_info->group_list, group_info);
+ group_info_destroy(group_info);
+
+ item_destroy_group(item);
+
+ count = scroller_count_item(main_view_info->group_scroller);
+ if (count < 1) {
+ elm_object_signal_emit(main_view_info->main_view, "momentic,state,drawer,noresult,show", "");
+ }
+
+
}
-Evas_Object *item_create_result(Evas_Object *parent, int city, int color, int start, int end, struct tm *global_time)
+Evas_Object *item_create_group(Evas_Object *parent, group_info_s *group_info, main_view_s *main_view_info)
{
Evas_Object *item = NULL;
- city_s *city_info = NULL;
- result_info_s *result_info = NULL;
- Evas *e = NULL;
+ Evas_Object *btn = NULL;
char *path = NULL;
char full_path[PATH_LEN] = {0, };
- char city_str[PATH_LEN] = {0, };
- char color_str[16] = {0, };
retv_if(!parent, NULL);
snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM_EDJE);
free(path);
- result_info = calloc(1, sizeof(result_info_s));
- retv_if(!result_info, NULL);
-
item = elm_layout_add(parent);
- goto_if(!item, error);
+ retv_if(!item, NULL);
- elm_layout_file_set(item, full_path, "item_result");
+ elm_layout_file_set(item, full_path, "item_group");
+ evas_object_data_set(item, GROUP_INFO, group_info);
+ evas_object_data_set(item, DATA_KEY_MAIN_VIEW_INFO, main_view_info);
evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_data_set(item, DATA_KEY_RESULT, result_info);
- evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_result_del_cb, NULL);
- evas_object_event_callback_add(item, EVAS_CALLBACK_RESIZE, _resize_graph_cb, result_info);
- evas_object_event_callback_add(item, EVAS_CALLBACK_MOVE, _resize_graph_cb, result_info);
- evas_object_show(item);
-
- city_info = city_get();
- goto_if(!city_info, error);
-
- snprintf(city_str, sizeof(city_str), "%s, %s", city_info[city].name, city_info[city].nation);
- elm_object_part_text_set(item, "city", city_str);
-
- snprintf(color_str, sizeof(color_str), "%d", color);
- elm_object_signal_emit(item, color_str, "mark");
-
- _text_set_local_time(item, "time", city, global_time);
-
- e = evas_object_evas_get(item);
- goto_if(!e, error);
-
- result_info->rect1 = evas_object_rectangle_add(e);
- goto_if(!result_info->rect1, error);
-
- result_info->rect2 = evas_object_rectangle_add(e);
- goto_if(!result_info->rect2, error);
-
- result_info->city = city;
- result_info->start = start;
- result_info->end = end;
+ evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_group_del_cb, NULL);
+ elm_object_signal_callback_add(item, "down", "item", _item_group_down_cb, NULL);
+ elm_object_signal_callback_add(item, "up", "item", _item_group_up_cb, main_view_info);
- return item;
+ evas_object_show(item);
-error:
- if (result_info) {
- if (result_info->rect1)
- evas_object_del(result_info->rect1);
- if (result_info->rect2)
- evas_object_del(result_info->rect2);
- free(result_info);
+ btn = elm_button_add(item);
+ if (btn) {
+ elm_object_style_set(btn, "transparent");
+ elm_object_part_content_set(item, "delete_event", btn);
+ evas_object_smart_callback_add(btn, "clicked", _delete_group_item_cb, item);
+ evas_object_show(btn);
}
- if (item)
- evas_object_del(item);
+ elm_object_part_text_set(item, "title", group_info->title);
- free(result_info);
- return NULL;
+ return item;
}
-void item_destroy_result(Evas_Object *item)
+void item_destroy_group(Evas_Object *item)
{
- result_info_s *result_info = NULL;
-
ret_if(!item);
- evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_result_del_cb);
-
- result_info = evas_object_data_del(item, DATA_KEY_RESULT);
- if (result_info) {
- if (result_info->rect1)
- evas_object_del(result_info->rect1);
- if (result_info->rect2)
- evas_object_del(result_info->rect2);
- free(result_info);
- }
+ evas_object_data_del(item, GROUP_INFO);
+ evas_object_data_del(item, DATA_KEY_MAIN_VIEW_INFO);
+ evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_group_del_cb);
+ elm_object_signal_callback_del(item, "down", "item", _item_group_down_cb);
+ elm_object_signal_callback_del(item, "up", "item", _item_group_up_cb);
evas_object_del(item);
}
-static void _item_group_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void _item_padding_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- item_destroy_group(obj);
+ item_destroy_padding(obj);
}
-static void _item_group_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+Evas_Object *item_create_padding(Evas_Object *parent)
{
- _D("An item is down");
-}
+ Evas_Object *item = NULL;
-static void _item_group_up_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
- Evas_Object *item = obj;
- Evas_Object *selecting_item = NULL;
- main_view_s *main_view_info = data;
- int city = 0;
- int count = 0;
+ char *path = NULL;
+ char full_path[PATH_LEN] = {0, };
- ret_if(!item);
- ret_if(!main_view_info);
- ret_if(!main_view_info->city_list);
+ retv_if(!parent, NULL);
- _D("An item is selected");
+ path = app_get_resource_path();
+ retv_if(!path, NULL);
- count = scroller_count_item(main_view_info->city_list);
- if (count >= MAXIMUM_SELECTED_CITY) {
- Evas_Object *popup = NULL;
- _D("Cities selected are limited.");
- popup = popup_create_text(main_view_info->main_view, "Maximum number of cities reached");
- elm_object_part_content_set(main_view_info->main_view, "popup", popup);
- return;
- }
+ snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM_EDJE);
+ free(path);
- city = (int) evas_object_data_get(item, DATA_KEY_CITY);
- selecting_item = item_create_selecting(main_view_info->city_list, city, 0);
- ret_if(!selecting_item);
+ item = elm_layout_add(parent);
+ retv_if(!item, NULL);
- scroller_append_item(main_view_info->city_list, selecting_item);
+ elm_layout_file_set(item, full_path, "item_padding");
+
+ evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_padding_del_cb, NULL);
+
+ evas_object_show(item);
+
+ return item;
}
-Evas_Object *item_create_group(Evas_Object *parent, const char *title, main_view_s *main_view_info)
+void item_destroy_padding(Evas_Object *item)
+{
+ ret_if(!item);
+ evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_padding_del_cb);
+ evas_object_del(item);
+}
+
+static void _item_best_time_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ item_destroy_best_time(obj);
+}
+
+Evas_Object *item_create_best_time(Evas_Object *parent, double start, double end)
{
Evas_Object *item = NULL;
char *path = NULL;
char full_path[PATH_LEN] = {0, };
+ char time_str[PATH_LEN] = {0, };
+
+ double half;
+ int tmp = 0;
retv_if(!parent, NULL);
path = app_get_resource_path();
retv_if(!path, NULL);
- snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM_EDJE);
+ snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, BEST_TIME_EDJE);
free(path);
item = elm_layout_add(parent);
retv_if(!item, NULL);
- elm_layout_file_set(item, full_path, "item_group");
+ elm_layout_file_set(item, full_path, "best_time");
evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_group_del_cb, NULL);
- elm_object_signal_callback_add(item, "down", "item", _item_group_down_cb, NULL);
- elm_object_signal_callback_add(item, "up", "item", _item_group_up_cb, main_view_info);
+ evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_best_time_del_cb, NULL);
+
+ elm_object_part_text_set(item, "city", "Best time");
+ evas_object_data_set(item, DATA_KEY_BEST_TIME, (void *) 1);
evas_object_show(item);
- elm_object_part_text_set(item, "city", title);
+ if (start >= end) {
+ elm_object_part_text_set(item, "time", "No matched time");
+ goto out;
+ }
+
+ tmp = start;
+ if (tmp == start) half = 0.0f;
+ else half = 0.5f;
+
+ if (tmp) tmp %= 24;
+ start = ((double) tmp) + half;
+
+ tmp = end;
+ if (tmp == end) half = 0.0f;
+ else half = 0.5f;
+
+ if (tmp) tmp %= 24;
+ end = ((double) tmp) + half;
+
+ _D("HELLO, Best,%f:%f", start, end);
+
+ int start_hour = start;
+ int start_minute = (start_hour == start)? 0 : 30;
+ int end_hour = end;
+ int end_minute = (end_hour == end)? 0 : 30;
+
+ snprintf(time_str, sizeof(time_str), "%d:%02d - %d:%02d", start_hour, start_minute, end_hour, end_minute);
+ elm_object_part_text_set(item, "time", time_str);
+ if (set_time_range(item, 5, start, end, 0.0f, 0.0f) == EINA_FALSE)
+ _E("cannot set time range");
+out:
return item;
}
-void item_destroy_group(Evas_Object *item)
+void item_destroy_best_time(Evas_Object *item)
{
ret_if(!item);
-
- evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_group_del_cb);
- elm_object_signal_callback_del(item, "down", "item", _item_group_down_cb);
- elm_object_signal_callback_del(item, "up", "item", _item_group_up_cb);
-
+ evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_best_time_del_cb);
+ evas_object_data_del(item, DATA_KEY_BEST_TIME);
evas_object_del(item);
}
+