SupportLeanbackDemo: add test case of Browse/Details enter return transition
b/17628884 Change-Id: Ia896d295dce1000313651426f077d88a1ae05ebd
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -15,6 +15,7 @@ package com.example.android.leanback;
|
||||
|
||||
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 @@ import android.view.ViewGroup;
|
||||
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 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
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 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
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 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user