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