package com.iwedia.service.reminder; import android.os.RemoteException; import android.util.Log; import com.iwedia.comm.IReminderControl; import com.iwedia.comm.reminder.IReminderCallback; import com.iwedia.dtv.epg.EpgEvent; import com.iwedia.dtv.reminder.ReminderEvent; import com.iwedia.service.IWEDIAService; import com.iwedia.service.proxyservice.IDTVInterface; import android.util.Log; import com.iwedia.dtv.pvr.PvrSortMode; import com.iwedia.dtv.pvr.PvrSortOrder; import com.iwedia.dtv.reminder.ReminderSmartInfo; import com.iwedia.dtv.reminder.ReminderSmartParam; import com.iwedia.dtv.reminder.ReminderTimerInfo; import com.iwedia.dtv.reminder.ReminderTimerParam; import com.iwedia.dtv.reminder.ReminderType; import com.iwedia.dtv.reminder.ReminderEvent; import com.iwedia.dtv.reminder.ReminderEventTrigger; import com.iwedia.dtv.reminder.ReminderEventAdd; import com.iwedia.dtv.reminder.ReminderEventRemove; import com.iwedia.dtv.types.InternalException; /** * The reminder controller. The reminder item consists of the time, date, * description and a service. * * @author Stanislava Markovic */ public class ReminderControl extends IReminderControl.Stub implements IDTVInterface { private static IReminderCallback reminderCallback; public static final String LOG_TAG = "RendererControlerJava"; private static final int REMIDER_EVENT_TRIGGER = 0; private static final int REMIDER_EVENT_ADD = 1; private static final int REMIDER_EVENT_REMOVE = 2; /** * Gets the number of reminder items. * * @return number of reminder items */ @Override public int updateList() throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getReminderControl() .updateList(); } /** * Adds a new reminder to the list. * * @param item * - item you want to add. * @return true if an item was added. */ @Override public void createSmart(ReminderSmartParam reminderSmartParam) throws RemoteException { Log.d(LOG_TAG, "createSmart"); try { IWEDIAService.getInstance().getDTVManager().getReminderControl() .createSmart(reminderSmartParam); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InternalException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.e(LOG_TAG, "setSmartReminder" + reminderSmartParam.getTime()); } /** * Adds a new manual reminder to the list. * * @param item * - item you want to add. * @return true if an item was added. */ @Override public void createTimer(ReminderTimerParam param) throws RemoteException { try { IWEDIAService.getInstance().getDTVManager().getReminderControl() .createTimer(param); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InternalException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * Removes a reminder from the list. * * @param index * - index of the item you want to remove. * @return true if an item was removed. */ @Override public void destroy(int index) throws RemoteException { IWEDIAService.getInstance().getDTVManager().getReminderControl() .destroy(index); } /** * Gets the reminder item by the index. * * @param index * - index of the item you want to get. * @return {@com.iwedia.comm.epg.EpgEvent} */ @Override public ReminderSmartInfo getSmartInfo(int index) throws RemoteException { Log.e(LOG_TAG, "getSmartInfo"); return IWEDIAService.getInstance().getDTVManager().getReminderControl() .getSmartInfo(index); } /** * Gets the reminder item by the index. * * @param index * - index of the item you want to get. * @return {@com.iwedia.comm.epg.EpgEvent} */ @Override public ReminderTimerInfo getTimerInfo(int index) throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getReminderControl() .getTimerInfo(index); } @Override public void channelZapping(boolean status) { // TODO Auto-generated method stub } /** * Gets reminder type. * * @param index * index of the item. * @return reminder type */ @Override public ReminderType getType(int index) throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getReminderControl() .getType(index); } /** * Gets reminder list sort mode * * @param * @return list sort mode */ @Override public PvrSortMode getListSortMode() throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getReminderControl() .getListSortMode(); } /** * Set reminder list sort mode * * @param * @return list sort mode */ @Override public boolean setListSortMode(PvrSortMode mode) throws RemoteException { IWEDIAService.getInstance().getDTVManager().getReminderControl() .setListSortMode(mode); return true; } /** * Gets reminder list sort order * * @param * @return list sort order */ @Override public PvrSortOrder getListSortOrder() throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getReminderControl() .getListSortOrder(); } /** * Set reminder list sort order * * @param * @return list sort order */ @Override public boolean setListSortOrder(PvrSortOrder order) throws RemoteException { IWEDIAService.getInstance().getDTVManager().getReminderControl() .setListSortOrder(order); return true; } /** * Register reminder callback. */ @Override public void registerCallback(IReminderCallback callback) throws RemoteException { if (callback != null) { reminderCallback = callback; } } /** * DTV Reminder callback. */ public static com.iwedia.dtv.reminder.IReminderCallback dtvReminderCallback = new com.iwedia.dtv.reminder.IReminderCallback() { @Override public void reminderTrigger(ReminderEventTrigger reminderEvent) { Log.d(LOG_TAG, "reminderTrigger :" + reminderEvent.getServiceIndex() + " " + reminderEvent.getEventID() + " " + reminderEvent.getTitle()); try { reminderCallback.reminderTrigger(reminderEvent); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void reminderAdd(ReminderEventAdd eventAdd) { try { reminderCallback.reminderAdd(eventAdd); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void reminderRemove(ReminderEventRemove eventRemove) { try { reminderCallback.reminderRemove(eventRemove); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; public static com.iwedia.dtv.reminder.IReminderCallback getReminderCallback() { return dtvReminderCallback; } }