Add callbacks for actions in details.

Change-Id: I5d56e65c45c686fa1b4a686d67f27fb316f9ddf9
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
index b1b3638..00e93f9 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
@@ -13,11 +13,14 @@
  */
 package com.example.android.leanback;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v17.leanback.widget.ArrayObjectAdapter;
 import android.support.v17.leanback.widget.HeaderItem;
 import android.support.v17.leanback.widget.ListRow;
 import android.support.v17.leanback.widget.ListRowPresenter;
+import android.support.v17.leanback.widget.OnItemClickedListener;
+import android.support.v17.leanback.widget.Row;
 import android.util.Log;
 
 public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
@@ -38,12 +41,12 @@
         setBrowseParams(p);
 
         setupRows();
+        setOnItemClickedListener(new ItemClickedListener());
     }
 
     private void setupRows() {
         mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
 
-
         for (int i = 0; i < NUM_ROWS; ++i) {
             ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
             listRowAdapter.add("Hello world");
@@ -54,4 +57,13 @@
 
         setAdapter(mRowsAdapter);
     }
+
+    private final class ItemClickedListener implements OnItemClickedListener {
+        public void onItemClicked(Object item, Row row) {
+            // TODO: use a fragment transaction instead of launching a new
+            // activity
+            Intent intent = new Intent(getActivity(), DetailsActivity.class);
+            startActivity(intent);
+        }
+    }
 }
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
index 70a692b..c9a85f3 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
@@ -23,7 +23,9 @@
 import android.support.v17.leanback.widget.HeaderItem;
 import android.support.v17.leanback.widget.ListRow;
 import android.support.v17.leanback.widget.ListRowPresenter;
+import android.support.v17.leanback.widget.OnActionClickedListener;
 import android.util.Log;
+import android.widget.Toast;
 
 public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
     private static final String TAG = "leanback.BrowseFragment";
@@ -41,8 +43,15 @@
 
     private void setupRows() {
         ClassPresenterSelector ps = new ClassPresenterSelector();
-        ps.addClassPresenter(DetailsOverviewRow.class,
-                new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter()));
+        DetailsOverviewRowPresenter dorPresenter =
+            new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
+        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
+            public void onActionClicked(Action action) {
+                Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
+            }
+        });
+
+        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
         ps.addClassPresenter(ListRow.class,
                 new ListRowPresenter());
         mRowsAdapter = new ArrayObjectAdapter(ps);