const struct tv_program_info *prog)
{
char buf[BUF_MAX];
- int r;
+ int r, service_id;
+
+ service_id = evas_object_data_get(obj, KEY_SVCID);
+ if (service_id != prog->service_id)
+ return;
if (prog->start_time && prog->end_time) {
r = _get_program_time(buf, sizeof(buf),
_load_channel_text(obj, channel_info);
_set_icon_box(obj, channel_info);
+ evas_object_data_set(obj, KEY_SVCID, channel_info->service_id);
prog_req = calloc(1, sizeof(*prog_req));
prog_req->tv_program_cb = _tv_program_cb;
prog_req->user_data = obj;
- if (channel_info->service_id == current_service)
+ r = tv_epg_get_cache_program(channel_info->service_id,
+ prog_req);
+
+ if (channel_info->service_id == current_service) {
+ prog_req = calloc(1, sizeof(*prog_req));
+ prog_req->tv_program_cb = _tv_program_cb;
+ prog_req->user_data = obj;
r = tv_epg_get_program(channel_info->service_id, prog_req);
- else
- r = tv_epg_get_cache_program(channel_info->service_id,
- prog_req);
+ }
if (r < 0)
viewmgr_update_view(VIEW_CHANNELINFO,