1 package com.android.tv.dvr.ui; 2 3 import android.app.Activity; 4 import android.app.FragmentManager; 5 import android.os.Bundle; 6 7 import android.support.v17.leanback.app.GuidedStepFragment; 8 import android.support.v17.leanback.widget.GuidanceStylist.Guidance; 9 import android.support.v17.leanback.widget.GuidedAction; 10 11 import com.android.tv.data.Program; 12 import com.android.tv.dialog.SafeDismissDialogFragment; 13 import com.android.tv.dvr.ScheduledRecording; 14 import com.android.tv.guide.ProgramManager.TableEntry; 15 import com.android.tv.MainActivity; 16 import com.android.tv.R; 17 18 import java.util.List; 19 20 public class DvrRecordScheduleFragment extends DvrGuidedStepFragment { 21 private static final int ACTION_RECORD_YES = 1; 22 private static final int ACTION_RECORD_NO = 2; 23 24 public DvrRecordScheduleFragment(TableEntry entry) { 25 super(entry); 26 } 27 28 @Override 29 public Guidance onCreateGuidance(Bundle savedInstanceState) { 30 String title = getResources().getString(R.string.epg_dvr_dialog_message_schedule_recording); 31 return new Guidance(title, null, null, null); 32 } 33 34 @Override 35 public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { 36 Activity activity = getActivity(); 37 actions.add(new GuidedAction.Builder(activity) 38 .id(ACTION_RECORD_YES) 39 .title(getResources().getString(android.R.string.yes)) 40 .build()); 41 actions.add(new GuidedAction.Builder(activity) 42 .id(ACTION_RECORD_NO) 43 .title(getResources().getString(android.R.string.no)) 44 .build()); 45 } 46 47 @Override 48 public void onGuidedActionClicked(GuidedAction action) { 49 TableEntry entry = getEntry(); 50 Program program = entry.program; 51 final List<ScheduledRecording> conflicts = 52 getDvrManager().getScheduledRecordingsThatConflict(program); 53 if (action.getId() == ACTION_RECORD_YES) { 54 if (conflicts.isEmpty()) { 55 getDvrManager().addSchedule(program, conflicts); 56 dismissDialog(); 57 } else { 58 DvrRecordConflictFragment dvrConflict = new DvrRecordConflictFragment(entry); 59 SafeDismissDialogFragment currentDialog = 60 ((MainActivity) getActivity()).getOverlayManager().getCurrentDialog(); 61 if (currentDialog instanceof DvrDialogFragment) { 62 FragmentManager fm = currentDialog.getChildFragmentManager(); 63 GuidedStepFragment.add(fm, dvrConflict, R.id.halfsized_dialog_host); 64 } 65 } 66 } else if (action.getId() == ACTION_RECORD_NO) { 67 dismissDialog(); 68 } 69 } 70 } 71