diff options
Diffstat (limited to 'src/com/android/tv/dvr/BaseDvrDataManager.java')
-rw-r--r-- | src/com/android/tv/dvr/BaseDvrDataManager.java | 106 |
1 files changed, 46 insertions, 60 deletions
diff --git a/src/com/android/tv/dvr/BaseDvrDataManager.java b/src/com/android/tv/dvr/BaseDvrDataManager.java index a8637449..b8bffa18 100644 --- a/src/com/android/tv/dvr/BaseDvrDataManager.java +++ b/src/com/android/tv/dvr/BaseDvrDataManager.java @@ -23,15 +23,13 @@ import android.support.annotation.MainThread; import android.support.annotation.NonNull; import android.util.ArraySet; import android.util.Log; - import com.android.tv.common.SoftPreconditions; import com.android.tv.common.feature.CommonFeatures; +import com.android.tv.common.util.Clock; import com.android.tv.dvr.data.RecordedProgram; import com.android.tv.dvr.data.ScheduledRecording; import com.android.tv.dvr.data.ScheduledRecording.RecordingState; import com.android.tv.dvr.data.SeriesRecording; -import com.android.tv.util.Clock; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -42,14 +40,12 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; -/** - * Base implementation of @{link DataManagerInternal}. - */ +/** Base implementation of @{link DataManagerInternal}. */ @MainThread @TargetApi(Build.VERSION_CODES.N) public abstract class BaseDvrDataManager implements WritableDvrDataManager { - private final static String TAG = "BaseDvrDataManager"; - private final static boolean DEBUG = false; + private static final String TAG = "BaseDvrDataManager"; + private static final boolean DEBUG = false; protected final Clock mClock; private final Set<OnDvrScheduleLoadFinishedListener> mOnDvrScheduleLoadFinishedListeners = @@ -61,7 +57,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { private final Set<RecordedProgramListener> mRecordedProgramListeners = new ArraySet<>(); private final HashMap<Long, ScheduledRecording> mDeletedScheduleMap = new HashMap<>(); - BaseDvrDataManager(Context context, Clock clock) { + public BaseDvrDataManager(Context context, Clock clock) { SoftPreconditions.checkFeatureEnabled(context, CommonFeatures.DVR, TAG); mClock = clock; } @@ -129,8 +125,8 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } /** - * Calls {@link OnRecordedProgramLoadFinishedListener#onRecordedProgramLoadFinished()} - * for each listener. + * Calls {@link OnRecordedProgramLoadFinishedListener#onRecordedProgramLoadFinished()} for each + * listener. */ protected final void notifyRecordedProgramLoadFinished() { for (OnRecordedProgramLoadFinishedListener l : mOnRecordedProgramLoadFinishedListeners) { @@ -139,10 +135,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link RecordedProgramListener#onRecordedProgramsAdded} - * for each listener. - */ + /** Calls {@link RecordedProgramListener#onRecordedProgramsAdded} for each listener. */ protected final void notifyRecordedProgramsAdded(RecordedProgram... recordedPrograms) { for (RecordedProgramListener l : mRecordedProgramListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " added " + Arrays.asList(recordedPrograms)); @@ -150,10 +143,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link RecordedProgramListener#onRecordedProgramsChanged} - * for each listener. - */ + /** Calls {@link RecordedProgramListener#onRecordedProgramsChanged} for each listener. */ protected final void notifyRecordedProgramsChanged(RecordedProgram... recordedPrograms) { for (RecordedProgramListener l : mRecordedProgramListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " changed " + Arrays.asList(recordedPrograms)); @@ -161,10 +151,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link RecordedProgramListener#onRecordedProgramsRemoved} - * for each listener. - */ + /** Calls {@link RecordedProgramListener#onRecordedProgramsRemoved} for each listener. */ protected final void notifyRecordedProgramsRemoved(RecordedProgram... recordedPrograms) { for (RecordedProgramListener l : mRecordedProgramListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " removed " + Arrays.asList(recordedPrograms)); @@ -172,10 +159,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link SeriesRecordingListener#onSeriesRecordingAdded} - * for each listener. - */ + /** Calls {@link SeriesRecordingListener#onSeriesRecordingAdded} for each listener. */ protected final void notifySeriesRecordingAdded(SeriesRecording... seriesRecordings) { for (SeriesRecordingListener l : mSeriesRecordingListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " added " + Arrays.asList(seriesRecordings)); @@ -183,10 +167,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link SeriesRecordingListener#onSeriesRecordingRemoved} - * for each listener. - */ + /** Calls {@link SeriesRecordingListener#onSeriesRecordingRemoved} for each listener. */ protected final void notifySeriesRecordingRemoved(SeriesRecording... seriesRecordings) { for (SeriesRecordingListener l : mSeriesRecordingListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " removed " + Arrays.asList(seriesRecordings)); @@ -194,11 +175,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls - * {@link SeriesRecordingListener#onSeriesRecordingChanged} - * for each listener. - */ + /** Calls {@link SeriesRecordingListener#onSeriesRecordingChanged} for each listener. */ protected final void notifySeriesRecordingChanged(SeriesRecording... seriesRecordings) { for (SeriesRecordingListener l : mSeriesRecordingListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " changed " + Arrays.asList(seriesRecordings)); @@ -206,10 +183,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link ScheduledRecordingListener#onScheduledRecordingAdded} - * for each listener. - */ + /** Calls {@link ScheduledRecordingListener#onScheduledRecordingAdded} for each listener. */ protected final void notifyScheduledRecordingAdded(ScheduledRecording... scheduledRecording) { for (ScheduledRecordingListener l : mScheduledRecordingListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " added " + Arrays.asList(scheduledRecording)); @@ -217,10 +191,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } } - /** - * Calls {@link ScheduledRecordingListener#onScheduledRecordingRemoved} - * for each listener. - */ + /** Calls {@link ScheduledRecordingListener#onScheduledRecordingRemoved} for each listener. */ protected final void notifyScheduledRecordingRemoved(ScheduledRecording... scheduledRecording) { for (ScheduledRecordingListener l : mScheduledRecordingListeners) { if (DEBUG) Log.d(TAG, "notify " + l + " removed " + Arrays.asList(scheduledRecording)); @@ -229,9 +200,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } /** - * Calls - * {@link ScheduledRecordingListener#onScheduledRecordingStatusChanged} - * for each listener. + * Calls {@link ScheduledRecordingListener#onScheduledRecordingStatusChanged} for each listener. */ protected final void notifyScheduledRecordingStatusChanged( ScheduledRecording... scheduledRecording) { @@ -257,28 +226,47 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { @Override public List<ScheduledRecording> getAvailableScheduledRecordings() { - return filterEndTimeIsPast(getRecordingsWithState( - ScheduledRecording.STATE_RECORDING_IN_PROGRESS, - ScheduledRecording.STATE_RECORDING_NOT_STARTED)); + return filterEndTimeIsPast( + getRecordingsWithState( + ScheduledRecording.STATE_RECORDING_IN_PROGRESS, + ScheduledRecording.STATE_RECORDING_NOT_STARTED)); } @Override public List<ScheduledRecording> getStartedRecordings() { - return filterEndTimeIsPast(getRecordingsWithState( - ScheduledRecording.STATE_RECORDING_IN_PROGRESS)); + return filterEndTimeIsPast( + getRecordingsWithState(ScheduledRecording.STATE_RECORDING_IN_PROGRESS)); } @Override public List<ScheduledRecording> getNonStartedScheduledRecordings() { - return filterEndTimeIsPast(getRecordingsWithState( - ScheduledRecording.STATE_RECORDING_NOT_STARTED)); + return filterEndTimeIsPast( + getRecordingsWithState(ScheduledRecording.STATE_RECORDING_NOT_STARTED)); + } + + @Override + public List<ScheduledRecording> getFailedScheduledRecordings() { + return getRecordingsWithState(ScheduledRecording.STATE_RECORDING_FAILED); } @Override public void changeState(ScheduledRecording scheduledRecording, @RecordingState int newState) { if (scheduledRecording.getState() != newState) { - updateScheduledRecording(ScheduledRecording.buildFrom(scheduledRecording) - .setState(newState).build()); + updateScheduledRecording( + ScheduledRecording.buildFrom(scheduledRecording).setState(newState).build()); + } + } + + @Override + public void changeState( + ScheduledRecording scheduledRecording, @RecordingState int newState, int reason) { + if (scheduledRecording.getState() != newState) { + ScheduledRecording.Builder builder = + ScheduledRecording.buildFrom(scheduledRecording).setState(newState); + if (newState == ScheduledRecording.STATE_RECORDING_FAILED) { + builder.setFailedReason(reason); + } + updateScheduledRecording(builder.build()); } } @@ -300,9 +288,7 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { return mDeletedScheduleMap; } - /** - * Returns the schedules whose state is contained by states. - */ + /** Returns the schedules whose state is contained by states. */ protected abstract List<ScheduledRecording> getRecordingsWithState(int... states); @Override @@ -357,5 +343,5 @@ public abstract class BaseDvrDataManager implements WritableDvrDataManager { } @Override - public void forgetStorage(String inputId) { } + public void forgetStorage(String inputId) {} } |