SupportLeanbackDemo: add test of delayed detail entrance transition
b/17628884 Change-Id: Ic13424ae553b58dd93f9932dc50de00b4f876b02
This commit is contained in:
@@ -67,7 +67,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
|||||||
if (TEST_ENTRANCE_TRANSITION) {
|
if (TEST_ENTRANCE_TRANSITION) {
|
||||||
// don't run entrance transition if Activity is restored.
|
// don't run entrance transition if Activity is restored.
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
setEntranceTransitionEnabled(true);
|
prepareEntranceTransition();
|
||||||
}
|
}
|
||||||
// simulate delay loading data
|
// simulate delay loading data
|
||||||
new Handler().postDelayed(new Runnable() {
|
new Handler().postDelayed(new Runnable() {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ package com.example.android.leanback;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.support.v4.app.ActivityOptionsCompat;
|
import android.support.v4.app.ActivityOptionsCompat;
|
||||||
import android.support.v17.leanback.widget.Action;
|
import android.support.v17.leanback.widget.Action;
|
||||||
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
||||||
@@ -42,11 +43,18 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
|||||||
private static final int NUM_ROWS = 3;
|
private static final int NUM_ROWS = 3;
|
||||||
private ArrayObjectAdapter mRowsAdapter;
|
private ArrayObjectAdapter mRowsAdapter;
|
||||||
private PhotoItem mPhotoItem;
|
private PhotoItem mPhotoItem;
|
||||||
|
final CardPresenter cardPresenter = new CardPresenter();
|
||||||
|
|
||||||
private static final int ACTION_BUY = 1;
|
private static final int ACTION_BUY = 1;
|
||||||
private static final int ACTION_RENT = 2;
|
private static final int ACTION_RENT = 2;
|
||||||
private static final int ACTION_PLAY = 3;
|
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
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
Log.i(TAG, "onCreate");
|
Log.i(TAG, "onCreate");
|
||||||
@@ -87,8 +95,6 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
|||||||
if (item != null) {
|
if (item != null) {
|
||||||
setItem(item);
|
setItem(item);
|
||||||
}
|
}
|
||||||
dorPresenter.setSharedElementEnterTransition(getActivity(),
|
|
||||||
DetailsActivity.SHARED_ELEMENT_NAME);
|
|
||||||
|
|
||||||
setOnItemViewClickedListener(new OnItemViewClickedListener() {
|
setOnItemViewClickedListener(new OnItemViewClickedListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -114,6 +120,17 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
|||||||
Log.i(TAG, "onItemSelected: " + item + " row " + row);
|
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
|
@Override
|
||||||
@@ -126,24 +143,34 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
|||||||
mPhotoItem = photoItem;
|
mPhotoItem = photoItem;
|
||||||
|
|
||||||
mRowsAdapter.clear();
|
mRowsAdapter.clear();
|
||||||
Resources res = getActivity().getResources();
|
new Handler().postDelayed(new Runnable() {
|
||||||
DetailsOverviewRow dor = new DetailsOverviewRow(photoItem.getTitle());
|
public void run() {
|
||||||
dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId()));
|
Resources res = getActivity().getResources();
|
||||||
dor.addAction(new Action(ACTION_BUY, "Buy $9.99"));
|
DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
|
||||||
dor.addAction(new Action(ACTION_RENT, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
|
dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
|
||||||
mRowsAdapter.add(dor);
|
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)));
|
||||||
final CardPresenter cardPresenter = new CardPresenter();
|
mRowsAdapter.add(0, dor);
|
||||||
for (int i = 0; i < NUM_ROWS; ++i) {
|
setSelectedPosition(0, false);
|
||||||
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
|
}
|
||||||
listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
|
}, TIME_TO_LOAD_OVERVIEW_ROW_MS);
|
||||||
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);
|
setAdapter(mRowsAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user