SupportLeanbackDemo: Add test case for updating overview row

fixes b/17918639: no back activity transition when overview row updated.
Also hook up the playback actvity.

Change-Id: I52fe3808a1dc614df7d1f33f36de47ce9144e974
This commit is contained in:
Dake Gu
2014-10-29 14:39:37 -07:00
parent 0d574614cf
commit f66eadb5d4

View File

@@ -16,9 +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.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.view.ViewCompat;
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;
import android.support.v17.leanback.widget.ClassPresenterSelector; import android.support.v17.leanback.widget.ClassPresenterSelector;
@@ -35,13 +33,8 @@ import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast; import android.widget.Toast;
import java.util.ArrayList;
public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment { public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
private static final String TAG = "leanback.DetailsFragment"; private static final String TAG = "leanback.DetailsFragment";
private static final String ITEM = "item"; private static final String ITEM = "item";
@@ -50,6 +43,10 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
private ArrayObjectAdapter mRowsAdapter; private ArrayObjectAdapter mRowsAdapter;
private PhotoItem mPhotoItem; private PhotoItem mPhotoItem;
private static final int ACTION_BUY = 1;
private static final int ACTION_RENT = 2;
private static final int ACTION_PLAY = 3;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate"); Log.i(TAG, "onCreate");
@@ -59,8 +56,24 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
DetailsOverviewRowPresenter dorPresenter = DetailsOverviewRowPresenter dorPresenter =
new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter()); new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
dorPresenter.setOnActionClickedListener(new OnActionClickedListener() { dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
@Override
public void onActionClicked(Action action) { public void onActionClicked(Action action) {
Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
if (action.getId() == ACTION_BUY) {
DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle() + "(Owned)");
dor.setImageDrawable(getResources().getDrawable(mPhotoItem.getImageResourceId()));
dor.addAction(new Action(ACTION_PLAY, "Play"));
mRowsAdapter.replace(0, dor);
} else if (action.getId() == ACTION_RENT) {
DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle() + "(Rented)");
dor.setImageDrawable(getResources().getDrawable(mPhotoItem.getImageResourceId()));
dor.addAction(new Action(ACTION_PLAY, "Play"));
dor.addAction(new Action(ACTION_BUY, "Buy $9.99"));
mRowsAdapter.replace(0, dor);
} else if (action.getId() == ACTION_PLAY) {
Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class);
getActivity().startActivity(intent);
}
} }
}); });
@@ -114,10 +127,10 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
mRowsAdapter.clear(); mRowsAdapter.clear();
Resources res = getActivity().getResources(); Resources res = getActivity().getResources();
DetailsOverviewRow dor = new DetailsOverviewRow("Details Overview"); DetailsOverviewRow dor = new DetailsOverviewRow(photoItem.getTitle());
dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId())); dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId()));
dor.addAction(new Action(1, "Buy $9.99")); dor.addAction(new Action(ACTION_BUY, "Buy $9.99"));
dor.addAction(new Action(2, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a))); dor.addAction(new Action(ACTION_RENT, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
mRowsAdapter.add(dor); mRowsAdapter.add(dor);
final CardPresenter cardPresenter = new CardPresenter(); final CardPresenter cardPresenter = new CardPresenter();