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.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();
|
||||||
|
|||||||
Reference in New Issue
Block a user