Add branding to DetailsFragment and TitleHelper with RowsFragment.

b/16029942

Change-Id: I4179245c110ce74ebd5e50d55432e8ed3332d52b
diff --git a/samples/SupportLeanbackDemos/res/layout/rows.xml b/samples/SupportLeanbackDemos/res/layout/rows.xml
index d77f7ca..664e41b8 100644
--- a/samples/SupportLeanbackDemos/res/layout/rows.xml
+++ b/samples/SupportLeanbackDemos/res/layout/rows.xml
@@ -15,22 +15,12 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<android.support.v17.leanback.widget.BrowseFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/rows_frame"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-  <TextView
-      android:id="@+id/rows_title"
-      android:text="RowsFragment"
-      style="?attr/browseTitleTextStyle"
-      android:paddingStart="?attr/browsePaddingStart"
-      android:paddingEnd="?attr/browsePaddingEnd"
-      android:paddingTop="?attr/browsePaddingTop"
-      android:paddingBottom="10dp"
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content" />
   <fragment
       android:name="com.example.android.leanback.RowsFragment"
       android:id="@+id/main_rows_fragment"
@@ -38,4 +28,9 @@
       android:layout_height="match_parent"
   />
 
-</FrameLayout>
+    <android.support.v17.leanback.widget.TitleView
+        android:id="@+id/title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+</android.support.v17.leanback.widget.BrowseFrameLayout>
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
index ab19e54..98f2188 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
@@ -35,6 +35,7 @@
 import android.support.v17.leanback.widget.RowPresenter;
 import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
 import android.util.Log;
+import android.view.View;
 import android.widget.Toast;
 
 public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
@@ -66,6 +67,16 @@
         Log.i(TAG, "onCreate");
         super.onCreate(savedInstanceState);
 
+        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
+        setTitle("Leanback Sample App");
+        setOnSearchClickedListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent(getActivity(), SearchActivity.class);
+                startActivity(intent);
+            }
+        });
+
         mActionPlay = new Action(ACTION_PLAY, "Play");
         mActionRent = new Action(ACTION_RENT, "Rent", "$3.99",
                 getResources().getDrawable(R.drawable.ic_action_a));
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java
index 133e995..e5b1ea1 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java
@@ -14,27 +14,45 @@
 package com.example.android.leanback;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v17.leanback.R;
-import android.view.LayoutInflater;
+import android.support.v17.leanback.widget.BrowseFrameLayout;
+import android.support.v17.leanback.widget.TitleHelper;
+import android.support.v17.leanback.widget.TitleView;
 import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
 
-public class RowsActivity extends Activity implements RowsFragment.OnRowsFirstLineSelectedListener
+public class RowsActivity extends Activity
 {
-    TextView mTitleView;
+    private RowsFragment mRowsFragment;
+    private TitleHelper mTitleHelper;
+
     /** Called when the activity is first created. */
     @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.rows);
-        mTitleView = (TextView) findViewById(R.id.rows_title);
+
+        mRowsFragment = (RowsFragment) getFragmentManager().findFragmentById(
+                R.id.main_rows_fragment);
+
+        setupTitleFragment();
     }
 
-    @Override
-    public void onSelectedFirstRow(boolean firstRow) {
-        mTitleView.setVisibility(firstRow ? View.VISIBLE : View.INVISIBLE);
+    private void setupTitleFragment() {
+        TitleView titleView = (TitleView) findViewById(R.id.title);
+        titleView.setTitle("RowsFragment");
+        titleView.setOnSearchClickedListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent(RowsActivity.this, SearchActivity.class);
+                startActivity(intent);
+            }
+        });
+
+        BrowseFrameLayout frameLayout = (BrowseFrameLayout) findViewById(R.id.rows_frame);
+        mTitleHelper = new TitleHelper(frameLayout, titleView);
+        frameLayout.setOnFocusSearchListener(mTitleHelper.getOnFocusSearchListener());
+        mRowsFragment.setTitleHelper(mTitleHelper);
     }
 }
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java
index bf08402..29b5e30 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java
@@ -16,6 +16,8 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.v17.leanback.widget.TitleHelper;
+import android.support.v17.leanback.widget.TitleView;
 import android.support.v4.app.ActivityOptionsCompat;
 import android.support.v17.leanback.R;
 import android.support.v17.leanback.widget.ArrayObjectAdapter;
@@ -35,10 +37,6 @@
 
 public class RowsFragment extends android.support.v17.leanback.app.RowsFragment {
 
-    public static interface OnRowsFirstLineSelectedListener {
-        void onSelectedFirstRow(boolean firstRow);
-    }
-
     private static final String TAG = "leanback.RowsFragment";
 
     private static final int NUM_ROWS = 10;
@@ -46,7 +44,11 @@
     private static final boolean USE_FIXED_ROW_HEIGHT = false;
 
     private ArrayObjectAdapter mRowsAdapter;
-    private OnRowsFirstLineSelectedListener mCallback;
+    private TitleHelper mTitleHelper;
+
+    public void setTitleHelper(TitleHelper titleHelper) {
+        mTitleHelper = titleHelper;
+    }
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -60,28 +62,14 @@
             public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
                     RowPresenter.ViewHolder rowViewHolder, Row row) {
                 Log.i(TAG, "onItemSelected: " + item + " row " + row);
-                if (mCallback == null) {
-                    return;
-                }
-                if (mRowsAdapter != null && mRowsAdapter.size() > 0 && row != null &&
-                        row != mRowsAdapter.get(0)) {
-                    mCallback.onSelectedFirstRow(false);
-                } else {
-                    mCallback.onSelectedFirstRow(true);
+                if (mTitleHelper != null) {
+                    mTitleHelper.showTitle(getAdapter() == null || getAdapter().size() == 0 ||
+                            getAdapter().get(0) == row);
                 }
             }
         });
     }
 
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        // This makes sure that the container activity has implemented
-        if (activity instanceof OnRowsFirstLineSelectedListener) {
-            mCallback = (OnRowsFirstLineSelectedListener) activity;
-        }
-    }
-
     private void setupRows() {
         ListRowPresenter lrp = new ListRowPresenter();