aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java')
-rw-r--r--src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java188
1 files changed, 105 insertions, 83 deletions
diff --git a/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java b/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java
index 783ae682..d3374cfa 100644
--- a/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java
+++ b/src/com/android/tv/dvr/ui/playback/DvrPlaybackOverlayFragment.java
@@ -21,12 +21,12 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Point;
import android.hardware.display.DisplayManager;
-import android.media.tv.TvContentRating;
-import android.media.tv.TvTrackInfo;
-import android.os.Bundle;
import android.media.session.PlaybackState;
+import android.media.tv.TvContentRating;
import android.media.tv.TvInputManager;
+import android.media.tv.TvTrackInfo;
import android.media.tv.TvView;
+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;
@@ -37,14 +37,13 @@ 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 android.util.Log;
-
import com.android.tv.R;
-import com.android.tv.TvApplication;
+import com.android.tv.TvSingletons;
import com.android.tv.data.BaseProgram;
import com.android.tv.dialog.PinDialogFragment;
import com.android.tv.dvr.DvrDataManager;
@@ -57,9 +56,8 @@ import com.android.tv.parental.ContentRatingsManager;
import com.android.tv.util.TvSettings;
import com.android.tv.util.TvTrackInfoUtils;
import com.android.tv.util.Utils;
-
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
public class DvrPlaybackOverlayFragment extends PlaybackFragment {
// TODO: Handles audio focus. Deals with block and ratings.
@@ -104,15 +102,25 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
public void onCreate(Bundle savedInstanceState) {
if (DEBUG) Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
- mVerticalPaddingBase = getActivity().getResources()
- .getDimensionPixelOffset(R.dimen.dvr_playback_overlay_padding_top_base);
- mPaddingWithoutRelatedRow = getActivity().getResources()
- .getDimensionPixelOffset(R.dimen.dvr_playback_overlay_padding_top_no_related_row);
- mPaddingWithoutSecondaryRow = getActivity().getResources()
- .getDimensionPixelOffset(R.dimen.dvr_playback_overlay_padding_top_no_secondary_row);
- mDvrDataManager = TvApplication.getSingletons(getActivity()).getDvrDataManager();
- mContentRatingsManager = TvApplication.getSingletons(getContext())
- .getTvInputManagerHelper().getContentRatingsManager();
+ mVerticalPaddingBase =
+ getActivity()
+ .getResources()
+ .getDimensionPixelOffset(R.dimen.dvr_playback_overlay_padding_top_base);
+ mPaddingWithoutRelatedRow =
+ getActivity()
+ .getResources()
+ .getDimensionPixelOffset(
+ R.dimen.dvr_playback_overlay_padding_top_no_related_row);
+ mPaddingWithoutSecondaryRow =
+ getActivity()
+ .getResources()
+ .getDimensionPixelOffset(
+ R.dimen.dvr_playback_overlay_padding_top_no_secondary_row);
+ mDvrDataManager = TvSingletons.getSingletons(getActivity()).getDvrDataManager();
+ mContentRatingsManager =
+ TvSingletons.getSingletons(getContext())
+ .getTvInputManagerHelper()
+ .getContentRatingsManager();
if (!mDvrDataManager.isRecordedProgramLoadFinished()) {
mDvrDataManager.addRecordedProgramLoadFinishedListener(
new DvrDataManager.OnRecordedProgramLoadFinishedListener() {
@@ -124,14 +132,14 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
preparePlayback(getActivity().getIntent());
}
}
- }
- );
+ });
} else if (!handleIntent(getActivity().getIntent(), true)) {
return;
}
Point size = new Point();
((DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE))
- .getDisplay(Display.DEFAULT_DISPLAY).getSize(size);
+ .getDisplay(Display.DEFAULT_DISPLAY)
+ .getSize(size);
mWindowWidth = size.x;
mWindowHeight = size.y;
mWindowAspectRatio = mAppliedAspectRatio = (float) mWindowWidth / mWindowHeight;
@@ -152,19 +160,20 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
mTvView = (TvView) getActivity().findViewById(R.id.dvr_tv_view);
mBlockScreenView = getActivity().findViewById(R.id.block_screen);
mDvrPlayer = new DvrPlayer(mTvView);
- mMediaSessionHelper = new DvrPlaybackMediaSessionHelper(
- getActivity(), MEDIA_SESSION_TAG, mDvrPlayer, this);
+ mMediaSessionHelper =
+ new DvrPlaybackMediaSessionHelper(
+ getActivity(), MEDIA_SESSION_TAG, mDvrPlayer, this);
mPlaybackControlHelper = new DvrPlaybackControlHelper(getActivity(), this);
mRelatedRecordingsRow = getRelatedRecordingsRow();
mDvrPlayer.setOnTracksAvailabilityChangedListener(
new DvrPlayer.OnTracksAvailabilityChangedListener() {
@Override
- public void onTracksAvailabilityChanged(boolean hasClosedCaption,
- boolean hasMultiAudio) {
+ public void onTracksAvailabilityChanged(
+ boolean hasClosedCaption, boolean hasMultiAudio) {
mPlaybackControlHelper.updateSecondaryRow(hasClosedCaption, hasMultiAudio);
if (hasClosedCaption) {
- mDvrPlayer.setOnTrackSelectedListener(TvTrackInfo.TYPE_SUBTITLE,
- mOnSubtitleTrackSelectedListener);
+ mDvrPlayer.setOnTrackSelectedListener(
+ TvTrackInfo.TYPE_SUBTITLE, mOnSubtitleTrackSelectedListener);
selectBestMatchedTrack(TvTrackInfo.TYPE_SUBTITLE);
} else {
mDvrPlayer.setOnTrackSelectedListener(TvTrackInfo.TYPE_SUBTITLE, null);
@@ -175,15 +184,18 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
updateVerticalPosition();
mPlaybackControlHelper.getHost().notifyPlaybackRowChanged();
}
- });
- mDvrPlayer.setOnAspectRatioChangedListener(new DvrPlayer.OnAspectRatioChangedListener() {
- @Override
- public void onAspectRatioChanged(float videoAspectRatio) {
- updateAspectRatio(videoAspectRatio);
- }
- });
- mPinChecked = getActivity().getIntent()
- .getBooleanExtra(Utils.EXTRA_KEY_RECORDED_PROGRAM_PIN_CHECKED, false);
+ });
+ mDvrPlayer.setOnAspectRatioChangedListener(
+ new DvrPlayer.OnAspectRatioChangedListener() {
+ @Override
+ public void onAspectRatioChanged(float videoAspectRatio) {
+ updateAspectRatio(videoAspectRatio);
+ }
+ });
+ mPinChecked =
+ getActivity()
+ .getIntent()
+ .getBooleanExtra(Utils.EXTRA_KEY_RECORDED_PROGRAM_PIN_CHECKED, false);
mDvrPlayer.setOnContentBlockedListener(
new DvrPlayer.OnContentBlockedListener() {
@Override
@@ -221,20 +233,25 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
PinDialogFragment.DIALOG_TAG);
}
});
- setOnItemViewClickedListener(new BaseOnItemViewClickedListener() {
- @Override
- public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
- RowPresenter.ViewHolder rowViewHolder, Object row) {
- if (itemViewHolder.view instanceof RecordingCardView) {
- setFadingEnabled(false);
- long programId = ((RecordedProgram) itemViewHolder.view.getTag()).getId();
- 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);
- }
- }
- });
+ setOnItemViewClickedListener(
+ new BaseOnItemViewClickedListener() {
+ @Override
+ public void onItemClicked(
+ Presenter.ViewHolder itemViewHolder,
+ Object item,
+ RowPresenter.ViewHolder rowViewHolder,
+ Object row) {
+ if (itemViewHolder.view instanceof RecordingCardView) {
+ setFadingEnabled(false);
+ long programId =
+ ((RecordedProgram) itemViewHolder.view.getTag()).getId();
+ 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);
+ }
+ }
+ });
if (mProgram != null) {
setUpRows();
preparePlayback(getActivity().getIntent());
@@ -265,9 +282,7 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
super.onDestroy();
}
- /**
- * Passes the intent to the fragment.
- */
+ /** Passes the intent to the fragment. */
public void onNewIntent(Intent intent) {
if (mDvrDataManager.isRecordedProgramLoadFinished() && handleIntent(intent, false)) {
preparePlayback(intent);
@@ -275,8 +290,8 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
}
/**
- * Should be called when windows' size is changed in order to notify DVR player
- * to update it's view width/height and position.
+ * Should be called when windows' size is changed in order to notify DVR player to update it's
+ * view width/height and position.
*/
public void onWindowSizeChanged(final int windowWidth, final int windowHeight) {
mWindowWidth = windowWidth;
@@ -285,9 +300,7 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
updateAspectRatio(mAppliedAspectRatio);
}
- /**
- * Returns next recorded episode in the same series as now playing program.
- */
+ /** Returns next recorded episode in the same series as now playing program. */
public RecordedProgram getNextEpisode(RecordedProgram program) {
int position = mRelatedRecordingsRowAdapter.findInsertPosition(program);
if (position == mRelatedRecordingsRowAdapter.size()) {
@@ -299,9 +312,9 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
/**
* Returns the tracks of the give type of the current playback.
-
- * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE}
- * or {@link TvTrackInfo#TYPE_AUDIO}. Or returns {@code null}.
+ *
+ * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE} or {@link
+ * TvTrackInfo#TYPE_AUDIO}. Or returns {@code null}.
*/
public ArrayList<TvTrackInfo> getTracks(int trackType) {
if (trackType == TvTrackInfo.TYPE_AUDIO) {
@@ -312,18 +325,16 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
return null;
}
- /**
- * Returns the ID of the selected track of the given type.
- */
+ /** Returns the ID of the selected track of the given type. */
public String getSelectedTrackId(int trackType) {
return mDvrPlayer.getSelectedTrackId(trackType);
}
/**
* Returns the language setting of the given track type.
-
- * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE}
- * or {@link TvTrackInfo#TYPE_AUDIO}.
+ *
+ * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE} or {@link
+ * TvTrackInfo#TYPE_AUDIO}.
* @return {@code null} if no language has been set for the given track type.
*/
TvTrackInfo getTrackSetting(int trackType) {
@@ -332,10 +343,11 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
/**
* Selects the given audio or subtitle track for DVR playback.
- * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE}
- * or {@link TvTrackInfo#TYPE_AUDIO}.
+ *
+ * @param trackType Should be {@link TvTrackInfo#TYPE_SUBTITLE} or {@link
+ * TvTrackInfo#TYPE_AUDIO}.
* @param selectedTrack {@code null} to disable the audio or subtitle track according to
- * trackType.
+ * trackType.
*/
void selectTrack(int trackType, TvTrackInfo selectedTrack) {
if (mDvrPlayer.isPlaybackPrepared()) {
@@ -346,8 +358,11 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
private boolean handleIntent(Intent intent, boolean finishActivity) {
mProgram = getProgramFromIntent(intent);
if (mProgram == null) {
- Toast.makeText(getActivity(), getString(R.string.dvr_program_not_found),
- Toast.LENGTH_SHORT).show();
+ Toast.makeText(
+ getActivity(),
+ getString(R.string.dvr_program_not_found),
+ Toast.LENGTH_SHORT)
+ .show();
if (finishActivity) {
getActivity().finish();
}
@@ -359,12 +374,18 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
private void selectBestMatchedTrack(int trackType) {
TvTrackInfo selectedTrack = getTrackSetting(trackType);
if (selectedTrack != null) {
- TvTrackInfo bestMatchedTrack = TvTrackInfoUtils.getBestTrackInfo(getTracks(trackType),
- selectedTrack.getId(), selectedTrack.getLanguage(),
- trackType == TvTrackInfo.TYPE_AUDIO ? selectedTrack.getAudioChannelCount() : 0);
- if (bestMatchedTrack != null && (trackType == TvTrackInfo.TYPE_AUDIO || Utils
- .isEqualLanguage(bestMatchedTrack.getLanguage(),
- selectedTrack.getLanguage()))) {
+ TvTrackInfo bestMatchedTrack =
+ TvTrackInfoUtils.getBestTrackInfo(
+ getTracks(trackType),
+ selectedTrack.getId(),
+ selectedTrack.getLanguage(),
+ trackType == TvTrackInfo.TYPE_AUDIO
+ ? selectedTrack.getAudioChannelCount()
+ : 0);
+ if (bestMatchedTrack != null
+ && (trackType == TvTrackInfo.TYPE_AUDIO
+ || Utils.isEqualLanguage(
+ bestMatchedTrack.getLanguage(), selectedTrack.getLanguage()))) {
selectTrack(trackType, bestMatchedTrack);
return;
}
@@ -421,7 +442,7 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
}
if (mRelatedRecordingsRowAdapter.size() == 0) {
mRowsAdapter.remove(mRelatedRecordingsRow);
- } else if (wasEmpty){
+ } else if (wasEmpty) {
mRowsAdapter.add(mRelatedRecordingsRow);
}
updateVerticalPosition();
@@ -446,8 +467,9 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
private ListRow getRelatedRecordingsRow() {
mRelatedRecordingCardPresenter = new DvrPlaybackCardPresenter(getActivity());
mRelatedRecordingsRowAdapter = new RelatedRecordingsAdapter(mRelatedRecordingCardPresenter);
- HeaderItem header = new HeaderItem(0,
- getActivity().getString(R.string.dvr_playback_related_recordings));
+ HeaderItem header =
+ new HeaderItem(
+ 0, getActivity().getString(R.string.dvr_playback_related_recordings));
return new ListRow(header, mRelatedRecordingsRowAdapter);
}
@@ -457,8 +479,8 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
}
private long getSeekTimeFromIntent(Intent intent) {
- return intent.getLongExtra(Utils.EXTRA_KEY_RECORDED_PROGRAM_SEEK_TIME,
- TvInputManager.TIME_SHIFT_INVALID_TIME);
+ return intent.getLongExtra(
+ Utils.EXTRA_KEY_RECORDED_PROGRAM_SEEK_TIME, TvInputManager.TIME_SHIFT_INVALID_TIME);
}
private void updateVerticalPosition() {
@@ -491,4 +513,4 @@ public class DvrPlaybackOverlayFragment extends PlaybackFragment {
return item.getId();
}
}
-} \ No newline at end of file
+}