1cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2Dake Gu// CHECKSTYLE:OFF Generated code 271e7e67f320b23feac784b629db17b3bcce08722Dake Gu/* This file is auto-generated from SearchFragment.java. DO NOT MODIFY. */ 371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 471e7e67f320b23feac784b629db17b3bcce08722Dake Gupackage com.example.android.leanback; 571e7e67f320b23feac784b629db17b3bcce08722Dake Gu 608a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangliimport static com.example.android.leanback.CardPresenter.CONTENT; 708a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangliimport static com.example.android.leanback.CardPresenter.IMAGE; 808a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangliimport static com.example.android.leanback.CardPresenter.TITLE; 908a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 10b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Guimport android.content.Context; 1171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.content.Intent; 1271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Bundle; 1371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Handler; 1408a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangliimport android.support.annotation.Nullable; 1571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ArrayObjectAdapter; 1657ac90cf3fc528ac56b6b83718541624173b1368jingjiangliimport android.support.v17.leanback.widget.DiffCallback; 1771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.HeaderItem; 1871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ImageCardView; 1971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRow; 2071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRowPresenter; 2171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ObjectAdapter; 2271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewClickedListener; 2371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Presenter; 2471e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Row; 2571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.RowPresenter; 26b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Guimport android.support.v4.app.ActivityOptionsCompat; 27b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Guimport android.support.v4.content.res.ResourcesCompat; 2871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.text.TextUtils; 2971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.util.Log; 3071e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3157ac90cf3fc528ac56b6b83718541624173b1368jingjiangliimport java.util.ArrayList; 3257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3371e7e67f320b23feac784b629db17b3bcce08722Dake Gupublic class SearchSupportFragment extends android.support.v17.leanback.app.SearchSupportFragment 3457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli implements android.support.v17.leanback.app.SearchSupportFragment.SearchResultProvider { 3571e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final String TAG = "leanback.SearchSupportFragment"; 3671e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final int NUM_ROWS = 3; 3771e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final int SEARCH_DELAY_MS = 1000; 3871e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3971e7e67f320b23feac784b629db17b3bcce08722Dake Gu private ArrayObjectAdapter mRowsAdapter; 4071e7e67f320b23feac784b629db17b3bcce08722Dake Gu private Handler mHandler = new Handler(); 4171e7e67f320b23feac784b629db17b3bcce08722Dake Gu private String mQuery; 4271e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Flag to represent if data set one is presented in the fragment 4457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private boolean mIsDataSetOnePresented; 4557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Adapter for first row 4757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayObjectAdapter mFirstRowAdapter; 4857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // The diff callback which defines the standard to judge if two items are the same or if 5057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // two items have the same content. 5157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private DiffCallback<PhotoItem> mDiffCallback = new DiffCallback<PhotoItem>() { 5257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when two photo items have the same id, they are the same from adapter's 5457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // perspective 5557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli @Override 5657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli public boolean areItemsTheSame(PhotoItem oldItem, PhotoItem newItem) { 5757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return oldItem.getId() == newItem.getId(); 5857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 5957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when two photo items is equal to each other (based on the equal method defined in 6157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // PhotoItem), they have the same content. 6257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli @Override 6357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli public boolean areContentsTheSame(PhotoItem oldItem, PhotoItem newItem) { 6457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return oldItem.equals(newItem); 6557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 6608a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 6708a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli @Nullable 6808a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli @Override 6908a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli public Object getChangePayload(PhotoItem oldItem, PhotoItem newItem) { 7008a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli Bundle diff = new Bundle(); 7108a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli if (oldItem.getImageResourceId() 7208a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli != newItem.getImageResourceId()) { 7308a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putLong(IMAGE, newItem.getImageResourceId()); 7408a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 7508a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 7608a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli if (!oldItem.getTitle().equals(newItem.getTitle())) { 7708a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putString(TITLE, newItem.getTitle()); 7808a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 7908a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 8008a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli if (!oldItem.getContent().equals(newItem.getContent())) { 8108a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putString(CONTENT, newItem.getContent()); 8208a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 8308a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli return diff; 8408a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 8557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli }; 8657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 8771e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 8871e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onCreate(Bundle savedInstanceState) { 8971e7e67f320b23feac784b629db17b3bcce08722Dake Gu super.onCreate(savedInstanceState); 9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu 9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); 9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu 93b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu final Context context = getActivity(); 94b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(), 95b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu R.drawable.ic_title, context.getTheme())); 9671e7e67f320b23feac784b629db17b3bcce08722Dake Gu setTitle("Leanback Sample App"); 9771e7e67f320b23feac784b629db17b3bcce08722Dake Gu setSearchResultProvider(this); 9871e7e67f320b23feac784b629db17b3bcce08722Dake Gu setOnItemViewClickedListener(new ItemViewClickedListener()); 9971e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 10071e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10171e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 10271e7e67f320b23feac784b629db17b3bcce08722Dake Gu public ObjectAdapter getResultsAdapter() { 10371e7e67f320b23feac784b629db17b3bcce08722Dake Gu return mRowsAdapter; 10471e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 10571e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10671e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 10771e7e67f320b23feac784b629db17b3bcce08722Dake Gu public boolean onQueryTextChange(String newQuery) { 10871e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, String.format("Search Query Text Change %s", newQuery)); 10971e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.clear(); 11071e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadQuery(newQuery); 11171e7e67f320b23feac784b629db17b3bcce08722Dake Gu return true; 11271e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 11371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 11471e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 11571e7e67f320b23feac784b629db17b3bcce08722Dake Gu public boolean onQueryTextSubmit(String query) { 11671e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, String.format("Search Query Text Submit %s", query)); 11771e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.clear(); 11871e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadQuery(query); 11971e7e67f320b23feac784b629db17b3bcce08722Dake Gu return true; 12071e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 12171e7e67f320b23feac784b629db17b3bcce08722Dake Gu 12271e7e67f320b23feac784b629db17b3bcce08722Dake Gu private void loadQuery(String query) { 12371e7e67f320b23feac784b629db17b3bcce08722Dake Gu mQuery = query; 12471e7e67f320b23feac784b629db17b3bcce08722Dake Gu mHandler.removeCallbacks(mDelayedLoad); 12571e7e67f320b23feac784b629db17b3bcce08722Dake Gu if (!TextUtils.isEmpty(query) && !query.equals("nil")) { 12671e7e67f320b23feac784b629db17b3bcce08722Dake Gu mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS); 12771e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 12871e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 12971e7e67f320b23feac784b629db17b3bcce08722Dake Gu 13071e7e67f320b23feac784b629db17b3bcce08722Dake Gu private void loadRows() { 13157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli HeaderItem header = new HeaderItem(0, mQuery + " results row " + 0); 13257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 13357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Every time when the query event is fired, we will update the fake search result in the 13457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // first row based on the flag mIsDataSetOnePresented flag. 13557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Also the first row adapter will only be created once so the animation will be triggered 13657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when the items in the adapter changed. 13757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli if (!mIsDataSetOnePresented) { 13857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli if (mFirstRowAdapter == null) { 13957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mFirstRowAdapter = createFirstListRowAdapter(); 14057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } else { 14157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mFirstRowAdapter.setItems(createDataSetOne(), mDiffCallback); 14257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 14357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = true; 14457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } else { 14557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mFirstRowAdapter.setItems(createDataSetTwo(), mDiffCallback); 14657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = false; 14757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 14857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mRowsAdapter.add(new ListRow(header, mFirstRowAdapter)); 14957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli for (int i = 1; i < NUM_ROWS + 1; ++i) { 15071e7e67f320b23feac784b629db17b3bcce08722Dake Gu ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); 15171e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1)); 15271e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2)); 15357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli header = new HeaderItem(i, mQuery + " results row " + i); 15471e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.add(new ListRow(header, listRowAdapter)); 15571e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 15671e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 15771e7e67f320b23feac784b629db17b3bcce08722Dake Gu 15871e7e67f320b23feac784b629db17b3bcce08722Dake Gu private Runnable mDelayedLoad = new Runnable() { 15971e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 16071e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void run() { 16171e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadRows(); 16271e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 16371e7e67f320b23feac784b629db17b3bcce08722Dake Gu }; 16471e7e67f320b23feac784b629db17b3bcce08722Dake Gu 16571e7e67f320b23feac784b629db17b3bcce08722Dake Gu private final class ItemViewClickedListener implements OnItemViewClickedListener { 16671e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 16771e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, 16871e7e67f320b23feac784b629db17b3bcce08722Dake Gu RowPresenter.ViewHolder rowViewHolder, Row row) { 16971e7e67f320b23feac784b629db17b3bcce08722Dake Gu Intent intent = new Intent(getActivity(), DetailsSupportActivity.class); 17071e7e67f320b23feac784b629db17b3bcce08722Dake Gu intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item); 17171e7e67f320b23feac784b629db17b3bcce08722Dake Gu 17271e7e67f320b23feac784b629db17b3bcce08722Dake Gu Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation( 17371e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity(), 17457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ((ImageCardView) itemViewHolder.view).getMainImageView(), 17571e7e67f320b23feac784b629db17b3bcce08722Dake Gu DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle(); 17671e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity().startActivity(intent, bundle); 17771e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 17871e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 17957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 18057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 18157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayObjectAdapter createFirstListRowAdapter() { 18257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); 18357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli listRowAdapter.setItems(createDataSetOne(), mDiffCallback); 18457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = true; 18557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return listRowAdapter; 18657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 18757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 18857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli /** 18957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Create a data set (data set one) for the last row of this browse fragment. It will be 19057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * changed by another set of data when user click one of the photo items in the list. 19157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Different with other rows in the browsing fragment, the photo item in last row all have been 19257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * allocated with a unique id. And the id will be used to jduge if two photo items are the same 19357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * or not. 19457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * 19557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * @return List of photoItem 19657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli */ 19757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayList<PhotoItem> createDataSetOne() { 19857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayList<PhotoItem> photoItems = new ArrayList<>(); 19957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 20057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 20157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 20257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 20357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 20457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 20557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 20657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 20757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 20857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 20957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 21057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 21157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 21257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 21357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 21457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 21557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 21657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 21757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 21857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide left/right)", 21957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_5, 22057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5)); 22157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 22257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide bottom up)", 22357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Open GuidedStepFragment", 22457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_6, 22557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6)); 22657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 22757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 22857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open RowsActivity", 22957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 23057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 7)); 23157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 23257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 23357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open BrowseActivity", 23457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_8, 23557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 8)); 23657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 23757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 23857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 23957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 24057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 24157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 24257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 24357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 24457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 24557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 24657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 24757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 24857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 24957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 25057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 25157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 25257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 25357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 25457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return photoItems; 25557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 25657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 25757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli /** 25857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Create a new data set (data set one) for the last row of this browse fragment. It will be 25957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * changed by another set of data when user click one of the photo items in the list. 26057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Different with other rows in the browsing fragment, the photo item in last row all have been 26157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * allocated with a unique id. And the id will be used to jduge if two photo items are the same 26257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * or not. 26357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * 26457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * @return List of photoItem 26557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli */ 26657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayList<PhotoItem> createDataSetTwo() { 26757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayList<PhotoItem> photoItems = new ArrayList<>(); 26857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 26957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 27057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 27157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 27257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 27357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 27457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 27557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 27657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 27757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 27857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 27957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 28057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 28157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 28257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 28357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 28457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 28557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 28657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 28757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "change title", 28857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_5, 28957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5)); 29057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 29157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide bottom up)", 29257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "change comment", 29357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_6, 29457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6)); 29557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 29657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 29757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 29857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 7)); 29957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 30057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 30157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open BrowseActivity", 30257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 30357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 8)); 30457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 30557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 30657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 30757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 10)); 30857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 30957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 31057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 31157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 31257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 20)); 31357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 31457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 31557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 31657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 31757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 30)); 31857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 31957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 32057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 32157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 40)); 32257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return photoItems; 32357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 32457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 32571e7e67f320b23feac784b629db17b3bcce08722Dake Gu} 326