diff options
5 files changed, 148 insertions, 53 deletions
diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/data/EventListItem.java b/vdrmanager/src/de/bjusystems/vdrmanager/data/EventListItem.java index 995a55b..1f1fd8f 100644 --- a/vdrmanager/src/de/bjusystems/vdrmanager/data/EventListItem.java +++ b/vdrmanager/src/de/bjusystems/vdrmanager/data/EventListItem.java @@ -2,17 +2,16 @@ package de.bjusystems.vdrmanager.data; import de.bjusystems.vdrmanager.gui.Utils; - /** * @author lado - * - * TODO auf Event Interface umstellen und die Aufrufen an event delegieren. Das hier ist nicht gut. + * + * TODO auf Event Interface umstellen und die Aufrufen an event + * delegieren. Das hier ist nicht gut. */ public class EventListItem extends BaseEvent { - Event event; - + public Event getEvent() { return event; } @@ -25,19 +24,18 @@ public class EventListItem extends BaseEvent { private final Timer timer; private final Epg epg; private final String header; - -// -// public EventListItem(final Event event){ -// if(event instanceof Recording){ -// this((Recording)event); -// } else if (event instanceof Timer){ -// this((Timer)event); -// } else { -// this((Epg)event); -// } -// throw new IllegalArgumentException("Uknown event type " + event); -// } + // + // public EventListItem(final Event event){ + // if(event instanceof Recording){ + // this((Recording)event); + // } else if (event instanceof Timer){ + // this((Timer)event); + // } else { + // this((Epg)event); + // } + // throw new IllegalArgumentException("Uknown event type " + event); + // } public EventListItem(final Recording rec) { super(rec); @@ -65,10 +63,10 @@ public class EventListItem extends BaseEvent { this.epg = epg; this.rec = null; } - + @Override public TimerState getTimerState() { - if(epg != null){ + if (epg != null) { return epg.getTimerState(); } return super.getTimerState(); @@ -89,7 +87,6 @@ public class EventListItem extends BaseEvent { return timer != null; } - public String getHeader() { return header; } @@ -102,11 +99,15 @@ public class EventListItem extends BaseEvent { return epg; } -// public Event getEvent() { -// return event; -// } -// - public boolean isLive(){ + public Recording getRecording() { + return rec; + } + + // public Event getEvent() { + // return event; + // } + // + public boolean isLive() { return Utils.isLive(this); } @@ -121,7 +122,8 @@ public class EventListItem extends BaseEvent { text.append(isTimer() ? "Timer: " : "Event: "); text.append("Channel: ").append(getChannelNumber()); text.append(" (").append(getChannelName()).append("), "); - text.append("Zeit: ").append(formatter.getDate()).append(" ").append(formatter.getTime()); + text.append("Zeit: ").append(formatter.getDate()).append(" ") + .append(formatter.getTime()); return text.toString(); } diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/data/Recording.java b/vdrmanager/src/de/bjusystems/vdrmanager/data/Recording.java index c0481f7..75fe9af 100644 --- a/vdrmanager/src/de/bjusystems/vdrmanager/data/Recording.java +++ b/vdrmanager/src/de/bjusystems/vdrmanager/data/Recording.java @@ -7,19 +7,32 @@ public class Recording extends BaseEvent{ public Recording(String line) { final String[] words = line.split(":"); - start = new Date(Long.parseLong(words[0])*1000); - stop = new Date(Long.parseLong(words[1]) * 1000); - fileSize = Integer.valueOf(words[2]); - channelName = words[3]; - title = words[4]; - shortText = words[5]; - description = words[6]; - fileName = words[7]; + int idx = 0; + index = Integer.valueOf(words[idx++]); + start = new Date(Long.parseLong(words[idx++]) * 1000); + stop = new Date(Long.parseLong(words[idx++]) * 1000); + channelName = words[idx++]; + title = words[idx++]; + shortText = words[idx++]; + description = words[idx++]; + fileName = words[idx++]; + fileSize = Integer.valueOf(words[idx++]); + } private String fileName; private int fileSize; + + private int index; + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } public int getFileSize() { return fileSize; @@ -40,5 +53,10 @@ public class Recording extends BaseEvent{ public TimerState getTimerState() { return TimerState.Recorded; } + + public String toCommandLine(){ + return String.valueOf(index); + } + } diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/gui/RecordingListActivity.java b/vdrmanager/src/de/bjusystems/vdrmanager/gui/RecordingListActivity.java index 8dfc530..6c5cb66 100644 --- a/vdrmanager/src/de/bjusystems/vdrmanager/gui/RecordingListActivity.java +++ b/vdrmanager/src/de/bjusystems/vdrmanager/gui/RecordingListActivity.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; @@ -14,6 +15,7 @@ import de.bjusystems.vdrmanager.R; import de.bjusystems.vdrmanager.data.EventFormatter; import de.bjusystems.vdrmanager.data.EventListItem; import de.bjusystems.vdrmanager.data.Recording; +import de.bjusystems.vdrmanager.tasks.DeleteRecordingTask; import de.bjusystems.vdrmanager.utils.date.DateFormatter; import de.bjusystems.vdrmanager.utils.svdrp.RecordingClient; import de.bjusystems.vdrmanager.utils.svdrp.SvdrpAsyncListener; @@ -90,25 +92,32 @@ public class RecordingListActivity extends BaseEventListActivity<Recording> } } - // @Override - // public boolean onContextItemSelected(final MenuItem item) { - // - // final AdapterView.AdapterContextMenuInfo info = - // (AdapterView.AdapterContextMenuInfo) item - // .getMenuInfo(); - // final EventListItem event = adapter.getItem(info.position); - // - // switch (item.getItemId()) { - // case R.id.recording_item_menu_delete: { - // - // break; - // } - // case R.id.recording_item_menu_stream: { - // break; - // } - // } - // return true; - // } + @Override + public boolean onContextItemSelected(final MenuItem item) { + + final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item + .getMenuInfo(); + final EventListItem event = adapter.getItem(info.position); + Recording rec = event.getRecording(); + switch (item.getItemId()) { + case R.id.recording_item_menu_delete: { + DeleteRecordingTask drt = new DeleteRecordingTask(this,rec) { + @Override + public void finished() { + dismiss(progress); + refresh(); + } + }; + drt.start(); + break; + } + case R.id.recording_item_menu_stream: { + say("Sorry, not yet. It would be. File -> "+ rec.getFileName()); + break; + } + } + return true; + } private void startRecordingQuery() { diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/tasks/DeleteRecordingTask.java b/vdrmanager/src/de/bjusystems/vdrmanager/tasks/DeleteRecordingTask.java new file mode 100644 index 0000000..255a6a6 --- /dev/null +++ b/vdrmanager/src/de/bjusystems/vdrmanager/tasks/DeleteRecordingTask.java @@ -0,0 +1,17 @@ +package de.bjusystems.vdrmanager.tasks; + +import android.app.Activity; +import de.bjusystems.vdrmanager.R; +import de.bjusystems.vdrmanager.data.Recording; +import de.bjusystems.vdrmanager.utils.svdrp.DelRecordingClient; + +public abstract class DeleteRecordingTask extends AsyncProgressTask<Recording> { + public DeleteRecordingTask(final Activity activity, final Recording r) { + super(activity, new DelRecordingClient(r) { + @Override + public int getProgressTextId() { + return R.string.progress_recording_delete; + } + }); + } +} diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/utils/svdrp/DelRecordingClient.java b/vdrmanager/src/de/bjusystems/vdrmanager/utils/svdrp/DelRecordingClient.java new file mode 100644 index 0000000..a6b2f8f --- /dev/null +++ b/vdrmanager/src/de/bjusystems/vdrmanager/utils/svdrp/DelRecordingClient.java @@ -0,0 +1,49 @@ +package de.bjusystems.vdrmanager.utils.svdrp; + +import de.bjusystems.vdrmanager.R; +import de.bjusystems.vdrmanager.data.Recording; + +/** + * Class for deleting a record + * @author lado + * + */ +public class DelRecordingClient extends SvdrpClient<Recording> { + + /** current recording */ + Recording recording; + + /** + * Constructor + * Recording + */ + public DelRecordingClient(final Recording recording) { + super(); + this.recording = recording; + } + + /** + * Starts the request + */ + @Override + public void run() throws SvdrpException { + + final StringBuilder command = new StringBuilder(); + + command.append("drecording "); + command.append(recording.toCommandLine()); + runCommand(command.toString()); + } + + + @Override + public int getProgressTextId() { + return R.string.progress_timer_save; + } + + @Override + protected Recording parseAnswer(String line) { + return null; + } +} + |