SupportLeanbackDemo: add test of delayed detail entrance transition
b/17628884
Change-Id: Ic13424ae553b58dd93f9932dc50de00b4f876b02
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
index 660df4a..a73242b 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
@@ -67,7 +67,7 @@
if (TEST_ENTRANCE_TRANSITION) {
// don't run entrance transition if Activity is restored.
if (savedInstanceState == null) {
- setEntranceTransitionEnabled(true);
+ prepareEntranceTransition();
}
// simulate delay loading data
new Handler().postDelayed(new Runnable() {
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
index b7c0751..5354efd 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
@@ -16,6 +16,7 @@
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
+import android.os.Handler;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v17.leanback.widget.Action;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
@@ -42,11 +43,18 @@
private static final int NUM_ROWS = 3;
private ArrayObjectAdapter mRowsAdapter;
private PhotoItem mPhotoItem;
+ final CardPresenter cardPresenter = new CardPresenter();
private static final int ACTION_BUY = 1;
private static final int ACTION_RENT = 2;
private static final int ACTION_PLAY = 3;
+ private static final boolean TEST_SHARED_ELEMENT_TRANSITION = true;
+ private static final boolean TEST_ENTRANCE_TRANSITION = true;
+
+ private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
+ private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
+
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
@@ -87,8 +95,6 @@
if (item != null) {
setItem(item);
}
- dorPresenter.setSharedElementEnterTransition(getActivity(),
- DetailsActivity.SHARED_ELEMENT_NAME);
setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override
@@ -114,6 +120,17 @@
Log.i(TAG, "onItemSelected: " + item + " row " + row);
}
});
+
+ if (TEST_SHARED_ELEMENT_TRANSITION) {
+ dorPresenter.setSharedElementEnterTransition(getActivity(),
+ DetailsActivity.SHARED_ELEMENT_NAME);
+ }
+ if (TEST_ENTRANCE_TRANSITION) {
+ // don't run entrance transition if Activity is restored.
+ if (savedInstanceState == null) {
+ prepareEntranceTransition();
+ }
+ }
}
@Override
@@ -126,24 +143,34 @@
mPhotoItem = photoItem;
mRowsAdapter.clear();
- Resources res = getActivity().getResources();
- DetailsOverviewRow dor = new DetailsOverviewRow(photoItem.getTitle());
- dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId()));
- dor.addAction(new Action(ACTION_BUY, "Buy $9.99"));
- dor.addAction(new Action(ACTION_RENT, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
- mRowsAdapter.add(dor);
+ new Handler().postDelayed(new Runnable() {
+ public void run() {
+ Resources res = getActivity().getResources();
+ DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
+ dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
+ dor.addAction(new Action(ACTION_BUY, "Buy $9.99"));
+ dor.addAction(new Action(ACTION_RENT, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
+ mRowsAdapter.add(0, dor);
+ setSelectedPosition(0, false);
+ }
+ }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
- final CardPresenter cardPresenter = new CardPresenter();
- for (int i = 0; i < NUM_ROWS; ++i) {
- ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
- listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
- listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
- listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
- listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
- HeaderItem header = new HeaderItem(i, "Row " + i);
- mRowsAdapter.add(new ListRow(header, listRowAdapter));
- }
-
+ new Handler().postDelayed(new Runnable() {
+ public void run() {
+ for (int i = 0; i < NUM_ROWS; ++i) {
+ ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
+ listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
+ listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
+ listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
+ listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
+ HeaderItem header = new HeaderItem(i, "Row " + i, null);
+ mRowsAdapter.add(new ListRow(header, listRowAdapter));
+ }
+ if (TEST_ENTRANCE_TRANSITION) {
+ startEntranceTransition();
+ }
+ }
+ }, TIME_TO_LOAD_RELATED_ROWS_MS);
setAdapter(mRowsAdapter);
}