From f66eadb5d48ad0deeb373de9abf3ab053cdd9226 Mon Sep 17 00:00:00 2001 From: Dake Gu Date: Wed, 29 Oct 2014 14:39:37 -0700 Subject: [PATCH] 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 --- .../android/leanback/DetailsFragment.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java index 5cf086793..a5266452f 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 @@ 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();