From d67f91cc954ae963a226e555acca7f5b3d593d32 Mon Sep 17 00:00:00 2001 From: Craig Stout Date: Tue, 29 Jul 2014 16:05:04 -0700 Subject: [PATCH] More features. Add background. Add fading enable/disable. Add track switching. Change-Id: Ia3495a6ce98498c734cb225bec93403ac734c89c --- .../drawable-xhdpi/{grid_bg.png => bg.png} | Bin .../res/layout/playback_controls.xml | 21 ++++++++++---- .../leanback/PlaybackOverlayFragment.java | 27 ++++++++++++++---- .../leanback/VerticalGridActivity.java | 3 +- 4 files changed, 40 insertions(+), 11 deletions(-) rename samples/SupportLeanbackDemos/res/drawable-xhdpi/{grid_bg.png => bg.png} (100%) diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/grid_bg.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/bg.png similarity index 100% rename from samples/SupportLeanbackDemos/res/drawable-xhdpi/grid_bg.png rename to samples/SupportLeanbackDemos/res/drawable-xhdpi/bg.png diff --git a/samples/SupportLeanbackDemos/res/layout/playback_controls.xml b/samples/SupportLeanbackDemos/res/layout/playback_controls.xml index 357184cb4..0c9f43cbb 100644 --- a/samples/SupportLeanbackDemos/res/layout/playback_controls.xml +++ b/samples/SupportLeanbackDemos/res/layout/playback_controls.xml @@ -15,9 +15,20 @@ limitations under the License. --> - + android:layout_height="match_parent" > + + + + + + \ No newline at end of file diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java index 6c157c41b..74ab02cbb 100644 --- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java +++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java @@ -15,6 +15,7 @@ package com.example.android.leanback; import android.content.Context; import android.content.res.Resources; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.v17.leanback.widget.Action; @@ -28,6 +29,7 @@ import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsDownAction; import android.support.v17.leanback.widget.PlaybackControlsRow.ShuffleAction; import android.support.v17.leanback.widget.PlaybackControlsRowPresenter; import android.support.v17.leanback.widget.HeaderItem; +import android.support.v17.leanback.widget.VerticalGridView; import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.OnActionClickedListener; @@ -43,6 +45,7 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl private static final int PRIMARY_CONTROLS = 7; private static final boolean SHOW_IMAGE = PRIMARY_CONTROLS <= 5; private static final int TOTAL_TIME_MS = 15 * 1000; + private static final int BACKGROUND_TYPE = PlaybackOverlayFragment.BG_LIGHT; private static final int NUM_ROWS = 3; private ArrayObjectAdapter mRowsAdapter; @@ -54,6 +57,8 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl private ThumbsDownAction mThumbsDownAction; private ShuffleAction mShuffleAction; private PlaybackControlsRow mPlaybackControlsRow; + private Drawable mDetailsDrawable; + private Drawable mOtherDrawable; private Handler mHandler; private Runnable mRunnable; @@ -64,6 +69,9 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl mHandler = new Handler(); + setBackgroundType(BACKGROUND_TYPE); + setFadingEnabled(false); + setupRows(); } @@ -100,8 +108,10 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl mPlaybackControlsRow.setCurrentTime(0); } startProgressAutomation(); + setFadingEnabled(true); } else { stopProgressAutomation(); + setFadingEnabled(false); } } if (action instanceof PlaybackControlsRow.MultiAction) { @@ -134,8 +144,9 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl mPlaybackControlsRow = new PlaybackControlsRow(); } if (SHOW_IMAGE) { - mPlaybackControlsRow.setImageDrawable(context.getResources().getDrawable( - R.drawable.details_img)); + mDetailsDrawable = context.getResources().getDrawable(R.drawable.details_img); + mOtherDrawable = context.getResources().getDrawable(R.drawable.img16x9); + mPlaybackControlsRow.setImageDrawable(mDetailsDrawable); } mPlaybackControlsRow.setPrimaryActionsAdapter(mPrimaryActionsAdapter); mPlaybackControlsRow.setSecondaryActionsAdapter(mSecondaryActionsAdapter); @@ -193,10 +204,16 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl @Override public void run() { int currentTime = mPlaybackControlsRow.getCurrentTime() + updateFreq; - mPlaybackControlsRow.setCurrentTime(currentTime); - if (totalTime <= 0 || totalTime > currentTime) { - mHandler.postDelayed(this, updateFreq); + if (totalTime > 0 && totalTime <= currentTime) { + currentTime = 0; + mPlaybackControlsRow.setCurrentTime(0); + mPlaybackControlsRow.setImageDrawable( + mPlaybackControlsRow.getImageDrawable() == mDetailsDrawable ? + mOtherDrawable : mDetailsDrawable); + mRowsAdapter.notifyArrayItemRangeChanged(0, 1); } + mPlaybackControlsRow.setCurrentTime(currentTime); + mHandler.postDelayed(this, updateFreq); } }; mHandler.postDelayed(mRunnable, updateFreq); diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java index c5262b99d..5107be5f5 100644 --- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java +++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java @@ -24,6 +24,7 @@ public class VerticalGridActivity extends Activity { super.onCreate(savedInstanceState); setContentView(R.layout.vertical_grid); - getWindow().setBackgroundDrawableResource(R.drawable.grid_bg); + // TODO: use BackgroundManager here + getWindow().setBackgroundDrawableResource(R.drawable.bg); } }