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:
@@ -16,9 +16,7 @@ package com.example.android.leanback;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
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.ArrayObjectAdapter;
|
||||
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.RowPresenter;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
|
||||
private static final String TAG = "leanback.DetailsFragment";
|
||||
private static final String ITEM = "item";
|
||||
@@ -50,6 +43,10 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
||||
private ArrayObjectAdapter mRowsAdapter;
|
||||
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
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
Log.i(TAG, "onCreate");
|
||||
@@ -59,8 +56,24 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
||||
DetailsOverviewRowPresenter dorPresenter =
|
||||
new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
|
||||
dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
|
||||
@Override
|
||||
public void onActionClicked(Action action) {
|
||||
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();
|
||||
Resources res = getActivity().getResources();
|
||||
DetailsOverviewRow dor = new DetailsOverviewRow("Details Overview");
|
||||
DetailsOverviewRow dor = new DetailsOverviewRow(photoItem.getTitle());
|
||||
dor.setImageDrawable(res.getDrawable(photoItem.getImageResourceId()));
|
||||
dor.addAction(new Action(1, "Buy $9.99"));
|
||||
dor.addAction(new Action(2, "Rent", "$3.99", res.getDrawable(R.drawable.ic_action_a)));
|
||||
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);
|
||||
|
||||
final CardPresenter cardPresenter = new CardPresenter();
|
||||
|
||||
Reference in New Issue
Block a user