diff options
author | Shraddha Basantwani <shraddha.basantwani@ittiam.com> | 2019-07-18 19:35:27 +0530 |
---|---|---|
committer | Nick Chalko <nchalko@google.com> | 2019-08-01 06:44:21 -0700 |
commit | 98adcac05cfaa8782cc20b53b60365f0a3317300 (patch) | |
tree | d1d0111033676b10f316db0966af87a3a23cb8ae /src | |
parent | 3399fc08dec05bdaf6a9f3898951c290a4e724dc (diff) | |
download | TV-98adcac05cfaa8782cc20b53b60365f0a3317300.tar.gz |
Do not update schedule start time if around current time.
Bug: 131416705
Change-Id: I143c5df1377e6cde7137475bee77215eda664f49
Test: manual
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/tv/dvr/provider/DvrDbSync.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/com/android/tv/dvr/provider/DvrDbSync.java b/src/com/android/tv/dvr/provider/DvrDbSync.java index d8c6edc9..c2eae771 100644 --- a/src/com/android/tv/dvr/provider/DvrDbSync.java +++ b/src/com/android/tv/dvr/provider/DvrDbSync.java @@ -51,6 +51,7 @@ import java.util.Objects; import java.util.Queue; import java.util.Set; import java.util.concurrent.Executor; +import java.util.concurrent.TimeUnit; /** * A class to synchronizes DVR DB with TvProvider. @@ -67,6 +68,8 @@ public class DvrDbSync { private static final String TAG = "DvrDbSync"; private static final boolean DEBUG = false; + private static final long RECORD_MARGIN_MS = TimeUnit.SECONDS.toMillis(10); + private final Context mContext; private final DvrManager mDvrManager; private final WritableDvrDataManager mDataManager; @@ -327,10 +330,15 @@ public class DvrDbSync { // Old program belongs to a series but the new one doesn't. seriesRecordingsToUpdate.add(seriesRecordingForOldSchedule); } - // Change start time only when the recording is not started yet. + // Change start time only when the recording is not started yet and if it is not + // within marginal time of current time. Marginal check is needed to prevent the + // update of start time if recording is just triggered or about to get triggered. + boolean marginalToCurrentTime = RECORD_MARGIN_MS > + Math.abs(System.currentTimeMillis() - schedule.getStartTimeMs()); boolean needToChangeStartTime = schedule.getState() != ScheduledRecording.STATE_RECORDING_IN_PROGRESS - && program.getStartTimeUtcMillis() != schedule.getStartTimeMs(); + && program.getStartTimeUtcMillis() != schedule.getStartTimeMs() + && !marginalToCurrentTime; if (needToChangeStartTime) { builder.setStartTimeMs(program.getStartTimeUtcMillis()); needUpdate = true; |