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
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
index 5cf0867..a526645 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
@@ -16,9 +16,7 @@
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.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 @@
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 @@
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 @@
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();