Merge "SupportLeanbackDemo: add test case of Browse/Details enter return transition" into lmp-mr1-dev
diff --git a/samples/SupportLeanbackDemos/AndroidManifest.xml b/samples/SupportLeanbackDemos/AndroidManifest.xml
index 95f7a2c..68016c5 100644
--- a/samples/SupportLeanbackDemos/AndroidManifest.xml
+++ b/samples/SupportLeanbackDemos/AndroidManifest.xml
@@ -13,7 +13,8 @@
android:theme="@style/Theme.Example.Leanback">
<activity android:name="MainActivity"
- android:label="@string/app_name">
+ android:label="@string/app_name"
+ android:theme="@style/Theme.Example.Leanback.Browse">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
@@ -25,6 +26,7 @@
</activity>
<activity android:name="DetailsActivity"
+ android:theme="@style/Theme.Example.Leanback.Details"
android:exported="true" />
<activity android:name="PlaybackOverlayActivity"
diff --git a/samples/SupportLeanbackDemos/res/values/themes.xml b/samples/SupportLeanbackDemos/res/values/themes.xml
index 121e25c..25eb47f 100644
--- a/samples/SupportLeanbackDemos/res/values/themes.xml
+++ b/samples/SupportLeanbackDemos/res/values/themes.xml
@@ -10,4 +10,8 @@
<item name="android:windowContentTransitions">true</item>
-->
</style>
+ <style name="Theme.Example.Leanback.Browse" parent="Theme.Leanback.Browse">
+ </style>
+ <style name="Theme.Example.Leanback.Details" parent="Theme.Leanback.Details">
+ </style>
</resources>
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
index 6ce5111..c44812b 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
@@ -15,6 +15,7 @@
import android.content.Intent;
import android.os.Bundle;
+import android.os.Handler;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.HeaderItem;
@@ -33,6 +34,7 @@
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
private static final String TAG = "leanback.BrowseFragment";
+ private static final boolean TEST_ENTRANCE_TRANSITION = true;
private static final int NUM_ROWS = 10;
private ArrayObjectAdapter mRowsAdapter;
@@ -62,6 +64,18 @@
Log.i(TAG, "onItemSelected: " + item + " row " + row);
}
});
+ if (TEST_ENTRANCE_TRANSITION) {
+ // don't run entrance transition if Activity is restored.
+ if (savedInstanceState == null) {
+ setEntranceTransitionEnabled(true);
+ }
+ // simulate delay loading data
+ new Handler().postDelayed(new Runnable() {
+ public void run() {
+ startEntranceTransition();
+ }
+ }, 2000);
+ }
}
private void setupRows() {
@@ -84,7 +98,7 @@
listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem("This is a test", "Only a test", R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem("Android TV", "by Google", R.drawable.gallery_photo_7));
- listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_8));
+ listRowAdapter.add(new PhotoItem("Leanback", "click to open MainActivity", R.drawable.gallery_photo_8));
HeaderItem header = new HeaderItem(i, "Row " + i, null);
mRowsAdapter.add(new ListRow(header, listRowAdapter));
}
@@ -96,13 +110,21 @@
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
- Intent intent = new Intent(getActivity(), DetailsActivity.class);
- intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
- Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
- getActivity(),
- ((ImageCardView)itemViewHolder.view).getMainImageView(),
- DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+ Intent intent;
+ Bundle bundle;
+ if ( ((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
+ intent = new Intent(getActivity(), MainActivity.class);
+ bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
+ .toBundle();
+ } else {
+ intent = new Intent(getActivity(), DetailsActivity.class);
+ intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
+ bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
+ getActivity(),
+ ((ImageCardView)itemViewHolder.view).getMainImageView(),
+ DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+ }
getActivity().startActivity(intent, bundle);
}
}