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; 14def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport android.text.TextUtils; 15def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport android.util.Log; 16def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.annotation.Nullable; 18def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.app.ActivityOptionsCompat; 19def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.content.res.ResourcesCompat; 20ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ArrayObjectAdapter; 21ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.DiffCallback; 22ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.HeaderItem; 23ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ImageCardView; 24ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ListRow; 25ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ListRowPresenter; 26ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ObjectAdapter; 27ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnItemViewClickedListener; 28ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Presenter; 29ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Row; 30ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.RowPresenter; 3171e7e67f320b23feac784b629db17b3bcce08722Dake Gu 3257ac90cf3fc528ac56b6b83718541624173b1368jingjiangliimport java.util.ArrayList; 3357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 34ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspublic class SearchSupportFragment extends androidx.leanback.app.SearchSupportFragment 35ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikas implements androidx.leanback.app.SearchSupportFragment.SearchResultProvider { 3671e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final String TAG = "leanback.SearchSupportFragment"; 3771e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final int NUM_ROWS = 3; 3871e7e67f320b23feac784b629db17b3bcce08722Dake Gu private static final int SEARCH_DELAY_MS = 1000; 3971e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4071e7e67f320b23feac784b629db17b3bcce08722Dake Gu private ArrayObjectAdapter mRowsAdapter; 4171e7e67f320b23feac784b629db17b3bcce08722Dake Gu private Handler mHandler = new Handler(); 4271e7e67f320b23feac784b629db17b3bcce08722Dake Gu private String mQuery; 4371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 4457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Flag to represent if data set one is presented in the fragment 4557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private boolean mIsDataSetOnePresented; 4657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Adapter for first row 4857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayObjectAdapter mFirstRowAdapter; 4957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // The diff callback which defines the standard to judge if two items are the same or if 5157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // two items have the same content. 5257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private DiffCallback<PhotoItem> mDiffCallback = new DiffCallback<PhotoItem>() { 5357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when two photo items have the same id, they are the same from adapter's 5557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // perspective 5657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli @Override 5757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli public boolean areItemsTheSame(PhotoItem oldItem, PhotoItem newItem) { 5857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return oldItem.getId() == newItem.getId(); 5957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 6057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when two photo items is equal to each other (based on the equal method defined in 6257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // PhotoItem), they have the same content. 6357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli @Override 6457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli public boolean areContentsTheSame(PhotoItem oldItem, PhotoItem newItem) { 6557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return oldItem.equals(newItem); 6657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 6708a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 6808a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli @Nullable 6908a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli @Override 7008a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli public Object getChangePayload(PhotoItem oldItem, PhotoItem newItem) { 7108a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli Bundle diff = new Bundle(); 7208a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli if (oldItem.getImageResourceId() 7308a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli != newItem.getImageResourceId()) { 7408a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putLong(IMAGE, newItem.getImageResourceId()); 7508a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 7608a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 77fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu if (oldItem.getTitle() != null && newItem.getTitle() != null 78fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu && !oldItem.getTitle().equals(newItem.getTitle())) { 7908a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putString(TITLE, newItem.getTitle()); 8008a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 8108a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli 82fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu if (oldItem.getContent() != null && newItem.getContent() != null 83fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu && !oldItem.getContent().equals(newItem.getContent())) { 8408a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli diff.putString(CONTENT, newItem.getContent()); 8508a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 8608a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli return diff; 8708a38559a3751252fc8a1f36db0a431508a8f7d5jingjiangli } 8857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli }; 8957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onCreate(Bundle savedInstanceState) { 9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu super.onCreate(savedInstanceState); 9371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 9471e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); 9571e7e67f320b23feac784b629db17b3bcce08722Dake Gu 96b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu final Context context = getActivity(); 97b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(), 98b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu R.drawable.ic_title, context.getTheme())); 9971e7e67f320b23feac784b629db17b3bcce08722Dake Gu setTitle("Leanback Sample App"); 10071e7e67f320b23feac784b629db17b3bcce08722Dake Gu setSearchResultProvider(this); 10171e7e67f320b23feac784b629db17b3bcce08722Dake Gu setOnItemViewClickedListener(new ItemViewClickedListener()); 10271e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 10371e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10471e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 10571e7e67f320b23feac784b629db17b3bcce08722Dake Gu public ObjectAdapter getResultsAdapter() { 10671e7e67f320b23feac784b629db17b3bcce08722Dake Gu return mRowsAdapter; 10771e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 10871e7e67f320b23feac784b629db17b3bcce08722Dake Gu 10971e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 11071e7e67f320b23feac784b629db17b3bcce08722Dake Gu public boolean onQueryTextChange(String newQuery) { 11171e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, String.format("Search Query Text Change %s", newQuery)); 11271e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.clear(); 11371e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadQuery(newQuery); 11471e7e67f320b23feac784b629db17b3bcce08722Dake Gu return true; 11571e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 11671e7e67f320b23feac784b629db17b3bcce08722Dake Gu 11771e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 11871e7e67f320b23feac784b629db17b3bcce08722Dake Gu public boolean onQueryTextSubmit(String query) { 11971e7e67f320b23feac784b629db17b3bcce08722Dake Gu Log.i(TAG, String.format("Search Query Text Submit %s", query)); 12071e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.clear(); 12171e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadQuery(query); 12271e7e67f320b23feac784b629db17b3bcce08722Dake Gu return true; 12371e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 12471e7e67f320b23feac784b629db17b3bcce08722Dake Gu 12571e7e67f320b23feac784b629db17b3bcce08722Dake Gu private void loadQuery(String query) { 12671e7e67f320b23feac784b629db17b3bcce08722Dake Gu mQuery = query; 12771e7e67f320b23feac784b629db17b3bcce08722Dake Gu mHandler.removeCallbacks(mDelayedLoad); 12871e7e67f320b23feac784b629db17b3bcce08722Dake Gu if (!TextUtils.isEmpty(query) && !query.equals("nil")) { 12971e7e67f320b23feac784b629db17b3bcce08722Dake Gu mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS); 13071e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 13171e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 13271e7e67f320b23feac784b629db17b3bcce08722Dake Gu 13371e7e67f320b23feac784b629db17b3bcce08722Dake Gu private void loadRows() { 13457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli HeaderItem header = new HeaderItem(0, mQuery + " results row " + 0); 13557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 13657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Every time when the query event is fired, we will update the fake search result in the 13757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // first row based on the flag mIsDataSetOnePresented flag. 13857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // Also the first row adapter will only be created once so the animation will be triggered 13957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli // when the items in the adapter changed. 14057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli if (!mIsDataSetOnePresented) { 14157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli if (mFirstRowAdapter == null) { 14257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mFirstRowAdapter = createFirstListRowAdapter(); 14357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } else { 144fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu mFirstRowAdapter.setItems(createDataSetOneDebug(), mDiffCallback); 14557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 14657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = true; 14757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } else { 148fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu mFirstRowAdapter.setItems(createDataSetTwoDebug(), mDiffCallback); 14957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = false; 15057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 15157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mRowsAdapter.add(new ListRow(header, mFirstRowAdapter)); 15257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli for (int i = 1; i < NUM_ROWS + 1; ++i) { 15371e7e67f320b23feac784b629db17b3bcce08722Dake Gu ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); 15471e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1)); 15571e7e67f320b23feac784b629db17b3bcce08722Dake Gu listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2)); 15657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli header = new HeaderItem(i, mQuery + " results row " + i); 15771e7e67f320b23feac784b629db17b3bcce08722Dake Gu mRowsAdapter.add(new ListRow(header, listRowAdapter)); 15871e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 15971e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 16071e7e67f320b23feac784b629db17b3bcce08722Dake Gu 16171e7e67f320b23feac784b629db17b3bcce08722Dake Gu private Runnable mDelayedLoad = new Runnable() { 16271e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 16371e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void run() { 16471e7e67f320b23feac784b629db17b3bcce08722Dake Gu loadRows(); 16571e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 16671e7e67f320b23feac784b629db17b3bcce08722Dake Gu }; 16771e7e67f320b23feac784b629db17b3bcce08722Dake Gu 16871e7e67f320b23feac784b629db17b3bcce08722Dake Gu private final class ItemViewClickedListener implements OnItemViewClickedListener { 16971e7e67f320b23feac784b629db17b3bcce08722Dake Gu @Override 17071e7e67f320b23feac784b629db17b3bcce08722Dake Gu public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, 17171e7e67f320b23feac784b629db17b3bcce08722Dake Gu RowPresenter.ViewHolder rowViewHolder, Row row) { 17271e7e67f320b23feac784b629db17b3bcce08722Dake Gu Intent intent = new Intent(getActivity(), DetailsSupportActivity.class); 17371e7e67f320b23feac784b629db17b3bcce08722Dake Gu intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item); 17471e7e67f320b23feac784b629db17b3bcce08722Dake Gu 17571e7e67f320b23feac784b629db17b3bcce08722Dake Gu Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation( 17671e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity(), 17757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ((ImageCardView) itemViewHolder.view).getMainImageView(), 17871e7e67f320b23feac784b629db17b3bcce08722Dake Gu DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle(); 17971e7e67f320b23feac784b629db17b3bcce08722Dake Gu getActivity().startActivity(intent, bundle); 18071e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 18171e7e67f320b23feac784b629db17b3bcce08722Dake Gu } 18257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 18357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 18457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayObjectAdapter createFirstListRowAdapter() { 18557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); 186fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu listRowAdapter.setItems(createDataSetOneDebug(), mDiffCallback); 18757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli mIsDataSetOnePresented = true; 18857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return listRowAdapter; 18957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 19057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 19157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli /** 19257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Create a data set (data set one) for the last row of this browse fragment. It will be 19357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * changed by another set of data when user click one of the photo items in the list. 19457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Different with other rows in the browsing fragment, the photo item in last row all have been 19557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * allocated with a unique id. And the id will be used to jduge if two photo items are the same 19657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * or not. 19757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * 19857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * @return List of photoItem 19957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli */ 20057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayList<PhotoItem> createDataSetOne() { 20157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayList<PhotoItem> photoItems = new ArrayList<>(); 20257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 20357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 20457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 20557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 20657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 20757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 20857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 20957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 21057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 21157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 21257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 21357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 21457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 21557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 21657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 21757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 21857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 21957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 22057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 22157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide left/right)", 22257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_5, 22357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5)); 22457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 22557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide bottom up)", 22657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Open GuidedStepFragment", 22757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_6, 22857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6)); 22957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 23057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 23157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open RowsActivity", 23257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 23357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 7)); 23457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 23557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 23657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open BrowseActivity", 23757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_8, 23857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 8)); 23957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 24057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 24157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 24257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 24357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 24457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 24557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 24657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 24757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 24857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 24957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 25057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 25157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 25257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 25357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 25457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 25557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 25657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 25757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return photoItems; 25857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 25957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 26057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli /** 26157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Create a new data set (data set one) for the last row of this browse fragment. It will be 26257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * changed by another set of data when user click one of the photo items in the list. 26357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * Different with other rows in the browsing fragment, the photo item in last row all have been 26457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * allocated with a unique id. And the id will be used to jduge if two photo items are the same 26557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * or not. 26657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * 26757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli * @return List of photoItem 26857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli */ 26957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli private ArrayList<PhotoItem> createDataSetTwo() { 27057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli ArrayList<PhotoItem> photoItems = new ArrayList<>(); 27157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 27257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 27357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 27457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 27557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 2)); 27657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 27757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 27857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 27957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 1)); 28057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 28157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 28257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 28357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 4)); 28457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 28557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 28657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 28757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 28857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 3)); 28957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 29057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "change title", 29157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_5, 29257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 5)); 29357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 29457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "GuidedStep (Slide bottom up)", 29557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "change comment", 29657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_6, 29757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 6)); 29857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 29957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 30057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 30157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 7)); 30257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 30357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 30457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "open BrowseActivity", 30557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_7, 30657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 8)); 30757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 30857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Hello world", 30957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_1, 31057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 10)); 31157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 31257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "This is a test", 31357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Only a test", 31457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_2, 31557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 20)); 31657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 31757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Android TV", 31857ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "by Google", 31957ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_3, 32057ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 30)); 32157ac90cf3fc528ac56b6b83718541624173b1368jingjiangli photoItems.add(new PhotoItem( 32257ac90cf3fc528ac56b6b83718541624173b1368jingjiangli "Leanback", 32357ac90cf3fc528ac56b6b83718541624173b1368jingjiangli R.drawable.gallery_photo_4, 32457ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 40)); 32557ac90cf3fc528ac56b6b83718541624173b1368jingjiangli return photoItems; 32657ac90cf3fc528ac56b6b83718541624173b1368jingjiangli } 32757ac90cf3fc528ac56b6b83718541624173b1368jingjiangli 328fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu 329fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu private ArrayList<PhotoItem> createDataSetOneDebug() { 330fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu ArrayList<PhotoItem> photoItems = new ArrayList<>(); 331fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu photoItems.add(new PhotoItem( 332fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu "Hello world", 333fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu R.drawable.gallery_photo_1, 334fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu 1)); 335fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu return photoItems; 336fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu } 337fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu 338fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu /** 339fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * Create a new data set (data set one) for the last row of this browse fragment. It will be 340fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * changed by another set of data when user click one of the photo items in the list. 341fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * Different with other rows in the browsing fragment, the photo item in last row all have been 342fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * allocated with a unique id. And the id will be used to jduge if two photo items are the same 343fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * or not. 344fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * 345fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu * @return List of photoItem 346fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu */ 347fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu private ArrayList<PhotoItem> createDataSetTwoDebug() { 348fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu ArrayList<PhotoItem> photoItems = new ArrayList<>(); 349fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu photoItems.add(new PhotoItem( 350fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu "Hello world Hello world", 351fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu R.drawable.gallery_photo_1, 352fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu 1)); 353fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu return photoItems; 354fc772efa5c0c39d7a59dba5e39f75b4977fbc017Dake Gu } 35571e7e67f320b23feac784b629db17b3bcce08722Dake Gu} 356