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();