aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShraddha Basantwani <shraddha.basantwani@ittiam.com>2019-07-18 19:35:27 +0530
committerNick Chalko <nchalko@google.com>2019-08-01 06:44:21 -0700
commit98adcac05cfaa8782cc20b53b60365f0a3317300 (patch)
treed1d0111033676b10f316db0966af87a3a23cb8ae /src
parent3399fc08dec05bdaf6a9f3898951c290a4e724dc (diff)
downloadTV-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.java12
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;