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