aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dvr/DvrRecordingService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dvr/DvrRecordingService.java')
-rw-r--r--src/com/android/tv/dvr/DvrRecordingService.java20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/com/android/tv/dvr/DvrRecordingService.java b/src/com/android/tv/dvr/DvrRecordingService.java
index d0e86d50..2f3abccf 100644
--- a/src/com/android/tv/dvr/DvrRecordingService.java
+++ b/src/com/android/tv/dvr/DvrRecordingService.java
@@ -31,7 +31,8 @@ import com.android.tv.ApplicationSingletons;
import com.android.tv.TvApplication;
import com.android.tv.common.feature.CommonFeatures;
import com.android.tv.util.Clock;
-import com.android.tv.util.SoftPreconditions;
+import com.android.tv.util.RecurringRunner;
+import com.android.tv.common.SoftPreconditions;
/**
* DVR Scheduler service.
@@ -57,6 +58,8 @@ public class DvrRecordingService extends Service {
context.startService(dvrSchedulerIntent);
}
+ private final Clock mClock = Clock.SYSTEM;
+ private RecurringRunner mReaperRunner;
private WritableDvrDataManager mDataManager;
/**
@@ -86,14 +89,16 @@ public class DvrRecordingService extends Service {
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// mScheduler may have been set for testing.
if (mScheduler == null) {
- DvrSessionManager sessionManager = singletons.getDvrSessionManger();
mHandlerThread = new HandlerThread(HANDLER_THREAD_NAME);
mHandlerThread.start();
- mScheduler = new Scheduler(mHandlerThread.getLooper(), sessionManager, mDataManager,
- this, Clock.SYSTEM,
- alarmManager);
+ mScheduler = new Scheduler(mHandlerThread.getLooper(), singletons.getDvrManager(),
+ singletons.getDvrSessionManger(), mDataManager,
+ singletons.getChannelDataManager(), this, mClock, alarmManager);
}
- mDataManager.addListener(mScheduler);
+ mDataManager.addScheduledRecordingListener(mScheduler);
+ mReaperRunner = new RecurringRunner(this, java.util.concurrent.TimeUnit.DAYS.toMillis(1),
+ new ScheduledProgramReaper(mDataManager, mClock), null);
+ mReaperRunner.start();
}
@Override
@@ -106,7 +111,8 @@ public class DvrRecordingService extends Service {
@Override
public void onDestroy() {
if (DEBUG) Log.d(TAG, "onDestroy");
- mDataManager.removeListener(mScheduler);
+ mReaperRunner.stop();
+ mDataManager.removeScheduledRecordingListener(mScheduler);
mScheduler = null;
if (mHandlerThread != null) {
mHandlerThread.quit();