diff --git a/samples/SupportLeanbackDemos/res/layout/rows.xml b/samples/SupportLeanbackDemos/res/layout/rows.xml index d77f7cacc..664e41b81 100644 --- a/samples/SupportLeanbackDemos/res/layout/rows.xml +++ b/samples/SupportLeanbackDemos/res/layout/rows.xml @@ -15,22 +15,12 @@ limitations under the License. --> - - - + + + diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java index ab19e5422..98f218841 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.Row; 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 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra 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 133e99506..e5b1ea130 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 bf0840269..29b5e304e 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 @@ package com.example.android.leanback; 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 @@ import android.view.ViewGroup; 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 @@ public class RowsFragment extends android.support.v17.leanback.app.RowsFragment 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 class RowsFragment extends android.support.v17.leanback.app.RowsFragment 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();