aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshubang <shubang@google.com>2018-02-20 11:51:05 -0800
committerNick Chalko <nchalko@google.com>2018-02-21 11:11:35 -0800
commit777908546e47297618750d083bb89fe7d98f4853 (patch)
tree63c4e04122d31c8050ce9bca49e356a3deba902e
parentf6db2fb309edaea71e7baa66591ead3a14bb8f5a (diff)
downloadTV-777908546e47297618750d083bb89fe7d98f4853.tar.gz
Add a test for DvrHistoryRowAdapter
PiperOrigin-RevId: 186338292 Change-Id: Ide49e58a67e0f0331f65ce3601a7619a0894cd62
-rw-r--r--src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java5
-rw-r--r--src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java27
-rw-r--r--tests/common/src/com/android/tv/testing/FakeClock.java4
-rw-r--r--tests/common/src/com/android/tv/testing/TestSingletonApp.java5
4 files changed, 25 insertions, 16 deletions
diff --git a/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java b/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java
index fbf0fe53..08dc43c1 100644
--- a/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java
+++ b/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java
@@ -41,10 +41,11 @@ public class DvrHistoryFragment extends DetailsFragment {
SchedulesHeaderRow.class, new DateHeaderRowPresenter(getContext()));
presenterSelector.addClassPresenter(
ScheduleRow.class, new ScheduleRowPresenter(getContext()));
- mRowsAdapter = new DvrHistoryRowAdapter(getContext(), presenterSelector);
+ TvSingletons singletons = TvSingletons.getSingletons(getContext());
+ mRowsAdapter = new DvrHistoryRowAdapter(
+ getContext(), presenterSelector, singletons.getClock());
setAdapter(mRowsAdapter);
mRowsAdapter.start();
- TvSingletons singletons = TvSingletons.getSingletons(getContext());
mEmptyInfoScreenView = (TextView) getActivity().findViewById(R.id.empty_info_screen);
// TODO: handle show/hide message
}
diff --git a/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java b/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java
index 7685b7e9..ac828eb8 100644
--- a/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java
+++ b/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java
@@ -24,6 +24,8 @@ import android.support.v17.leanback.widget.ClassPresenterSelector;
import android.text.format.DateUtils;
import com.android.tv.R;
import com.android.tv.TvSingletons;
+import com.android.tv.common.util.Clock;
+import com.android.tv.dvr.DvrDataManager;
import com.android.tv.dvr.data.RecordedProgram;
import com.android.tv.dvr.data.ScheduledRecording;
import com.android.tv.dvr.recorder.ScheduledProgramReaper;
@@ -42,12 +44,17 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter {
private static final long ONE_DAY_MS = TimeUnit.DAYS.toMillis(1);
private static final int MAX_HISTORY_DAYS = ScheduledProgramReaper.DAYS;
- private Context mContext;
+ private final Context mContext;
+ private final Clock mClock;
+ private final DvrDataManager mDvrDataManager;
private final List<String> mTitles = new ArrayList<>();
- public DvrHistoryRowAdapter(Context context, ClassPresenterSelector classPresenterSelector) {
+ public DvrHistoryRowAdapter(
+ Context context, ClassPresenterSelector classPresenterSelector, Clock clock) {
super(classPresenterSelector);
mContext = context;
+ mClock = clock;
+ mDvrDataManager = TvSingletons.getSingletons(mContext).getDvrDataManager();
mTitles.add(mContext.getString(R.string.dvr_date_today));
mTitles.add(mContext.getString(R.string.dvr_date_yesterday));
}
@@ -60,20 +67,14 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter {
/** Starts row adapter. */
public void start() {
clear();
- List<ScheduledRecording> recordingList =
- TvSingletons.getSingletons(mContext)
- .getDvrDataManager()
- .getFailedScheduledRecordings();
- List<RecordedProgram> recordedProgramList =
- TvSingletons.getSingletons(mContext)
- .getDvrDataManager()
- .getRecordedPrograms();
+ List<ScheduledRecording> recordingList = mDvrDataManager.getFailedScheduledRecordings();
+ List<RecordedProgram> recordedProgramList = mDvrDataManager.getRecordedPrograms();
recordingList.addAll(
recordedProgramsToScheduledRecordings(recordedProgramList, MAX_HISTORY_DAYS));
recordingList
.sort(ScheduledRecording.START_TIME_THEN_PRIORITY_THEN_ID_COMPARATOR.reversed());
- long deadLine = Utils.getFirstMillisecondOfDay(System.currentTimeMillis());
+ long deadLine = Utils.getFirstMillisecondOfDay(mClock.currentTimeMillis());
for (int i = 0; i < recordingList.size(); ) {
ArrayList<ScheduledRecording> section = new ArrayList<>();
while (i < recordingList.size() && recordingList.get(i).getStartTimeMs() >= deadLine) {
@@ -102,7 +103,7 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter {
private String calculateHeaderDate(long timeMs) {
int titleIndex =
(int)
- ((Utils.getFirstMillisecondOfDay(System.currentTimeMillis()) - timeMs)
+ ((Utils.getFirstMillisecondOfDay(mClock.currentTimeMillis()) - timeMs)
/ ONE_DAY_MS);
String headerDate;
if (titleIndex < mTitles.size()) {
@@ -122,7 +123,7 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter {
private List<ScheduledRecording> recordedProgramsToScheduledRecordings(
List<RecordedProgram> recordedPrograms, int maxDays) {
List<ScheduledRecording> result = new ArrayList<>(recordedPrograms.size());
- long firstMillisecondToday = Utils.getFirstMillisecondOfDay(System.currentTimeMillis());
+ long firstMillisecondToday = Utils.getFirstMillisecondOfDay(mClock.currentTimeMillis());
for (RecordedProgram recordedProgram : recordedPrograms) {
if (maxDays
< Utils.computeDateDifference(
diff --git a/tests/common/src/com/android/tv/testing/FakeClock.java b/tests/common/src/com/android/tv/testing/FakeClock.java
index fc4ca6df..f5941939 100644
--- a/tests/common/src/com/android/tv/testing/FakeClock.java
+++ b/tests/common/src/com/android/tv/testing/FakeClock.java
@@ -36,6 +36,10 @@ public class FakeClock implements Clock {
public static FakeClock createWithTimeOne() {
return new FakeClock(1L, 0L);
}
+ /** Creates a fake clock with the time set to {@code time}. */
+ public static FakeClock createWithTime(long time) {
+ return new FakeClock(time, 0L);
+ }
private long mCurrentTimeMillis;
diff --git a/tests/common/src/com/android/tv/testing/TestSingletonApp.java b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
index f1798352..f55ed8d4 100644
--- a/tests/common/src/com/android/tv/testing/TestSingletonApp.java
+++ b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
@@ -44,6 +44,7 @@ import com.android.tv.dvr.DvrWatchedPositionManager;
import com.android.tv.dvr.recorder.RecordingScheduler;
import com.android.tv.perf.PerformanceMonitor;
import com.android.tv.perf.StubPerformanceMonitor;
+import com.android.tv.testing.dvr.DvrDataManagerInMemoryImpl;
import com.android.tv.testing.testdata.TestData;
import com.android.tv.tuner.TunerInputController;
import com.android.tv.util.SetupUtils;
@@ -62,6 +63,7 @@ public class TestSingletonApp extends Application implements TvSingletons {
public FakeTvInputManagerHelper tvInputManagerHelper;
public SetupUtils setupUtils;
public DvrManager dvrManager;
+ public DvrDataManager mDvrDataManager;
private final Provider<EpgReader> mEpgReaderProvider = SingletonProvider.create(epgReader);
private TunerInputController mTunerInputController;
@@ -80,6 +82,7 @@ public class TestSingletonApp extends Application implements TvSingletons {
tvInputManagerHelper.start();
mChannelDataManager = new ChannelDataManager(this, tvInputManagerHelper);
mChannelDataManager.start();
+ mDvrDataManager = new DvrDataManagerInMemoryImpl(this, fakeClock);
// HACK reset the singleton for tests
BaseApplication.sSingletons = this;
}
@@ -126,7 +129,7 @@ public class TestSingletonApp extends Application implements TvSingletons {
@Override
public DvrDataManager getDvrDataManager() {
- return null;
+ return mDvrDataManager;
}
@Override