171e7e67f320b23feac784b629db17b3bcce08722Dake Gu/* This file is auto-generated from RowsFragment.java. DO NOT MODIFY. */ 271e7e67f320b23feac784b629db17b3bcce08722Dake Gu 371e7e67f320b23feac784b629db17b3bcce08722Dake Gu/* 471e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Copyright (C) 2014 The Android Open Source Project 571e7e67f320b23feac784b629db17b3bcce08722Dake Gu * 671e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 771e7e67f320b23feac784b629db17b3bcce08722Dake Gu * in compliance with the License. You may obtain a copy of the License at 871e7e67f320b23feac784b629db17b3bcce08722Dake Gu * 971e7e67f320b23feac784b629db17b3bcce08722Dake Gu * http://www.apache.org/licenses/LICENSE-2.0 1071e7e67f320b23feac784b629db17b3bcce08722Dake Gu * 1171e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Unless required by applicable law or agreed to in writing, software distributed under the License 1271e7e67f320b23feac784b629db17b3bcce08722Dake Gu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 1371e7e67f320b23feac784b629db17b3bcce08722Dake Gu * or implied. See the License for the specific language governing permissions and limitations under 1471e7e67f320b23feac784b629db17b3bcce08722Dake Gu * the License. 1571e7e67f320b23feac784b629db17b3bcce08722Dake Gu */ 1671e7e67f320b23feac784b629db17b3bcce08722Dake Gupackage com.example.android.leanback; 1771e7e67f320b23feac784b629db17b3bcce08722Dake Gu 1871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.content.Intent; 1971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Bundle; 2071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ArrayObjectAdapter; 2171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.HeaderItem; 2271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ImageCardView; 2371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRow; 2471e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRowPresenter; 2571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewClickedListener; 2671e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewSelectedListener; 2771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Presenter; 2871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Row; 2971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.RowPresenter; 30c632bd20d83c175e76ee109e50d844cefce2a2ccAlan Viveretteimport android.support.v17.leanback.widget.TitleHelper; 31c632bd20d83c175e76ee109e50d844cefce2a2ccAlan Viveretteimport android.support.v4.app.ActivityOptionsCompat; 3271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.util.Log; 3371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3471e7e67f320b23feac784b629db17b3bcce08722Dake Gupublic class RowsSupportFragment extends android.support.v17.leanback.app.RowsSupportFragment { 3571e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3671e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final String TAG = "leanback.RowsSupportFragment"; 3771e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3871e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final int NUM_ROWS = 10; 3971e7e67f320b23feac784b629db17b3bcce08722Dake Gu // Row heights default to wrap content 4071e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final boolean USE_FIXED_ROW_HEIGHT = false; 4171e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4271e7e67f320b23feac784b629db17b3bcce08722Dake Gu private ArrayObjectAdapter mRowsAdapter; 4371e7e67f320b23feac784b629db17b3bcce08722Dake Gu private TitleHelper mTitleHelper; 4471e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4571e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void setTitleHelper(TitleHelper titleHelper) { 4671e7e67f320b23feac784b629db17b3bcce08722Dake Gu mTitleHelper = titleHelper; 4771e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 4871e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4971e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 5071e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onCreate(Bundle savedInstanceState) { 5171e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, "onCreate"); 5271e7e67f320b23feac784b629db17b3bcce08722Dake Gu super.onCreate(savedInstanceState); 5371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 5471e7e67f320b23feac784b629db17b3bcce08722Dake Gu setupRows(); 5571e7e67f320b23feac784b629db17b3bcce08722Dake Gu setOnItemViewClickedListener(new ItemViewClickedListener()); 5671e7e67f320b23feac784b629db17b3bcce08722Dake Gu setOnItemViewSelectedListener(new OnItemViewSelectedListener() { 5771e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 5871e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, 5971e7e67f320b23feac784b629db17b3bcce08722Dake Gu RowPresenter.ViewHolder rowViewHolder, Row row) { 6071e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, "onItemSelected: " + item + " row " + row); 6171e7e67f320b23feac784b629db17b3bcce08722Dake Gu if (mTitleHelper != null) { 6271e7e67f320b23feac784b629db17b3bcce08722Dake Gu mTitleHelper.showTitle(getAdapter() == null || getAdapter().size() == 0 || 6371e7e67f320b23feac784b629db17b3bcce08722Dake Gu getAdapter().get(0) == row); 6471e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 6571e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 6671e7e67f320b23feac784b629db17b3bcce08722Dake Gu }); 6771e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 6871e7e67f320b23feac784b629db17b3bcce08722Dake Gu 6971e7e67f320b23feac784b629db17b3bcce08722Dake Gu private void setupRows() { 7071e7e67f320b23feac784b629db17b3bcce08722Dake Gu ListRowPresenter lrp = new ListRowPresenter(); 7171e7e67f320b23feac784b629db17b3bcce08722Dake Gu 7287b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu // For good performance, it's important to use a single instance of 7387b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu // a card presenter for all rows using that presenter. 7487b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu final CardPresenter cardPresenter = new CardPresenter(); 7587b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu 7671e7e67f320b23feac784b629db17b3bcce08722Dake Gu if (USE_FIXED_ROW_HEIGHT) { 7787b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu lrp.setRowHeight(cardPresenter.getRowHeight(getActivity())); 7887b904ffa106f12f2fecfe8b9a46084863678f29Dake Gu lrp.setExpandedRowHeight(cardPresenter.getExpandedRowHeight(getActivity())); 7971e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 8071e7e67f320b23feac784b629db17b3bcce08722Dake Gu 8171e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter = new ArrayObjectAdapter(lrp); 8271e7e67f320b23feac784b629db17b3bcce08722Dake Gu 8371e7e67f320b23feac784b629db17b3bcce08722Dake Gu for (int i = 0; i < NUM_ROWS; ++i) { 8471e7e67f320b23feac784b629db17b3bcce08722Dake Gu ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter); 8571e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1)); 8671e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2)); 8771e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3)); 8871e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4)); 8971e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_5)); 9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_6)); 9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_7)); 9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_8)); 9371e7e67f320b23feac784b629db17b3bcce08722Dake Gu HeaderItem header = new HeaderItem(i, "Row " + i); 9471e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.add(new ListRow(header, listRowAdapter)); 9571e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 9671e7e67f320b23feac784b629db17b3bcce08722Dake Gu 9771e7e67f320b23feac784b629db17b3bcce08722Dake Gu setAdapter(mRowsAdapter); 9871e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 9971e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10071e7e67f320b23feac784b629db17b3bcce08722Dake Gu private final class ItemViewClickedListener implements OnItemViewClickedListener { 10171e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 10271e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, 10371e7e67f320b23feac784b629db17b3bcce08722Dake Gu RowPresenter.ViewHolder rowViewHolder, Row row) { 10471e7e67f320b23feac784b629db17b3bcce08722Dake Gu Intent intent = new Intent(getActivity(), DetailsSupportActivity.class); 10571e7e67f320b23feac784b629db17b3bcce08722Dake Gu intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item); 10671e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10771e7e67f320b23feac784b629db17b3bcce08722Dake Gu Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation( 10871e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity(), 10971e7e67f320b23feac784b629db17b3bcce08722Dake Gu ((ImageCardView)itemViewHolder.view).getMainImageView(), 11071e7e67f320b23feac784b629db17b3bcce08722Dake Gu DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle(); 11171e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity().startActivity(intent, bundle); 11271e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 11371e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 11471e7e67f320b23feac784b629db17b3bcce08722Dake Gu} 115