diff options
-rw-r--r-- | vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java | 57 |
1 files changed, 44 insertions, 13 deletions
diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java b/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java index 1eadf34..42c8e23 100644 --- a/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java +++ b/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java @@ -30,6 +30,7 @@ import de.bjusystems.vdrmanager.R; import de.bjusystems.vdrmanager.app.Intents; import de.bjusystems.vdrmanager.app.VdrManagerApp; import de.bjusystems.vdrmanager.data.Epg; +import de.bjusystems.vdrmanager.data.EpgCache; import de.bjusystems.vdrmanager.data.Event; import de.bjusystems.vdrmanager.data.EventFormatter; import de.bjusystems.vdrmanager.data.Preferences; @@ -38,6 +39,7 @@ import de.bjusystems.vdrmanager.data.Timer; import de.bjusystems.vdrmanager.data.TimerMatch; import de.bjusystems.vdrmanager.data.Timerable; import de.bjusystems.vdrmanager.data.Timerable.TimerState; +import de.bjusystems.vdrmanager.tasks.CreateTimerTask; import de.bjusystems.vdrmanager.tasks.DeleteTimerTask; import de.bjusystems.vdrmanager.tasks.ToggleTimerTask; import de.bjusystems.vdrmanager.tasks.VoidAsyncTask; @@ -233,6 +235,7 @@ public class EpgDetailsActivity extends ICSBaseActivity implements Event event = epgs.get(position); + view.setTag(event); // view.setTag(event); final EventFormatter formatter = new EventFormatter(event); @@ -262,13 +265,21 @@ public class EpgDetailsActivity extends ICSBaseActivity implements switch (timerable.getTimerState()) { case Active: - setState(state, Utils.getTimerStateDrawable(match, R.drawable.timer_active, R.drawable.timer_active_begin, R.drawable.timer_active_end) ); + setState(state, Utils.getTimerStateDrawable(match, + R.drawable.timer_active, R.drawable.timer_active_begin, + R.drawable.timer_active_end)); break; case Inactive: - setState(state, Utils.getTimerStateDrawable(match, R.drawable.timer_inactive,R.drawable.timer_inactive_begin, R.drawable.timer_inactive_end)); + setState(state, Utils.getTimerStateDrawable(match, + R.drawable.timer_inactive, + R.drawable.timer_inactive_begin, + R.drawable.timer_inactive_end)); break; case Recording: - setState(state, Utils.getTimerStateDrawable(match, R.drawable.timer_recording, R.drawable.timer_recording_begin, R.drawable.timer_recording_end)); + setState(state, Utils.getTimerStateDrawable(match, + R.drawable.timer_recording, + R.drawable.timer_recording_begin, + R.drawable.timer_recording_end)); break; default: setState(state, R.drawable.timer_none); @@ -282,18 +293,14 @@ public class EpgDetailsActivity extends ICSBaseActivity implements .findViewById(R.id.epg_detail_description); textView.setText(Utils.highlight(formatter.getDescription(), highlight)); - - - if(cEvent.getAudio().isEmpty() == false){ - final TextView audioTracks = (TextView) view.findViewById(R.id.epg_detail_audio); + if (cEvent.getAudio().isEmpty() == false) { + final TextView audioTracks = (TextView) view + .findViewById(R.id.epg_detail_audio); audioTracks.setText(Utils.formatAudio(this, cEvent.getAudio())); } else { view.findViewById(R.id.audio_image).setVisibility(View.GONE); } - - - // copy color for separator lines // final int color = textView.getTextColors().getDefaultColor(); // ((TextView) findViewById(R.id.epg_detail_separator_1)) @@ -414,7 +421,6 @@ public class EpgDetailsActivity extends ICSBaseActivity implements } } - private void setThisAsOnClickListener(View root, int view) { setThisAsOnClickListener(root.findViewById(view)); } @@ -486,6 +492,9 @@ public class EpgDetailsActivity extends ICSBaseActivity implements } else { ada.add(new Wrapper(R.string.epg_item_menu_timer_add)); + if (Utils.isLive(cEvent) && (cEvent instanceof Timerable) && ((Timerable)cEvent).getTimer() == null) { + ada.add(new Wrapper(R.string.epg_item_menu_timer_record)); + } } new AlertDialog.Builder(this) .setAdapter(ada, new DialogInterface.OnClickListener() { @@ -530,6 +539,21 @@ public class EpgDetailsActivity extends ICSBaseActivity implements toggleTimer(timer); break; } + + case R.string.epg_item_menu_timer_record: { + final Timer timer = new Timer(cEvent); + final CreateTimerTask task = new CreateTimerTask( + EpgDetailsActivity.this, timer) { + @Override + public void finished(SvdrpEvent event) { + modifed = true; + EpgCache.CACHE.remove(timer.getChannelId()); + say(R.string.recording_started); + } + }; + task.start(); + + } } } }).create()// @@ -555,9 +579,15 @@ public class EpgDetailsActivity extends ICSBaseActivity implements TimerMatch match = timer.getTimerMatch(); int res = -1; if (state == TimerState.Active) { - res = Utils.getTimerStateDrawable(match, R.drawable.timer_inactive, R.drawable.timer_inactive_begin, R.drawable.timer_inactive_end); + res = Utils.getTimerStateDrawable(match, + R.drawable.timer_inactive, + R.drawable.timer_inactive_begin, + R.drawable.timer_inactive_end); } else if (state == TimerState.Inactive) { - Utils.getTimerStateDrawable(match,R.drawable.timer_active, R.drawable.timer_active_begin, R.drawable.timer_active_end); + Utils.getTimerStateDrawable(match, + R.drawable.timer_active, + R.drawable.timer_active_begin, + R.drawable.timer_active_end); res = R.drawable.timer_active; } if (res != -1) { @@ -635,6 +665,7 @@ public class EpgDetailsActivity extends ICSBaseActivity implements setState((ImageView) findViewById(R.id.epg_timer_state), R.drawable.timer_none); modifed = true; + EpgCache.CACHE.remove(timer.getChannelId()); } } }; |