diff options
author | Live Channels Team <no-reply@google.com> | 2019-04-29 16:08:15 -0700 |
---|---|---|
committer | Nick Chalko <nchalko@google.com> | 2019-05-15 08:58:32 -0700 |
commit | bebfebaaf4d82a2907c2bc87c55b2fbd6cdf449d (patch) | |
tree | 2f59be5a5b42559b2eeacaff8bafb5342fb491cb /src/com/android/tv/dvr | |
parent | c85adda1e306f7f145588c081299a1e393a36b51 (diff) | |
download | TV-bebfebaaf4d82a2907c2bc87c55b2fbd6cdf449d.tar.gz |
Changes imported from Live Channels
- 245843574 CLEANUP: Remove unused fields and methods from TestSingle... by nchalko <nchalko@google.com>
PiperOrigin-RevId: 245843574
Change-Id: I536e4a683efd642e1ff2f9594f6c08b3abc20b1e
Test: m LiveTv
Diffstat (limited to 'src/com/android/tv/dvr')
54 files changed, 250 insertions, 194 deletions
diff --git a/src/com/android/tv/dvr/data/ScheduledRecording.java b/src/com/android/tv/dvr/data/ScheduledRecording.java index ba6d3cf9..7833f6f3 100644 --- a/src/com/android/tv/dvr/data/ScheduledRecording.java +++ b/src/com/android/tv/dvr/data/ScheduledRecording.java @@ -492,7 +492,7 @@ public final class ScheduledRecording implements Parcelable { } }; - /** The ID internal to Live TV */ + /** The ID internal to TV app */ private long mId; /** diff --git a/src/com/android/tv/dvr/provider/DvrContract.java b/src/com/android/tv/dvr/provider/DvrContract.java index a5f2e2cd..8539ae36 100644 --- a/src/com/android/tv/dvr/provider/DvrContract.java +++ b/src/com/android/tv/dvr/provider/DvrContract.java @@ -20,7 +20,7 @@ import android.provider.BaseColumns; /** * The contract between the DVR provider and applications. Contains definitions for the supported - * columns. It's for the internal use in Live TV. + * columns. It's for the internal use in TV app. */ public final class DvrContract { /** Column definition for Schedules table. */ @@ -69,8 +69,8 @@ public final class DvrContract { public static final String FAILED_REASON_INVALID_CHANNEL = "FAILED_REASON_INVALID_CHANNEL"; /** The recording failed because the scheduler was stopped */ - public static final String FAILED_REASON_SCHEDULER_STOPPED - = "FAILED_REASON_SCHEDULER_STOPPED"; + public static final String FAILED_REASON_SCHEDULER_STOPPED = + "FAILED_REASON_SCHEDULER_STOPPED"; /** The recording failed because some messages were not sent to the message queue */ public static final String FAILED_REASON_MESSAGE_NOT_SENT = @@ -84,8 +84,7 @@ public final class DvrContract { "FAILED_REASON_CONNECTION_FAILED"; /** - * The recording failed because a required recording resource was not able to be - * allocated. + * The recording failed because a required recording resource was not able to be allocated. */ public static final String FAILED_REASON_RESOURCE_BUSY = "FAILED_REASON_RESOURCE_BUSY"; diff --git a/src/com/android/tv/dvr/recorder/SeriesRecordingScheduler.java b/src/com/android/tv/dvr/recorder/SeriesRecordingScheduler.java index 696038cf..e8f077ca 100644 --- a/src/com/android/tv/dvr/recorder/SeriesRecordingScheduler.java +++ b/src/com/android/tv/dvr/recorder/SeriesRecordingScheduler.java @@ -43,6 +43,7 @@ import com.android.tv.dvr.data.SeasonEpisodeNumber; import com.android.tv.dvr.data.SeriesInfo; import com.android.tv.dvr.data.SeriesRecording; import com.android.tv.dvr.provider.EpisodicProgramLoadTask; +import dagger.Lazy; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -54,7 +55,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import javax.inject.Provider; /** * Creates the {@link com.android.tv.dvr.data.ScheduledRecording}s for the {@link @@ -529,10 +529,9 @@ public class SeriesRecordingScheduler { private class FetchSeriesInfoTask extends AsyncTask<Void, Void, SeriesInfo> { private final SeriesRecording mSeriesRecording; - private final Provider<EpgReader> mEpgReaderProvider; + private final Lazy<EpgReader> mEpgReaderProvider; - FetchSeriesInfoTask( - SeriesRecording seriesRecording, Provider<EpgReader> epgReaderProvider) { + FetchSeriesInfoTask(SeriesRecording seriesRecording, Lazy<EpgReader> epgReaderProvider) { mSeriesRecording = seriesRecording; mEpgReaderProvider = epgReaderProvider; } diff --git a/src/com/android/tv/dvr/ui/DvrAlreadyRecordedFragment.java b/src/com/android/tv/dvr/ui/DvrAlreadyRecordedFragment.java index 5e3caa9c..a0daf5e7 100644 --- a/src/com/android/tv/dvr/ui/DvrAlreadyRecordedFragment.java +++ b/src/com/android/tv/dvr/ui/DvrAlreadyRecordedFragment.java @@ -22,8 +22,8 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.data.Program; diff --git a/src/com/android/tv/dvr/ui/DvrAlreadyScheduledFragment.java b/src/com/android/tv/dvr/ui/DvrAlreadyScheduledFragment.java index a6bbe137..bde896a8 100644 --- a/src/com/android/tv/dvr/ui/DvrAlreadyScheduledFragment.java +++ b/src/com/android/tv/dvr/ui/DvrAlreadyScheduledFragment.java @@ -22,8 +22,8 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import android.text.format.DateUtils; import com.android.tv.R; import com.android.tv.TvSingletons; diff --git a/src/com/android/tv/dvr/ui/DvrChannelRecordDurationOptionFragment.java b/src/com/android/tv/dvr/ui/DvrChannelRecordDurationOptionFragment.java index 6be35cb2..b24281ad 100644 --- a/src/com/android/tv/dvr/ui/DvrChannelRecordDurationOptionFragment.java +++ b/src/com/android/tv/dvr/ui/DvrChannelRecordDurationOptionFragment.java @@ -18,9 +18,9 @@ package com.android.tv.dvr.ui; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.common.SoftPreconditions; diff --git a/src/com/android/tv/dvr/ui/DvrConflictFragment.java b/src/com/android/tv/dvr/ui/DvrConflictFragment.java index 649cc89a..31ef7339 100644 --- a/src/com/android/tv/dvr/ui/DvrConflictFragment.java +++ b/src/com/android/tv/dvr/ui/DvrConflictFragment.java @@ -21,8 +21,8 @@ import android.media.tv.TvInputInfo; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import android.util.Log; import android.view.LayoutInflater; import android.view.View; diff --git a/src/com/android/tv/dvr/ui/DvrGuidedActionsStylist.java b/src/com/android/tv/dvr/ui/DvrGuidedActionsStylist.java index 611962d0..81fc3ed5 100644 --- a/src/com/android/tv/dvr/ui/DvrGuidedActionsStylist.java +++ b/src/com/android/tv/dvr/ui/DvrGuidedActionsStylist.java @@ -17,8 +17,8 @@ package com.android.tv.dvr.ui; import android.content.Context; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidedActionsStylist; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidedActionsStylist; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; diff --git a/src/com/android/tv/dvr/ui/DvrGuidedStepFragment.java b/src/com/android/tv/dvr/ui/DvrGuidedStepFragment.java index a900cc70..fda4cdee 100644 --- a/src/com/android/tv/dvr/ui/DvrGuidedStepFragment.java +++ b/src/com/android/tv/dvr/ui/DvrGuidedStepFragment.java @@ -20,9 +20,9 @@ import android.app.Activity; import android.app.DialogFragment; import android.content.Context; import android.os.Bundle; -import android.support.v17.leanback.widget.GuidanceStylist; -import android.support.v17.leanback.widget.GuidedAction; -import android.support.v17.leanback.widget.VerticalGridView; +import androidx.leanback.widget.GuidanceStylist; +import androidx.leanback.widget.GuidedAction; +import androidx.leanback.widget.VerticalGridView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/DvrHalfSizedDialogFragment.java b/src/com/android/tv/dvr/ui/DvrHalfSizedDialogFragment.java index e6b54f67..608a5f8e 100644 --- a/src/com/android/tv/dvr/ui/DvrHalfSizedDialogFragment.java +++ b/src/com/android/tv/dvr/ui/DvrHalfSizedDialogFragment.java @@ -20,7 +20,7 @@ import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; +import androidx.leanback.app.GuidedStepFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/DvrInsufficientSpaceErrorFragment.java b/src/com/android/tv/dvr/ui/DvrInsufficientSpaceErrorFragment.java index 6fba4d98..01631b99 100644 --- a/src/com/android/tv/dvr/ui/DvrInsufficientSpaceErrorFragment.java +++ b/src/com/android/tv/dvr/ui/DvrInsufficientSpaceErrorFragment.java @@ -20,8 +20,8 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.common.SoftPreconditions; diff --git a/src/com/android/tv/dvr/ui/DvrMissingStorageErrorFragment.java b/src/com/android/tv/dvr/ui/DvrMissingStorageErrorFragment.java index 02b2da1d..3237acd7 100644 --- a/src/com/android/tv/dvr/ui/DvrMissingStorageErrorFragment.java +++ b/src/com/android/tv/dvr/ui/DvrMissingStorageErrorFragment.java @@ -21,8 +21,8 @@ import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; import android.provider.Settings; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import android.util.Log; import com.android.tv.R; import com.android.tv.ui.DetailsActivity; diff --git a/src/com/android/tv/dvr/ui/DvrPrioritySettingsFragment.java b/src/com/android/tv/dvr/ui/DvrPrioritySettingsFragment.java index 5bb97e90..ae41f501 100644 --- a/src/com/android/tv/dvr/ui/DvrPrioritySettingsFragment.java +++ b/src/com/android/tv/dvr/ui/DvrPrioritySettingsFragment.java @@ -22,9 +22,9 @@ import android.content.Context; import android.graphics.Typeface; import android.os.Build; import android.os.Bundle; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; -import android.support.v17.leanback.widget.GuidedActionsStylist; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidedActionsStylist; import android.view.View; import android.widget.ImageView; import android.widget.TextView; diff --git a/src/com/android/tv/dvr/ui/DvrScheduleFragment.java b/src/com/android/tv/dvr/ui/DvrScheduleFragment.java index 72603d03..613484d5 100644 --- a/src/com/android/tv/dvr/ui/DvrScheduleFragment.java +++ b/src/com/android/tv/dvr/ui/DvrScheduleFragment.java @@ -22,9 +22,9 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import android.text.format.DateUtils; import com.android.tv.R; import com.android.tv.TvSingletons; diff --git a/src/com/android/tv/dvr/ui/DvrSeriesDeletionActivity.java b/src/com/android/tv/dvr/ui/DvrSeriesDeletionActivity.java index a237f1d2..730237c4 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesDeletionActivity.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesDeletionActivity.java @@ -20,15 +20,13 @@ import android.app.Activity; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.app.GuidedStepFragment; +import androidx.leanback.app.GuidedStepFragment; import android.util.Log; import android.widget.Toast; - import com.android.tv.R; import com.android.tv.Starter; import com.android.tv.TvSingletons; import com.android.tv.dvr.DvrManager; - import java.util.ArrayList; import java.util.List; @@ -70,7 +68,7 @@ public class DvrSeriesDeletionActivity extends Activity { && grantResults[0] == PackageManager.PERMISSION_GRANTED) { deleteSelectedIds(true); } else { - // NOTE: If Live TV ever supports both embedded and separate DVR inputs + // NOTE: If TV app ever supports both embedded and separate DVR inputs // then we should try to do the delete regardless. Log.i( TAG, @@ -93,14 +91,14 @@ public class DvrSeriesDeletionActivity extends Activity { dvrManager.removeRecordedPrograms(mIdsToDelete, deleteFiles); } Toast.makeText( - this, - getResources() - .getQuantityString( - R.plurals.dvr_msg_episodes_deleted, - mIdsToDelete.size(), - mIdsToDelete.size(), - recordingSize), - Toast.LENGTH_LONG) + this, + getResources() + .getQuantityString( + R.plurals.dvr_msg_episodes_deleted, + mIdsToDelete.size(), + mIdsToDelete.size(), + recordingSize), + Toast.LENGTH_LONG) .show(); finish(); } diff --git a/src/com/android/tv/dvr/ui/DvrSeriesDeletionFragment.java b/src/com/android/tv/dvr/ui/DvrSeriesDeletionFragment.java index ff213231..10ef226b 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesDeletionFragment.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesDeletionFragment.java @@ -19,10 +19,10 @@ package com.android.tv.dvr.ui; import android.content.Context; import android.media.tv.TvInputManager; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; -import android.support.v17.leanback.widget.GuidedActionsStylist; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidedActionsStylist; import android.text.TextUtils; import android.view.ViewGroup.LayoutParams; import android.widget.Toast; diff --git a/src/com/android/tv/dvr/ui/DvrSeriesScheduledDialogActivity.java b/src/com/android/tv/dvr/ui/DvrSeriesScheduledDialogActivity.java index 9acb5b5e..d72099ba 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesScheduledDialogActivity.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesScheduledDialogActivity.java @@ -18,7 +18,7 @@ package com.android.tv.dvr.ui; import android.app.Activity; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; +import androidx.leanback.app.GuidedStepFragment; import com.android.tv.R; public class DvrSeriesScheduledDialogActivity extends Activity { diff --git a/src/com/android/tv/dvr/ui/DvrSeriesScheduledFragment.java b/src/com/android/tv/dvr/ui/DvrSeriesScheduledFragment.java index c6e26850..6cb8c1ad 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesScheduledFragment.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesScheduledFragment.java @@ -20,8 +20,8 @@ import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.v17.leanback.widget.GuidanceStylist; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.data.Program; diff --git a/src/com/android/tv/dvr/ui/DvrSeriesSettingsActivity.java b/src/com/android/tv/dvr/ui/DvrSeriesSettingsActivity.java index 1a51cf46..48bacf35 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesSettingsActivity.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesSettingsActivity.java @@ -19,7 +19,7 @@ package com.android.tv.dvr.ui; import android.app.Activity; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; +import androidx.leanback.app.GuidedStepFragment; import com.android.tv.R; import com.android.tv.Starter; import com.android.tv.common.SoftPreconditions; diff --git a/src/com/android/tv/dvr/ui/DvrSeriesSettingsFragment.java b/src/com/android/tv/dvr/ui/DvrSeriesSettingsFragment.java index eadb3b9e..f191582e 100644 --- a/src/com/android/tv/dvr/ui/DvrSeriesSettingsFragment.java +++ b/src/com/android/tv/dvr/ui/DvrSeriesSettingsFragment.java @@ -21,10 +21,10 @@ import android.app.FragmentManager; import android.content.Context; import android.os.Build; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; -import android.support.v17.leanback.widget.GuidedActionsStylist; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidedActionsStylist; import android.util.LongSparseArray; import com.android.tv.R; import com.android.tv.TvSingletons; diff --git a/src/com/android/tv/dvr/ui/DvrStopRecordingFragment.java b/src/com/android/tv/dvr/ui/DvrStopRecordingFragment.java index 1ab4c500..ca2d8f89 100644 --- a/src/com/android/tv/dvr/ui/DvrStopRecordingFragment.java +++ b/src/com/android/tv/dvr/ui/DvrStopRecordingFragment.java @@ -23,8 +23,8 @@ import android.os.Build; import android.os.Bundle; import android.support.annotation.IntDef; import android.support.annotation.NonNull; -import android.support.v17.leanback.widget.GuidanceStylist.Guidance; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist.Guidance; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.dvr.DvrDataManager; diff --git a/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingDialogFragment.java b/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingDialogFragment.java index 15abf902..4a8ce04e 100644 --- a/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingDialogFragment.java +++ b/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingDialogFragment.java @@ -18,7 +18,7 @@ package com.android.tv.dvr.ui; import android.app.DialogFragment; import android.os.Bundle; -import android.support.v17.leanback.app.GuidedStepFragment; +import androidx.leanback.app.GuidedStepFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingFragment.java b/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingFragment.java index 99211fdb..0b8f5df0 100644 --- a/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingFragment.java +++ b/src/com/android/tv/dvr/ui/DvrStopSeriesRecordingFragment.java @@ -20,8 +20,8 @@ import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.widget.GuidanceStylist; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist; +import androidx.leanback.widget.GuidedAction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/DvrWriteStoragePermissionRationaleFragment.java b/src/com/android/tv/dvr/ui/DvrWriteStoragePermissionRationaleFragment.java index c93f5831..25f7f38b 100644 --- a/src/com/android/tv/dvr/ui/DvrWriteStoragePermissionRationaleFragment.java +++ b/src/com/android/tv/dvr/ui/DvrWriteStoragePermissionRationaleFragment.java @@ -19,8 +19,8 @@ package com.android.tv.dvr.ui; import android.app.Activity; import android.content.res.Resources; import android.os.Bundle; -import android.support.v17.leanback.widget.GuidanceStylist; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.widget.GuidanceStylist; +import androidx.leanback.widget.GuidedAction; import com.android.tv.R; diff --git a/src/com/android/tv/dvr/ui/SortedArrayAdapter.java b/src/com/android/tv/dvr/ui/SortedArrayAdapter.java index 1eb8080a..7a26d5ed 100644 --- a/src/com/android/tv/dvr/ui/SortedArrayAdapter.java +++ b/src/com/android/tv/dvr/ui/SortedArrayAdapter.java @@ -17,8 +17,8 @@ package com.android.tv.dvr.ui; import android.support.annotation.VisibleForTesting; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.PresenterSelector; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.PresenterSelector; import com.android.tv.common.SoftPreconditions; import java.util.ArrayList; import java.util.Collection; diff --git a/src/com/android/tv/dvr/ui/TrackedGuidedStepFragment.java b/src/com/android/tv/dvr/ui/TrackedGuidedStepFragment.java index 0172f76f..c0a57c0f 100644 --- a/src/com/android/tv/dvr/ui/TrackedGuidedStepFragment.java +++ b/src/com/android/tv/dvr/ui/TrackedGuidedStepFragment.java @@ -17,8 +17,8 @@ package com.android.tv.dvr.ui; import android.content.Context; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidedAction; import com.android.tv.TvSingletons; import com.android.tv.analytics.Tracker; diff --git a/src/com/android/tv/dvr/ui/browse/ActionPresenterSelector.java b/src/com/android/tv/dvr/ui/browse/ActionPresenterSelector.java index 41ace9a4..a06705c6 100644 --- a/src/com/android/tv/dvr/ui/browse/ActionPresenterSelector.java +++ b/src/com/android/tv/dvr/ui/browse/ActionPresenterSelector.java @@ -17,10 +17,10 @@ package com.android.tv.dvr.ui.browse; import android.graphics.drawable.Drawable; -import android.support.v17.leanback.R; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.Presenter; -import android.support.v17.leanback.widget.PresenterSelector; +import androidx.leanback.R; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.Presenter; +import androidx.leanback.widget.PresenterSelector; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/src/com/android/tv/dvr/ui/browse/CurrentRecordingDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/CurrentRecordingDetailsFragment.java index 8c311d68..ed548728 100644 --- a/src/com/android/tv/dvr/ui/browse/CurrentRecordingDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/CurrentRecordingDetailsFragment.java @@ -19,12 +19,11 @@ package com.android.tv.dvr.ui.browse; import android.content.Context; import android.content.res.Resources; import android.media.tv.TvInputManager; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.OnActionClickedListener; -import android.support.v17.leanback.widget.SparseArrayObjectAdapter; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.OnActionClickedListener; +import androidx.leanback.widget.SparseArrayObjectAdapter; import com.android.tv.R; import com.android.tv.TvSingletons; -import com.android.tv.common.flags.has.HasConcurrentDvrPlaybackFlags; import com.android.tv.dialog.HalfSizedDialogFragment; import com.android.tv.dvr.DvrDataManager; import com.android.tv.dvr.DvrManager; @@ -33,7 +32,9 @@ import com.android.tv.dvr.data.RecordedProgram; import com.android.tv.dvr.data.ScheduledRecording; import com.android.tv.dvr.ui.DvrStopRecordingFragment; import com.android.tv.dvr.ui.DvrUiHelper; +import dagger.android.AndroidInjection; import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags; +import javax.inject.Inject; /** {@link RecordingDetailsFragment} for current recording in DVR. */ public class CurrentRecordingDetailsFragment extends RecordingDetailsFragment { @@ -43,8 +44,8 @@ public class CurrentRecordingDetailsFragment extends RecordingDetailsFragment { private DvrDataManager mDvrDataManger; private RecordedProgram mRecordedProgram; - private DvrWatchedPositionManager mDvrWatchedPositionManager; - private ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags; + @Inject DvrWatchedPositionManager mDvrWatchedPositionManager; + @Inject ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags; private boolean mPaused; private final DvrDataManager.ScheduledRecordingListener mScheduledRecordingListener = new DvrDataManager.ScheduledRecordingListener() { @@ -76,12 +77,10 @@ public class CurrentRecordingDetailsFragment extends RecordingDetailsFragment { @Override public void onAttach(Context context) { + AndroidInjection.inject(this); super.onAttach(context); mDvrDataManger = TvSingletons.getSingletons(context).getDvrDataManager(); mDvrDataManger.addScheduledRecordingListener(mScheduledRecordingListener); - mDvrWatchedPositionManager = - TvSingletons.getSingletons(getActivity()).getDvrWatchedPositionManager(); - mConcurrentDvrPlaybackFlags = HasConcurrentDvrPlaybackFlags.fromContext(context); } @Override diff --git a/src/com/android/tv/dvr/ui/browse/DetailsContentPresenter.java b/src/com/android/tv/dvr/ui/browse/DetailsContentPresenter.java index 6b5fd1fd..fafc70cf 100644 --- a/src/com/android/tv/dvr/ui/browse/DetailsContentPresenter.java +++ b/src/com/android/tv/dvr/ui/browse/DetailsContentPresenter.java @@ -24,7 +24,7 @@ import android.app.Activity; import android.content.Context; import android.graphics.Paint; import android.graphics.Paint.FontMetricsInt; -import android.support.v17.leanback.widget.Presenter; +import androidx.leanback.widget.Presenter; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -40,10 +40,10 @@ import com.android.tv.util.Utils; /** * An {@link Presenter} for rendering a detailed description of an DVR item. Typically this * Presenter will be used in a {@link - * android.support.v17.leanback.widget.DetailsOverviewRowPresenter}. Most codes of this class is - * originated from {@link android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter}. + * androidx.leanback.widget.DetailsOverviewRowPresenter}. Most codes of this class is + * originated from {@link androidx.leanback.widget.AbstractDetailsDescriptionPresenter}. * The latter class are re-used to provide a customized version of {@link - * android.support.v17.leanback.widget.DetailsOverviewRow}. + * androidx.leanback.widget.DetailsOverviewRow}. */ public class DetailsContentPresenter extends Presenter { /** The ViewHolder for the {@link DetailsContentPresenter}. */ diff --git a/src/com/android/tv/dvr/ui/browse/DetailsViewBackgroundHelper.java b/src/com/android/tv/dvr/ui/browse/DetailsViewBackgroundHelper.java index 4e41daee..8a4c7854 100644 --- a/src/com/android/tv/dvr/ui/browse/DetailsViewBackgroundHelper.java +++ b/src/com/android/tv/dvr/ui/browse/DetailsViewBackgroundHelper.java @@ -21,7 +21,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Handler; -import android.support.v17.leanback.app.BackgroundManager; +import androidx.leanback.app.BackgroundManager; /** The Background Helper. */ public class DetailsViewBackgroundHelper { diff --git a/src/com/android/tv/dvr/ui/browse/DvrBrowseActivity.java b/src/com/android/tv/dvr/ui/browse/DvrBrowseActivity.java index 5743ea5c..7262b4a0 100644 --- a/src/com/android/tv/dvr/ui/browse/DvrBrowseActivity.java +++ b/src/com/android/tv/dvr/ui/browse/DvrBrowseActivity.java @@ -22,13 +22,13 @@ import android.media.tv.TvInputManager; import android.os.Bundle; import com.android.tv.R; import com.android.tv.Starter; -import com.android.tv.perf.PerformanceMonitorManagerFactory; +import com.android.tv.perf.StartupMeasureFactory; /** {@link android.app.Activity} for DVR UI. */ public class DvrBrowseActivity extends Activity { { - PerformanceMonitorManagerFactory.create().getStartupMeasure().onActivityInit(); + StartupMeasureFactory.create().onActivityInit(); } private DvrBrowseFragment mFragment; diff --git a/src/com/android/tv/dvr/ui/browse/DvrBrowseFragment.java b/src/com/android/tv/dvr/ui/browse/DvrBrowseFragment.java index 3251200f..276bc114 100644 --- a/src/com/android/tv/dvr/ui/browse/DvrBrowseFragment.java +++ b/src/com/android/tv/dvr/ui/browse/DvrBrowseFragment.java @@ -21,14 +21,14 @@ import android.content.Context; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.support.v17.leanback.app.BrowseFragment; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.ClassPresenterSelector; -import android.support.v17.leanback.widget.HeaderItem; -import android.support.v17.leanback.widget.ListRow; -import android.support.v17.leanback.widget.Presenter; -import android.support.v17.leanback.widget.TitleViewAdapter; import android.text.TextUtils; +import androidx.leanback.app.BrowseFragment; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.HeaderItem; +import androidx.leanback.widget.ListRow; +import androidx.leanback.widget.Presenter; +import androidx.leanback.widget.TitleViewAdapter; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver.OnGlobalFocusChangeListener; diff --git a/src/com/android/tv/dvr/ui/browse/DvrDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/DvrDetailsFragment.java index f90981f0..a38180a5 100644 --- a/src/com/android/tv/dvr/ui/browse/DvrDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/DvrDetailsFragment.java @@ -25,15 +25,15 @@ import android.media.tv.TvContentRating; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v17.leanback.app.DetailsFragment; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.ClassPresenterSelector; -import android.support.v17.leanback.widget.DetailsOverviewRow; -import android.support.v17.leanback.widget.DetailsOverviewRowPresenter; -import android.support.v17.leanback.widget.OnActionClickedListener; -import android.support.v17.leanback.widget.PresenterSelector; -import android.support.v17.leanback.widget.SparseArrayObjectAdapter; -import android.support.v17.leanback.widget.VerticalGridView; +import androidx.leanback.app.DetailsFragment; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.DetailsOverviewRow; +import androidx.leanback.widget.DetailsOverviewRowPresenter; +import androidx.leanback.widget.OnActionClickedListener; +import androidx.leanback.widget.PresenterSelector; +import androidx.leanback.widget.SparseArrayObjectAdapter; +import androidx.leanback.widget.VerticalGridView; import android.text.TextUtils; import android.widget.Toast; import com.android.tv.R; diff --git a/src/com/android/tv/dvr/ui/browse/DvrItemPresenter.java b/src/com/android/tv/dvr/ui/browse/DvrItemPresenter.java index 4298d86a..ebdee32f 100644 --- a/src/com/android/tv/dvr/ui/browse/DvrItemPresenter.java +++ b/src/com/android/tv/dvr/ui/browse/DvrItemPresenter.java @@ -19,7 +19,7 @@ package com.android.tv.dvr.ui.browse; import android.app.Activity; import android.content.Context; import android.support.annotation.CallSuper; -import android.support.v17.leanback.widget.Presenter; +import androidx.leanback.widget.Presenter; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/browse/DvrListRowPresenter.java b/src/com/android/tv/dvr/ui/browse/DvrListRowPresenter.java index a2d1cb28..625f8f76 100644 --- a/src/com/android/tv/dvr/ui/browse/DvrListRowPresenter.java +++ b/src/com/android/tv/dvr/ui/browse/DvrListRowPresenter.java @@ -17,7 +17,7 @@ package com.android.tv.dvr.ui.browse; import android.content.Context; -import android.support.v17.leanback.widget.ListRowPresenter; +import androidx.leanback.widget.ListRowPresenter; import android.view.ViewGroup; import com.android.tv.R; diff --git a/src/com/android/tv/dvr/ui/browse/RecordedProgramDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/RecordedProgramDetailsFragment.java index bf963547..5f58af8e 100644 --- a/src/com/android/tv/dvr/ui/browse/RecordedProgramDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/RecordedProgramDetailsFragment.java @@ -19,9 +19,9 @@ package com.android.tv.dvr.ui.browse; import android.content.res.Resources; import android.media.tv.TvInputManager; import android.os.Bundle; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.OnActionClickedListener; -import android.support.v17.leanback.widget.SparseArrayObjectAdapter; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.OnActionClickedListener; +import androidx.leanback.widget.SparseArrayObjectAdapter; import com.android.tv.R; import com.android.tv.TvSingletons; import com.android.tv.common.util.PermissionUtils; @@ -32,7 +32,7 @@ import com.android.tv.dvr.data.RecordedProgram; import com.android.tv.dvr.ui.DvrUiHelper; import com.android.tv.ui.DetailsActivity; -/** {@link android.support.v17.leanback.app.DetailsFragment} for recorded program in DVR. */ +/** {@link androidx.leanback.app.DetailsFragment} for recorded program in DVR. */ public class RecordedProgramDetailsFragment extends DvrDetailsFragment implements DvrDataManager.RecordedProgramListener { private static final int ACTION_RESUME_PLAYING = 1; diff --git a/src/com/android/tv/dvr/ui/browse/RecordingCardView.java b/src/com/android/tv/dvr/ui/browse/RecordingCardView.java index 2ffad327..ac7c5745 100644 --- a/src/com/android/tv/dvr/ui/browse/RecordingCardView.java +++ b/src/com/android/tv/dvr/ui/browse/RecordingCardView.java @@ -23,7 +23,6 @@ import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; -import android.support.v17.leanback.widget.BaseCardView; import android.text.Layout; import android.text.TextUtils; import android.view.LayoutInflater; @@ -33,6 +32,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import androidx.leanback.widget.BaseCardView; import com.android.tv.R; import com.android.tv.dvr.data.RecordedProgram; import com.android.tv.ui.ViewUtils; @@ -44,7 +44,7 @@ import com.android.tv.util.images.ImageLoader; */ public class RecordingCardView extends BaseCardView { // This value should be the same with - // android.support.v17.leanback.widget.FocusHighlightHelper.BrowseItemFocusHighlight.DURATION_MS + // androidx.leanback.widget.FocusHighlightHelper.BrowseItemFocusHighlight.DURATION_MS private static final int ANIMATION_DURATION = 150; private final ImageView mImageView; private final int mImageWidth; diff --git a/src/com/android/tv/dvr/ui/browse/RecordingDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/RecordingDetailsFragment.java index 243681c6..e85f983f 100644 --- a/src/com/android/tv/dvr/ui/browse/RecordingDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/RecordingDetailsFragment.java @@ -17,7 +17,7 @@ package com.android.tv.dvr.ui.browse; import android.os.Bundle; -import android.support.v17.leanback.app.DetailsFragment; +import androidx.leanback.app.DetailsFragment; import com.android.tv.TvSingletons; import com.android.tv.dvr.data.ScheduledRecording; import com.android.tv.ui.DetailsActivity; diff --git a/src/com/android/tv/dvr/ui/browse/ScheduledRecordingDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/ScheduledRecordingDetailsFragment.java index f08bb12b..7ef8e59f 100644 --- a/src/com/android/tv/dvr/ui/browse/ScheduledRecordingDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/ScheduledRecordingDetailsFragment.java @@ -18,9 +18,9 @@ package com.android.tv.dvr.ui.browse; import android.content.res.Resources; import android.os.Bundle; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.OnActionClickedListener; -import android.support.v17.leanback.widget.SparseArrayObjectAdapter; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.OnActionClickedListener; +import androidx.leanback.widget.SparseArrayObjectAdapter; import com.android.tv.R; import com.android.tv.TvSingletons; diff --git a/src/com/android/tv/dvr/ui/browse/SeriesRecordingDetailsFragment.java b/src/com/android/tv/dvr/ui/browse/SeriesRecordingDetailsFragment.java index 9104ef10..7c1e1164 100644 --- a/src/com/android/tv/dvr/ui/browse/SeriesRecordingDetailsFragment.java +++ b/src/com/android/tv/dvr/ui/browse/SeriesRecordingDetailsFragment.java @@ -21,17 +21,17 @@ import android.graphics.drawable.Drawable; import android.media.tv.TvInputManager; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v17.leanback.app.DetailsFragment; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.ClassPresenterSelector; -import android.support.v17.leanback.widget.DetailsOverviewRow; -import android.support.v17.leanback.widget.DetailsOverviewRowPresenter; -import android.support.v17.leanback.widget.HeaderItem; -import android.support.v17.leanback.widget.ListRow; -import android.support.v17.leanback.widget.OnActionClickedListener; -import android.support.v17.leanback.widget.PresenterSelector; -import android.support.v17.leanback.widget.SparseArrayObjectAdapter; +import androidx.leanback.app.DetailsFragment; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.DetailsOverviewRow; +import androidx.leanback.widget.DetailsOverviewRowPresenter; +import androidx.leanback.widget.HeaderItem; +import androidx.leanback.widget.ListRow; +import androidx.leanback.widget.OnActionClickedListener; +import androidx.leanback.widget.PresenterSelector; +import androidx.leanback.widget.SparseArrayObjectAdapter; import android.text.TextUtils; import com.android.tv.R; import com.android.tv.TvSingletons; diff --git a/src/com/android/tv/dvr/ui/list/BaseDvrSchedulesFragment.java b/src/com/android/tv/dvr/ui/list/BaseDvrSchedulesFragment.java index 77a63508..293e1d94 100644 --- a/src/com/android/tv/dvr/ui/list/BaseDvrSchedulesFragment.java +++ b/src/com/android/tv/dvr/ui/list/BaseDvrSchedulesFragment.java @@ -17,8 +17,8 @@ package com.android.tv.dvr.ui.list; import android.os.Bundle; -import android.support.v17.leanback.app.DetailsFragment; -import android.support.v17.leanback.widget.ClassPresenterSelector; +import androidx.leanback.app.DetailsFragment; +import androidx.leanback.widget.ClassPresenterSelector; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java b/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java index 0ca05fac..1d93c8cb 100644 --- a/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java +++ b/src/com/android/tv/dvr/ui/list/DvrHistoryFragment.java @@ -17,23 +17,24 @@ package com.android.tv.dvr.ui.list; import android.os.Bundle; -import android.support.v17.leanback.app.DetailsFragment; -import android.support.v17.leanback.widget.ClassPresenterSelector; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.leanback.app.DetailsFragment; +import androidx.leanback.widget.ClassPresenterSelector; import com.android.tv.R; import com.android.tv.TvSingletons; 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.ui.list.SchedulesHeaderRowPresenter.DateHeaderRowPresenter; +import com.android.tv.common.flags.UiFlags; /** A fragment to show the DVR history. */ public class DvrHistoryFragment extends DetailsFragment implements DvrDataManager.ScheduledRecordingListener, - DvrDataManager.RecordedProgramListener { + DvrDataManager.RecordedProgramListener { private DvrHistoryRowAdapter mRowsAdapter; private TextView mEmptyInfoScreenView; @@ -48,11 +49,17 @@ public class DvrHistoryFragment extends DetailsFragment presenterSelector.addClassPresenter( ScheduleRow.class, new ScheduleRowPresenter(getContext())); TvSingletons singletons = TvSingletons.getSingletons(getContext()); - mRowsAdapter = new DvrHistoryRowAdapter( - getContext(), presenterSelector, singletons.getClock()); + UiFlags uiFlags = singletons.getUiFlags(); + mDvrDataManager = singletons.getDvrDataManager(); + mRowsAdapter = + new DvrHistoryRowAdapter( + getContext(), + presenterSelector, + singletons.getClock(), + mDvrDataManager, + uiFlags); setAdapter(mRowsAdapter); mRowsAdapter.start(); - mDvrDataManager = singletons.getDvrDataManager(); mDvrDataManager.addScheduledRecordingListener(this); mDvrDataManager.addRecordedProgramListener(this); mEmptyInfoScreenView = (TextView) getActivity().findViewById(R.id.empty_info_screen); @@ -135,7 +142,6 @@ public class DvrHistoryFragment extends DetailsFragment hideEmptyMessage(); } } - } @Override diff --git a/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java b/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java index 156d1a7e..a10367fb 100644 --- a/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java +++ b/src/com/android/tv/dvr/ui/list/DvrHistoryRowAdapter.java @@ -20,20 +20,19 @@ import android.annotation.TargetApi; import android.content.Context; import android.os.Build.VERSION_CODES; import android.support.annotation.Nullable; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.ClassPresenterSelector; import android.text.format.DateUtils; import android.util.Log; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.ClassPresenterSelector; import com.android.tv.R; -import com.android.tv.TvSingletons; import com.android.tv.common.SoftPreconditions; 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; import com.android.tv.dvr.ui.list.SchedulesHeaderRow.DateHeaderRow; import com.android.tv.util.Utils; +import com.android.tv.common.flags.UiFlags; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -48,8 +47,8 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { private static final boolean DEBUG = false; private static final long ONE_DAY_MS = TimeUnit.DAYS.toMillis(1); - private static final int MAX_HISTORY_DAYS = ScheduledProgramReaper.DAYS; + private final long mMaxHistoryDays; private final Context mContext; private final Clock mClock; private final DvrDataManager mDvrDataManager; @@ -57,11 +56,16 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { private final Map<Long, ScheduledRecording> mRecordedProgramScheduleMap = new HashMap<>(); public DvrHistoryRowAdapter( - Context context, ClassPresenterSelector classPresenterSelector, Clock clock) { + Context context, + ClassPresenterSelector classPresenterSelector, + Clock clock, + DvrDataManager dvrDataManager, + UiFlags uiFlags) { super(classPresenterSelector); mContext = context; mClock = clock; - mDvrDataManager = TvSingletons.getSingletons(mContext).getDvrDataManager(); + mDvrDataManager = dvrDataManager; + mMaxHistoryDays = uiFlags.maxHistoryDays(); mTitles.add(mContext.getString(R.string.dvr_date_today)); mTitles.add(mContext.getString(R.string.dvr_date_yesterday)); } @@ -78,9 +82,9 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { List<RecordedProgram> recordedProgramList = mDvrDataManager.getRecordedPrograms(); recordingList.addAll( - recordedProgramsToScheduledRecordings(recordedProgramList, MAX_HISTORY_DAYS)); - recordingList - .sort(ScheduledRecording.START_TIME_THEN_PRIORITY_THEN_ID_COMPARATOR.reversed()); + recordedProgramsToScheduledRecordings(recordedProgramList, mMaxHistoryDays)); + recordingList.sort( + ScheduledRecording.START_TIME_THEN_PRIORITY_THEN_ID_COMPARATOR.reversed()); long deadLine = Utils.getFirstMillisecondOfDay(mClock.currentTimeMillis()); for (int i = 0; i < recordingList.size(); ) { ArrayList<ScheduledRecording> section = new ArrayList<>(); @@ -128,7 +132,7 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { } private List<ScheduledRecording> recordedProgramsToScheduledRecordings( - List<RecordedProgram> programs, int maxDays) { + List<RecordedProgram> programs, long maxDays) { List<ScheduledRecording> result = new ArrayList<>(); for (RecordedProgram recordedProgram : programs) { ScheduledRecording scheduledRecording = @@ -142,12 +146,12 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { @Nullable private ScheduledRecording recordedProgramsToScheduledRecordings( - RecordedProgram program, int maxDays) { + RecordedProgram program, long maxDays) { long firstMillisecondToday = Utils.getFirstMillisecondOfDay(mClock.currentTimeMillis()); - if (maxDays - < Utils.computeDateDifference( - program.getStartTimeUtcMillis(), - firstMillisecondToday)) { + if (maxDays != 0 + && maxDays + < Utils.computeDateDifference( + program.getStartTimeUtcMillis(), firstMillisecondToday)) { return null; } ScheduledRecording scheduledRecording = ScheduledRecording.builder(program).build(); @@ -175,7 +179,7 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { return; } ScheduledRecording schedule = - recordedProgramsToScheduledRecordings(program, MAX_HISTORY_DAYS); + recordedProgramsToScheduledRecordings(program, mMaxHistoryDays); if (schedule == null) { return; } @@ -248,8 +252,10 @@ class DvrHistoryRowAdapter extends ArrayObjectAdapter { for (; index < size(); index++) { if (get(index) instanceof ScheduleRow) { ScheduleRow scheduleRow = (ScheduleRow) get(index); - if (ScheduledRecording.START_TIME_THEN_PRIORITY_THEN_ID_COMPARATOR.reversed() - .compare(scheduleRow.getSchedule(), recording) > 0) { + if (ScheduledRecording.START_TIME_THEN_PRIORITY_THEN_ID_COMPARATOR + .reversed() + .compare(scheduleRow.getSchedule(), recording) + > 0) { break; } pre = index; diff --git a/src/com/android/tv/dvr/ui/list/DvrSchedulesFragment.java b/src/com/android/tv/dvr/ui/list/DvrSchedulesFragment.java index d97b61f4..43a3579a 100644 --- a/src/com/android/tv/dvr/ui/list/DvrSchedulesFragment.java +++ b/src/com/android/tv/dvr/ui/list/DvrSchedulesFragment.java @@ -17,7 +17,7 @@ package com.android.tv.dvr.ui.list; import android.os.Bundle; -import android.support.v17.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.ClassPresenterSelector; import com.android.tv.R; import com.android.tv.dvr.data.ScheduledRecording; import com.android.tv.dvr.ui.list.SchedulesHeaderRowPresenter.DateHeaderRowPresenter; diff --git a/src/com/android/tv/dvr/ui/list/DvrSeriesSchedulesFragment.java b/src/com/android/tv/dvr/ui/list/DvrSeriesSchedulesFragment.java index d376e358..319b583b 100644 --- a/src/com/android/tv/dvr/ui/list/DvrSeriesSchedulesFragment.java +++ b/src/com/android/tv/dvr/ui/list/DvrSeriesSchedulesFragment.java @@ -25,7 +25,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.support.v17.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.ClassPresenterSelector; import android.transition.Fade; import android.view.LayoutInflater; import android.view.View; diff --git a/src/com/android/tv/dvr/ui/list/ScheduleRowAdapter.java b/src/com/android/tv/dvr/ui/list/ScheduleRowAdapter.java index ef4a4337..de259f5a 100644 --- a/src/com/android/tv/dvr/ui/list/ScheduleRowAdapter.java +++ b/src/com/android/tv/dvr/ui/list/ScheduleRowAdapter.java @@ -22,8 +22,8 @@ import android.os.Build.VERSION_CODES; import android.os.Handler; import android.os.Looper; import android.os.Message; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.ClassPresenterSelector; import android.text.format.DateUtils; import android.util.ArraySet; import android.util.Log; diff --git a/src/com/android/tv/dvr/ui/list/ScheduleRowPresenter.java b/src/com/android/tv/dvr/ui/list/ScheduleRowPresenter.java index 11680a0d..ff296f49 100644 --- a/src/com/android/tv/dvr/ui/list/ScheduleRowPresenter.java +++ b/src/com/android/tv/dvr/ui/list/ScheduleRowPresenter.java @@ -24,7 +24,7 @@ import android.content.Context; import android.content.res.Resources; import android.os.Build; import android.support.annotation.IntDef; -import android.support.v17.leanback.widget.RowPresenter; +import androidx.leanback.widget.RowPresenter; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java b/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java index 28a44bf3..2550eebc 100644 --- a/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java +++ b/src/com/android/tv/dvr/ui/list/SchedulesHeaderRowPresenter.java @@ -19,7 +19,7 @@ package com.android.tv.dvr.ui.list; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.v17.leanback.widget.RowPresenter; +import androidx.leanback.widget.RowPresenter; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; diff --git a/src/com/android/tv/dvr/ui/list/SeriesScheduleRowAdapter.java b/src/com/android/tv/dvr/ui/list/SeriesScheduleRowAdapter.java index 9a9c94ea..9158423c 100644 --- a/src/com/android/tv/dvr/ui/list/SeriesScheduleRowAdapter.java +++ b/src/com/android/tv/dvr/ui/list/SeriesScheduleRowAdapter.java @@ -20,7 +20,7 @@ import android.annotation.TargetApi; import android.content.Context; import android.media.tv.TvInputInfo; import android.os.Build; -import android.support.v17.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.ClassPresenterSelector; import android.util.ArrayMap; import android.util.Log; import com.android.tv.R; diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlaybackActivity.java b/src/com/android/tv/dvr/ui/playback/DvrPlaybackActivity.java index f24ad2c0..4aa1200e 100644 --- a/src/com/android/tv/dvr/ui/playback/DvrPlaybackActivity.java +++ b/src/com/android/tv/dvr/ui/playback/DvrPlaybackActivity.java @@ -16,7 +16,6 @@ package com.android.tv.dvr.ui.playback; -import android.app.Activity; import android.content.ContentUris; import android.content.Intent; import android.content.res.Configuration; @@ -28,9 +27,12 @@ import com.android.tv.Starter; import com.android.tv.dialog.PinDialogFragment.OnPinCheckedListener; import com.android.tv.dvr.data.RecordedProgram; import com.android.tv.util.Utils; +import dagger.android.AndroidInjection; +import dagger.android.ContributesAndroidInjector; +import dagger.android.DaggerActivity; /** Activity to play a {@link RecordedProgram}. */ -public class DvrPlaybackActivity extends Activity implements OnPinCheckedListener { +public class DvrPlaybackActivity extends DaggerActivity implements OnPinCheckedListener { private static final String TAG = "DvrPlaybackActivity"; private static final boolean DEBUG = false; @@ -39,6 +41,7 @@ public class DvrPlaybackActivity extends Activity implements OnPinCheckedListene @Override public void onCreate(Bundle savedInstanceState) { + AndroidInjection.inject(this); Starter.start(this); if (DEBUG) Log.d(TAG, "onCreate"); super.onCreate(savedInstanceState); @@ -92,4 +95,16 @@ public class DvrPlaybackActivity extends Activity implements OnPinCheckedListene void setOnPinCheckListener(OnPinCheckedListener listener) { mOnPinCheckedListener = listener; } + + /** + * Exports {@link DvrPlaybackActivity} for Dagger codegen to create the appropriate injector. + */ + @dagger.Module + public abstract static class Module { + @ContributesAndroidInjector + abstract DvrPlaybackActivity contributesDvrPlaybackActivity(); + + @ContributesAndroidInjector + abstract DvrPlaybackOverlayFragment contributesDvrPlaybackOverlayFragment(); + } } diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlaybackControlHelper.java b/src/com/android/tv/dvr/ui/playback/DvrPlaybackControlHelper.java index 791d26bb..35c5d4e4 100644 --- a/src/com/android/tv/dvr/ui/playback/DvrPlaybackControlHelper.java +++ b/src/com/android/tv/dvr/ui/playback/DvrPlaybackControlHelper.java @@ -26,15 +26,15 @@ import android.media.session.PlaybackState; import android.media.tv.TvTrackInfo; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v17.leanback.media.PlaybackControlGlue; -import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter; -import android.support.v17.leanback.widget.Action; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.PlaybackControlsRow; -import android.support.v17.leanback.widget.PlaybackControlsRow.ClosedCaptioningAction; -import android.support.v17.leanback.widget.PlaybackControlsRow.MultiAction; -import android.support.v17.leanback.widget.PlaybackControlsRowPresenter; -import android.support.v17.leanback.widget.RowPresenter; +import androidx.leanback.media.PlaybackControlGlue; +import androidx.leanback.widget.AbstractDetailsDescriptionPresenter; +import androidx.leanback.widget.Action; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.PlaybackControlsRow; +import androidx.leanback.widget.PlaybackControlsRow.ClosedCaptioningAction; +import androidx.leanback.widget.PlaybackControlsRow.MultiAction; +import androidx.leanback.widget.PlaybackControlsRowPresenter; +import androidx.leanback.widget.RowPresenter; import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java b/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java index 1059e852..a111738e 100644 --- a/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java +++ b/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java @@ -26,23 +26,24 @@ import android.media.tv.TvContentRating; import android.media.tv.TvInputManager; import android.media.tv.TvTrackInfo; import android.os.Bundle; -import android.support.v17.leanback.app.PlaybackFragment; -import android.support.v17.leanback.app.PlaybackFragmentGlueHost; -import android.support.v17.leanback.widget.ArrayObjectAdapter; -import android.support.v17.leanback.widget.BaseOnItemViewClickedListener; -import android.support.v17.leanback.widget.ClassPresenterSelector; -import android.support.v17.leanback.widget.HeaderItem; -import android.support.v17.leanback.widget.ListRow; -import android.support.v17.leanback.widget.Presenter; -import android.support.v17.leanback.widget.RowPresenter; -import android.support.v17.leanback.widget.SinglePresenterSelector; import android.util.Log; import android.view.Display; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import androidx.leanback.app.PlaybackFragment; +import androidx.leanback.app.PlaybackFragmentGlueHost; +import androidx.leanback.widget.ArrayObjectAdapter; +import androidx.leanback.widget.BaseOnItemViewClickedListener; +import androidx.leanback.widget.ClassPresenterSelector; +import androidx.leanback.widget.HeaderItem; +import androidx.leanback.widget.ListRow; +import androidx.leanback.widget.Presenter; +import androidx.leanback.widget.RowPresenter; +import androidx.leanback.widget.SinglePresenterSelector; import com.android.tv.R; -import com.android.tv.TvSingletons; +import com.android.tv.audio.AudioManagerHelper; +import com.android.tv.common.buildtype.HasBuildType.BuildType; import com.android.tv.data.BaseProgram; import com.android.tv.dialog.PinDialogFragment; import com.android.tv.dvr.DvrDataManager; @@ -55,8 +56,11 @@ import com.android.tv.ui.AppLayerTvView; import com.android.tv.util.TvSettings; import com.android.tv.util.TvTrackInfoUtils; import com.android.tv.util.Utils; +import dagger.android.AndroidInjection; +import com.android.tv.common.flags.LegacyFlags; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; public class DvrPlaybackOverlayFragment extends PlaybackFragment { // TODO: Handles audio focus. Deals with block and ratings. @@ -75,7 +79,7 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { private ArrayObjectAdapter mRowsAdapter; private SortedArrayAdapter<BaseProgram> mRelatedRecordingsRowAdapter; private DvrPlaybackCardPresenter mRelatedRecordingCardPresenter; - private DvrDataManager mDvrDataManager; + private AudioManagerHelper mAudioManagerHelper; private AppLayerTvView mTvView; private View mBlockScreenView; private ListRow mRelatedRecordingsRow; @@ -97,9 +101,24 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { } }; + @Inject DvrDataManager mDvrDataManager; + @Inject LegacyFlags mLegacyFlags; + @Inject BuildType buildType; + + @Override + public void onAttach(Context context) { + if (DEBUG) { + Log.d(TAG, "onAttach"); + } + AndroidInjection.inject(this); + super.onAttach(context); + } + @Override public void onCreate(Bundle savedInstanceState) { - if (DEBUG) Log.d(TAG, "onCreate"); + if (DEBUG) { + Log.d(TAG, "onCreate"); + } super.onCreate(savedInstanceState); mVerticalPaddingBase = getActivity() @@ -115,7 +134,6 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { .getResources() .getDimensionPixelOffset( R.dimen.dvr_playback_overlay_padding_top_no_secondary_row); - mDvrDataManager = TvSingletons.getSingletons(getActivity()).getDvrDataManager(); if (!mDvrDataManager.isRecordedProgramLoadFinished()) { mDvrDataManager.addRecordedProgramLoadFinishedListener( new DvrDataManager.OnRecordedProgramLoadFinishedListener() { @@ -153,6 +171,8 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mTvView = getActivity().findViewById(R.id.dvr_tv_view); + mTvView.setUseSecureSurface( + buildType != BuildType.ENG && !mLegacyFlags.enableDeveloperFeatures()); mBlockScreenView = getActivity().findViewById(R.id.block_screen); mDvrPlayer = new DvrPlayer(mTvView, getActivity()); mMediaSessionHelper = @@ -240,13 +260,16 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { setFadingEnabled(false); long programId = ((RecordedProgram) itemViewHolder.view.getTag()).getId(); - if (DEBUG) Log.d(TAG, "Play Related Recording:" + programId); + if (DEBUG) { + Log.d(TAG, "Play Related Recording:" + programId); + } Intent intent = new Intent(getContext(), DvrPlaybackActivity.class); intent.putExtra(Utils.EXTRA_KEY_RECORDED_PROGRAM_ID, programId); getContext().startActivity(intent); } } }); + mAudioManagerHelper = new AudioManagerHelper(getActivity(), mDvrPlayer.getView()); if (mProgram != null) { setUpRows(); preparePlayback(getActivity().getIntent()); @@ -255,7 +278,9 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { @Override public void onPause() { - if (DEBUG) Log.d(TAG, "onPause"); + if (DEBUG) { + Log.d(TAG, "onPause"); + } super.onPause(); if (mMediaSessionHelper.getPlaybackState() == PlaybackState.STATE_FAST_FORWARDING || mMediaSessionHelper.getPlaybackState() == PlaybackState.STATE_REWINDING) { @@ -270,9 +295,12 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { @Override public void onDestroy() { - if (DEBUG) Log.d(TAG, "onDestroy"); + if (DEBUG) { + Log.d(TAG, "onDestroy"); + } mPlaybackControlHelper.unregisterCallback(); mMediaSessionHelper.release(); + mAudioManagerHelper.abandonAudioFocus(); mRelatedRecordingCardPresenter.unbindAllViewHolders(); mDvrPlayer.release(); super.onDestroy(); @@ -416,6 +444,7 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment { private void preparePlayback(Intent intent) { mMediaSessionHelper.setupPlayback(mProgram, getSeekTimeFromIntent(intent)); mPlaybackControlHelper.updateSecondaryRow(false, false); + mAudioManagerHelper.requestAudioFocus(); getActivity().getMediaController().getTransportControls().prepare(); updateRelatedRecordingsRow(); } diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlaybackSideFragment.java b/src/com/android/tv/dvr/ui/playback/DvrPlaybackSideFragment.java index b4481df8..95858e3c 100644 --- a/src/com/android/tv/dvr/ui/playback/DvrPlaybackSideFragment.java +++ b/src/com/android/tv/dvr/ui/playback/DvrPlaybackSideFragment.java @@ -19,8 +19,8 @@ package com.android.tv.dvr.ui.playback; import android.media.tv.TvTrackInfo; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v17.leanback.app.GuidedStepFragment; -import android.support.v17.leanback.widget.GuidedAction; +import androidx.leanback.app.GuidedStepFragment; +import androidx.leanback.widget.GuidedAction; import android.text.TextUtils; import android.transition.Transition; import android.view.LayoutInflater; diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlayer.java b/src/com/android/tv/dvr/ui/playback/DvrPlayer.java index d14646b8..e8325e1f 100644 --- a/src/com/android/tv/dvr/ui/playback/DvrPlayer.java +++ b/src/com/android/tv/dvr/ui/playback/DvrPlayer.java @@ -326,6 +326,11 @@ public class DvrPlayer { return mProgram; } + /** Returns the DVR tv view. */ + public DvrTvView getView() { + return mTvView; + } + /** Returns the currrent playback posistion in msecs. */ public long getPlaybackPosition() { return mTimeShiftCurrentPositionMs; |