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