const char *const MAIN_VIEW_EDJE = "momentic.edj";
const char *const ENTRY_EDJE = "entry.edj";
const char *const PREDICT_ITEM_EDJE = "predict_item.edj";
+static int cur_page = 0;
static void _append_item_to_searchlist(Evas_Object *searchlist, Evas_Object *item)
{
_append_item_to_searchlist(searchlist, predict_item);
}
- for (; i < CITY_MAX; i++) {
+ for (; i < CITY_SYDNEY; i++) {
int matched = 0;
- if (city_info[i].name && strstr(city_info[i].name, str))
+ if (city_info[i].name && str && strstr(city_info[i].name, str))
matched = 1;
- else if (city_info[i].nation && strstr(city_info[i].nation, str))
+ else if (city_info[i].nation && str && strstr(city_info[i].nation, str))
matched = 1;
if (matched) {
elm_entry_single_line_set(entry_obj, EINA_TRUE);
/* This makes the text upper */
elm_entry_scrollable_set(entry_obj, EINA_FALSE);
- elm_entry_cnp_mode_set(entry_obj, ELM_CNP_MODE_PLAINTEXT);
+ //elm_entry_cnp_mode_set(entry_obj, ELM_CNP_MODE_PLAINTEXT);
elm_entry_text_style_user_push(entry_obj, "DEFAULT='font_size=20'");
elm_object_part_text_set(entry_obj, "elm.guide", "<font_size=20>Search</font_size>");
evas_object_del(searchbar);
}
+static void _set_time_range(Evas_Object *item, int i, int base_city, int cur_city)
+{
+ double start1 = 0.0f;
+ double end1 = 0.0f;
+ double start2 = 0.0f;
+ double end2 = 0.0f;
+
+ city_s *city_info = NULL;
+
+ int start = 0;
+ int end = 0;
+
+ city_info = city_get();
+ ret_if(!city_info);
+
+ start = (int) city_info[cur_city].timezone - city_info[base_city].timezone + (double) BEST_START_TIME;
+
+ if (start < 0)
+ start += 24;
+
+ start %= 24;
+ end = start + BEST_DURING_TIME;
+
+ if (end > 24.0f) {
+ start1 = (double) start;
+ end1 = 24.0f;
+
+ start2 = 0.0f;
+ end2 = (double) (end % 24);
+ } else {
+ start1 = (double) start;
+ end1 = (double) end;
+ }
+
+ _D("O, %s %f:%f:%f:%f", city_info[cur_city].name, start1, end1, start2, end2);
+
+ if (set_time_range(item, i, start1, end1, start2, end2) == EINA_FALSE)
+ _E("cannot set time range");
+}
+
+typedef struct part_info
+{
+ double p1, p2;
+
+} part_info_s;
+
+
static void _click_next_btn_cb(void *data, Evas_Object *obj, void *event_info)
{
main_view_s *main_view_info = data;
time_t t;
city_s *city_info = NULL;
int cur_timezone = 0;
+ int base_city = 0;
ret_if(!main_view_info);
ret_if(!main_view_info->city_list);
- ret_if(!main_view_info->result_list);
_D("result button is clicked");
- scroller_clear_item(main_view_info->result_list);
-
city_info = city_get();
ret_if(!city_info);
global_time = gmtime(&t);
local_time = localtime(&t);
- cur_timezone = (int) local_time->tm_gmtoff / 3600;
+ cur_timezone = (int) local_time->tm_gmtoff / 3600l;
box = elm_object_content_get(main_view_info->city_list);
ret_if(!box);
ret_if(!list);
EINA_LIST_FREE(list, item) {
+ selecting_info_s *selecting_info = evas_object_data_get(item, DATA_KEY_SELECTING);
+ continue_if(!selecting_info);
+
+ elm_object_signal_emit(item, "momentic,item,state,result", "");
+ elm_object_part_content_set(item, "time", "");
+
+ if (!base_city) {
+ base_city = selecting_info->city;
+ _set_time_range(item, selecting_info->color, base_city, base_city);
+ continue;
+ } else
+ _set_time_range(item, selecting_info->color, base_city, selecting_info->city);
+
+#if 0
selecting_info_s *selecting_info = NULL;
- Evas_Object *item_result = NULL;
int start = 0, end = 0;
int tmp_timezone = 0;
start = tmp_timezone - cur_timezone + BEST_START_TIME;
end = (start + (BEST_END_TIME - BEST_START_TIME)) % 24;
+#endif
+ }
- item_result = item_create_result(main_view_info->result_list
- , selecting_info->city
- , selecting_info->color
- , start
- , end
- , global_time);
+ item = item_create_best_time(main_view_info->city_list);
+ if (item) {
+ elm_object_signal_emit(item, "momentic,item,state,show", "");
+ scroller_append_item(main_view_info->city_list, item);
+#if 0
+ //decide best time range
+ list = elm_box_children_get(box);
+ double r1 = 0, r2 = 24, r3 = 0, r4 = 24;
+ Eina_Bool best_time = EINA_TRUE;
+ Evas_Object *it;
+ EINA_LIST_FREE(list, it) {
+ Evas_Object *rect1 = evas_object_data_get(it, "part1");
+ Evas_Object *rect2 = evas_object_data_get(it, "part2");
+
+ if (rect1)
+ {
+ part_info_s *pi = evas_object_data_get(rect1, "part_info");
+ if ((pi->p1 * 24) > r1) r1 = pi->p1 * 24;
+ else best_time = EINA_FALSE;
+ if ((pi->p2 * 24) < r2) r2 = pi->p2 * 24;
+ else best_time = EINA_FALSE;
+ }
+
+ if (rect2)
+ {
+ part_info_s *pi = evas_object_data_get(rect2, "part_info");
+ if ((pi->p1 *24) > r1) r1 = pi->p1 * 24;
+ else best_time = EINA_FALSE;
+ if ((pi->p2 *24) < r2) r2 = pi->p2 * 24;
+ else best_time = EINA_FALSE;
+ }
+ }
- scroller_append_item(main_view_info->result_list, item_result);
- }
+ if (best_time){
+_D("AQAAA %f %f %f %f", r1, r2, r3, r4);
+ set_time_range(item, 5, r1, r2, r3, r4);
+ }
+#endif
+ } else
+ _E("cannot append an item");
elm_object_signal_emit(main_view_info->main_view, "momentic,state,page2", "");
+ cur_page = 2;
}
static Evas_Object *_create_next_btn(Evas_Object *parent, main_view_s *main_view_info)
ret_if(!main_view_info->main_view);
elm_object_signal_emit(main_view_info->main_view, "momentic,state,page1", "");
+ cur_page = 1;
}
static void _page1_done_cb(void *data, Evas_Object *obj, const char *signal, const char *source)
static void _main_view_back_cb(void *data, Evas_Object *obj, void *event_info)
{
+ main_view_s *main_view_info = data;
static time_t prev_t;
time_t cur_t;
prev_t = cur_t;
elm_object_signal_emit(obj, "momentic,state,page,back", "");
+
+ if (1 == cur_page) {
+ item_reset_color_index();
+ scroller_clear_item(main_view_info->city_list);
+
+ elm_object_focus_set(main_view_info->searchbar, EINA_FALSE);
+ cur_page = 0;
+ } else if (2 == cur_page) {
+ Eina_List *list = NULL;
+ Evas_Object *item = NULL;
+ Evas_Object *tmp = NULL;
+ Evas_Object *box = elm_object_content_get(main_view_info->city_list);
+
+ ret_if(!box);
+
+ list = elm_box_children_get(box);
+ ret_if(!list);
+
+ EINA_LIST_FREE(list, item) {
+ elm_object_signal_emit(item, "momentic,item,state,default", "");
+ tmp = item;
+ }
+ scroller_remove_item(main_view_info->city_list, tmp);
+ item_destroy_best_time(tmp);
+ cur_page = 1;
+ } else if (0 == cur_page) {
+ elm_win_lower(main_view_info->moment_info->win);
+ }
}
Evas_Object *main_view_create(Evas_Object *parent, moment_info_s *moment_info)
if (main_view_info->searchlist)
elm_object_part_content_set(main_view_info->main_view, "searchlist", main_view_info->searchlist);
- main_view_info->result_list = _create_result_list(main_view_info->main_view);
- if (main_view_info->result_list)
- elm_object_part_content_set(main_view_info->main_view, "result_list", main_view_info->result_list);
-
main_view_info->group_scroller = _create_group_scroller(main_view_info->main_view, moment_info->group_list, main_view_info);
if (main_view_info->group_scroller)
evas_object_hide(main_view_info->group_scroller);
if (main_view_info->group_scroller)
_destroy_group_scroller(main_view_info->group_scroller);
- if (main_view_info->result_list)
- _destroy_result_list(main_view_info->result_list);
-
if (main_view_info->searchlist)
_destroy_searchlist(main_view_info->searchlist);