diff --git a/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml b/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml index ec5220bc7..df351806c 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml @@ -17,7 +17,7 @@ android:icon="@mipmap/app_banner_sample_app" android:label="@string/app_name" android:largeHeap="true" - android:theme="@style/Theme.Example.Leanback"> + android:theme="@style/Theme.Example.LeanbackLauncher"> + + + + diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java index 42a7cc7e0..643259def 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java @@ -14,29 +14,23 @@ package android.support.v17.leanback.supportleanbackshowcase.app; -import android.app.Fragment; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.os.Handler; -import android.support.v17.leanback.app.BackgroundManager; import android.support.v17.leanback.app.BrowseFragment; +import android.support.v17.leanback.supportleanbackshowcase.R; +import android.support.v17.leanback.supportleanbackshowcase.app.cards.CardExampleActivity; import android.support.v17.leanback.supportleanbackshowcase.app.details.DetailViewExampleActivity; import android.support.v17.leanback.supportleanbackshowcase.app.dialog.DialogExampleActivity; -import android.support.v17.leanback.supportleanbackshowcase.app.media.MusicConsumptionExampleFragment; -import android.support.v17.leanback.supportleanbackshowcase.app.media.VideoConsumptionExampleFragment; -import android.support.v17.leanback.supportleanbackshowcase.app.media.VideoSurfaceFragment; +import android.support.v17.leanback.supportleanbackshowcase.app.grid.GridExampleActivity; +import android.support.v17.leanback.supportleanbackshowcase.app.media.MusicExampleActivity; +import android.support.v17.leanback.supportleanbackshowcase.app.media.VideoExampleActivity; import android.support.v17.leanback.supportleanbackshowcase.app.settings.SettingsExampleActivity; import android.support.v17.leanback.supportleanbackshowcase.app.wizard.WizardExampleActivity; -import android.support.v17.leanback.supportleanbackshowcase.utils.Constants; -import android.support.v17.leanback.supportleanbackshowcase.models.Movie; -import android.support.v17.leanback.supportleanbackshowcase.utils.PicassoBackgroundManagerTarget; -import android.support.v17.leanback.supportleanbackshowcase.R; -import android.support.v17.leanback.supportleanbackshowcase.utils.Utils; +import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector; import android.support.v17.leanback.supportleanbackshowcase.models.Card; import android.support.v17.leanback.supportleanbackshowcase.models.CardRow; -import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector; +import android.support.v17.leanback.supportleanbackshowcase.models.Movie; +import android.support.v17.leanback.supportleanbackshowcase.utils.Utils; import android.support.v17.leanback.widget.ArrayObjectAdapter; import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRowPresenter; @@ -46,50 +40,23 @@ import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.PresenterSelector; import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.RowPresenter; -import android.util.DisplayMetrics; -import android.util.Log; import com.google.gson.Gson; -import com.squareup.picasso.Picasso; -import com.squareup.picasso.Target; - -import java.net.URI; -import java.util.Timer; -import java.util.TimerTask; public class MainFragment extends BrowseFragment { - public static final String VIDEO_SURFACE_FRAGMENT_TAG = "VIDEO_SURFACE"; - private static final String TAG = "MainFragment"; - private static final int BACKGROUND_UPDATE_DELAY = 300; - private static final int DEFAULT_BACKGROUND_IMAGE = R.drawable.default_background; - private final Handler mHandler = new Handler(); private ArrayObjectAdapter mRowsAdapter; - private Target mBackgroundTarget; - private Timer mBackgroundTimer; - private URI mBackgroundURI; - private BackgroundManager mBackgroundManager; - private DisplayMetrics mMetrics; - @Override public void onActivityCreated(Bundle savedInstanceState) { - if (Constants.LOCAL_LOGD) Log.d(TAG, "onActivityCreated"); + @Override + public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - setupBackgroundManager(); setupUIElements(); setupRowAdapter(); setupEventListeners(); } - @Override public void onDestroy() { - super.onDestroy(); - if (null != mBackgroundTimer) { - if (Constants.LOCAL_LOGD) Log.d(TAG, "onDestroy: " + mBackgroundTimer.toString()); - mBackgroundTimer.cancel(); - } - } - private void setupRowAdapter() { mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); createRows(); @@ -114,18 +81,6 @@ public class MainFragment extends BrowseFragment { return new ListRow(listRowAdapter); } - private void setupBackgroundManager() { - mBackgroundManager = BackgroundManager.getInstance(getActivity()); - mBackgroundManager.setThemeDrawableResourceId(DEFAULT_BACKGROUND_IMAGE); - mBackgroundManager.attach(getActivity().getWindow()); - - mBackgroundTarget = new PicassoBackgroundManagerTarget(mBackgroundManager); - mMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics); - getView().setBackgroundResource(R.drawable.bg_living_room_wide); - //updateBackgroundImage(R.drawable.bg_living_room_wide); - } - private void setupUIElements() { setTitle(getString(R.string.browse_title)); setBadgeDrawable(getResources().getDrawable(R.drawable.title_android_tv, null)); @@ -139,53 +94,24 @@ public class MainFragment extends BrowseFragment { setOnItemViewSelectedListener(new ItemViewSelectedListener()); } - protected void updateBackgroundImage(URI uri) { - // Deactivated until we decide whether to load a background image from an URL or resource. @hahnr - if (true) return; - Picasso.with(getActivity()).load(uri.toString()) - .resize(mMetrics.widthPixels, mMetrics.heightPixels).centerCrop() - .error(DEFAULT_BACKGROUND_IMAGE).into(mBackgroundTarget); - } - - protected void updateBackgroundImage(Drawable drawable) { - mBackgroundManager.setDrawable(drawable); - } - - protected void updateBackgroundImage(int resId) { - mBackgroundManager.setDrawable(getResources().getDrawable(resId, null)); - } - - private void startBackgroundTimer() { - if (null != mBackgroundTimer) { - mBackgroundTimer.cancel(); - } - mBackgroundTimer = new Timer(); - mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY); - } - private final class ItemViewClickedListener implements OnItemViewClickedListener { - @Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, - RowPresenter.ViewHolder rowViewHolder, Row row) { + @Override + public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, + RowPresenter.ViewHolder rowViewHolder, Row row) { Card card = (Card) item; int id = card.getId(); switch (id) { case 0: { - updateBackgroundImage(new ColorDrawable( - getResources().getColor(R.color.card_examples_background))); - Fragment fragment = new CardExampleFragment(); - getFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, fragment) - .addToBackStack(null).commit(); + Intent intent = new Intent(getActivity().getBaseContext(), + CardExampleActivity.class); + startActivity(intent); break; } case 2: { - updateBackgroundImage( - getResources().getDrawable(R.drawable.background_canyon, null)); - Fragment fragment = new GridExample(); - getFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, fragment) - .addToBackStack(null).commit(); + Intent intent = new Intent(getActivity().getBaseContext(), + GridExampleActivity.class); + startActivity(intent); break; } case 3: { @@ -195,23 +121,15 @@ public class MainFragment extends BrowseFragment { break; } case 4: { - updateBackgroundImage( - getResources().getDrawable(R.drawable.background_canyon, null)); - Fragment fragment = new VideoConsumptionExampleFragment(); - getFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, new VideoSurfaceFragment(), - VIDEO_SURFACE_FRAGMENT_TAG) - .add(R.id.fragmentContainer, fragment).addToBackStack(null) - .commit(); + Intent intent = new Intent(getActivity().getBaseContext(), + VideoExampleActivity.class); + startActivity(intent); break; } case 5: { - updateBackgroundImage( - getResources().getDrawable(R.drawable.background_sax, null)); - Fragment fragment = new MusicConsumptionExampleFragment(); - getFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, fragment) - .addToBackStack(null).commit(); + Intent intent = new Intent(getActivity().getBaseContext(), + MusicExampleActivity.class); + startActivity(intent); break; } case 6: { @@ -254,21 +172,9 @@ public class MainFragment extends BrowseFragment { private final class ItemViewSelectedListener implements OnItemViewSelectedListener { - @Override public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, - RowPresenter.ViewHolder rowViewHolder, Row row) { - } - } - - private class UpdateBackgroundTask extends TimerTask { - - @Override public void run() { - mHandler.post(new Runnable() { - @Override public void run() { - if (mBackgroundURI != null) { - updateBackgroundImage(mBackgroundURI); - } - } - }); + @Override + public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, + RowPresenter.ViewHolder rowViewHolder, Row row) { } } } diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java new file mode 100644 index 000000000..7b8225fe7 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package android.support.v17.leanback.supportleanbackshowcase.app.cards; + +import android.app.Activity; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.support.v17.leanback.app.GuidedStepFragment; +import android.support.v17.leanback.supportleanbackshowcase.R; +import android.support.v17.leanback.supportleanbackshowcase.app.dialog.DialogExampleFragment; + +/** + * TODO: Javadoc + */ +public class CardExampleActivity extends Activity { + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cards_example); + } +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/CardExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java similarity index 98% rename from samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/CardExampleFragment.java rename to samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java index 7e1646f09..a7b3f9771 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/CardExampleFragment.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java @@ -12,7 +12,7 @@ * the License. */ -package android.support.v17.leanback.supportleanbackshowcase.app; +package android.support.v17.leanback.supportleanbackshowcase.app.cards; import android.os.Bundle; import android.support.v17.leanback.app.BrowseFragment; @@ -39,8 +39,6 @@ import com.google.gson.Gson; */ public class CardExampleFragment extends BrowseFragment { - private static final String TAG = "CardExampleFragment"; - private ArrayObjectAdapter mRowsAdapter; @Override public void onActivityCreated(Bundle savedInstanceState) { diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java index 9c541e237..7f9e77a30 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java @@ -148,7 +148,7 @@ public class DetailViewExampleFragment extends DetailsFragment implements OnItem null); getView().setBackgroundColor(backgroundColor); } else { - getView().setBackgroundResource(R.drawable.background_canyon); + getView().setBackground(null); } } } diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/GridExample.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExample.java similarity index 97% rename from samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/GridExample.java rename to samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExample.java index 1c6177ff1..e8cf3eba3 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/GridExample.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExample.java @@ -12,7 +12,7 @@ * the License. */ -package android.support.v17.leanback.supportleanbackshowcase.app; +package android.support.v17.leanback.supportleanbackshowcase.app.grid; import android.os.Bundle; import android.support.v17.leanback.app.VerticalGridFragment; @@ -32,9 +32,8 @@ import com.google.gson.Gson; */ public class GridExample extends VerticalGridFragment { - private static final String TAG = "GridExample"; private static final int COLUMNS = 4; - private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_NONE; + private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_MEDIUM; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java new file mode 100644 index 000000000..e2d0887af --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package android.support.v17.leanback.supportleanbackshowcase.app.grid; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v17.leanback.supportleanbackshowcase.R; + +/** + * TODO: Javadoc + */ +public class GridExampleActivity extends Activity { + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_grid_example); + } +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java new file mode 100644 index 000000000..3107ed615 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package android.support.v17.leanback.supportleanbackshowcase.app.media; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v17.leanback.supportleanbackshowcase.R; + +/** + * TODO: Javadoc + */ +public class MusicExampleActivity extends Activity { + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_music_example); + } +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java index 991a95f39..9a40635cf 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java @@ -37,12 +37,14 @@ public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment imp private ArrayObjectAdapter mRowsAdapter; private MediaPlayerGlue mGlue; - @Override public void onCreate(Bundle savedInstanceState) { + @Override + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mGlue = new VideoMediaPlayerGlue(getActivity(), this) { - @Override protected void onRowChanged(PlaybackControlsRow row) { + @Override + protected void onRowChanged(PlaybackControlsRow row) { if (mRowsAdapter == null) return; mRowsAdapter.notifyArrayItemRangeChanged(0, 1); } @@ -55,10 +57,11 @@ public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment imp mGlue.setMediaSource(URL); Fragment videoSurfaceFragment = getFragmentManager() - .findFragmentByTag(MainFragment.VIDEO_SURFACE_FRAGMENT_TAG); + .findFragmentByTag(VideoExampleActivity.VIDEO_SURFACE_FRAGMENT_TAG); SurfaceView surface = (SurfaceView) videoSurfaceFragment.getView(); surface.getHolder().addCallback(new SurfaceHolder.Callback() { - @Override public void surfaceCreated(SurfaceHolder holder) { + @Override + public void surfaceCreated(SurfaceHolder holder) { mGlue.setDisplay(holder); } @@ -67,7 +70,8 @@ public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment imp // Nothing to do } - @Override public void surfaceDestroyed(SurfaceHolder holder) { + @Override + public void surfaceDestroyed(SurfaceHolder holder) { } }); @@ -75,12 +79,14 @@ public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment imp addPlaybackControlsRow(); } - @Override public void onStart() { + @Override + public void onStart() { super.onStart(); mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying()); } - @Override public void onStop() { + @Override + public void onStop() { super.onStop(); mGlue.enableProgressUpdating(false); mGlue.reset(); @@ -95,14 +101,16 @@ public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment imp setOnItemViewClickedListener(this); } - @Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, - RowPresenter.ViewHolder rowViewHolder, Row row) { + @Override + public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, + RowPresenter.ViewHolder rowViewHolder, Row row) { if (!(item instanceof Action)) return; mGlue.onActionClicked((Action) item); } - @Override public void onMediaFileFinishedPlaying(MediaPlayerGlue.MetaData metaData) { + @Override + public void onMediaFileFinishedPlaying(MediaPlayerGlue.MetaData metaData) { mGlue.startPlayback(); } diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java new file mode 100644 index 000000000..63eef8219 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package android.support.v17.leanback.supportleanbackshowcase.app.media; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v17.leanback.supportleanbackshowcase.R; + +/** + * TODO: Javadoc + */ +public class VideoExampleActivity extends Activity { + + public static final String VIDEO_SURFACE_FRAGMENT_TAG = "VIDEO_SURFACE"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_video_example); + + + getFragmentManager().beginTransaction() + .replace(R.id.videoFragment, new VideoSurfaceFragment(), VIDEO_SURFACE_FRAGMENT_TAG) + .add(R.id.videoFragment, new VideoConsumptionExampleFragment()) + .commit(); + } +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java index 72766d1c2..b9bb77f6a 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java @@ -18,7 +18,6 @@ import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.support.v14.preference.PreferenceFragment; -import android.support.v17.leanback.supportleanbackshowcase.utils.Constants; import android.support.v17.leanback.supportleanbackshowcase.R; import android.support.v17.preference.LeanbackPreferenceFragment; import android.support.v17.preference.LeanbackSettingsFragment; @@ -26,13 +25,13 @@ import android.support.v7.preference.DialogPreference; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; -import android.util.Log; +import android.widget.Toast; +import java.util.Arrays; import java.util.Stack; public class SettingsExampleFragment extends LeanbackSettingsFragment implements DialogPreference.TargetFragment { - public static final String TAG = "SettingsExampleFragment"; private final Stack fragments = new Stack(); @Override @@ -50,12 +49,6 @@ public class SettingsExampleFragment extends LeanbackSettingsFragment implements public boolean onPreferenceStartScreen(PreferenceFragment preferenceFragment, PreferenceScreen preferenceScreen) { PreferenceFragment frag = buildPreferenceFragment(R.xml.prefs, preferenceScreen.getKey()); - if ("prefs_wifi_screen_key".equals(preferenceScreen.getKey())) { - ListPreference pref = (ListPreference)preferenceScreen.findPreference("prefs_wifi_key"); - pref.setEntries(new String[] {"Wi-Fi Network 01"}); - pref.setEntryValues(new String[] {"01"}); - if (Constants.LOCAL_LOGD) Log.d(TAG, "pref: " + pref); - } startPreferenceFragment(frag); return true; } @@ -87,6 +80,18 @@ public class SettingsExampleFragment extends LeanbackSettingsFragment implements } } + @Override + public boolean onPreferenceTreeClick(Preference preference) { + final String[] keys = {"prefs_wifi_connect_wps", "prefs_date", "prefs_time", + "prefs_date_time_use_timezone", "app_banner_sample_app", "pref_force_stop", + "pref_uninstall", "pref_more_info"}; + if (Arrays.asList(keys).contains(preference.getKey())) { + Toast.makeText(getActivity(), "Implement your own action handler.", Toast.LENGTH_SHORT).show(); + return true; + } + return super.onPreferenceTreeClick(preference); + } + @Override public void onAttach(Context context) { fragments.push(this); diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg new file mode 100644 index 000000000..cbe05f83b Binary files /dev/null and b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg differ diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml new file mode 100644 index 000000000..cbcfe0539 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml @@ -0,0 +1,27 @@ + + + + + + \ No newline at end of file diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml index 1dd92d8c9..cb7d66954 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml @@ -16,6 +16,7 @@ --> + + + + + \ No newline at end of file diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml index 9d2eda6c7..e3c6889e2 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml @@ -21,5 +21,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:deviceIds="tv" + android:background="@drawable/bg_living_room_wide" tools:ignore="MergeRootFrame"> diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml new file mode 100644 index 000000000..30f150161 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml @@ -0,0 +1,27 @@ + + + + + + \ No newline at end of file diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml new file mode 100644 index 000000000..89e4e6e51 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml index f4877e823..9933ba7e1 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml @@ -33,4 +33,12 @@ This description becomes visible only on focus. This description becomes visible only on focus. + + Wi-Fi network 1 + Wi-Fi network 2 + Wi-Fi network 3 + Wi-Fi network 4 + Wi-Fi network 5 + Wi-Fi network 6 + \ No newline at end of file diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml index 490f442d1..6739eafd7 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml @@ -42,6 +42,10 @@ invisible + + diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml index 8d5551592..086ae2341 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml @@ -23,11 +23,15 @@ true true true - @color/search_color + #00A2B8 @color/accent @style/PreferenceThemeOverlay.v14 + + diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml b/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml index 71cd5320d..e69c4e2d5 100644 --- a/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml +++ b/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml @@ -1,5 +1,6 @@ - + + - - - - + - - - - + + + + + + + +