Add branding to DetailsFragment and TitleHelper with RowsFragment.

b/16029942

Change-Id: I4179245c110ce74ebd5e50d55432e8ed3332d52b
This commit is contained in:
Craig Stout
2015-02-26 20:58:20 -08:00
parent 3dbe2f827c
commit 3da78ae74d
4 changed files with 57 additions and 45 deletions

View File

@@ -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>

View File

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

View File

@@ -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);
}
}

View File

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