171e7e67f320b23feac784b629db17b3bcce08722Dake Gu/* This file is auto-generated from SearchFragment.java.  DO NOT MODIFY. */
271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
371e7e67f320b23feac784b629db17b3bcce08722Dake Gupackage com.example.android.leanback;
471e7e67f320b23feac784b629db17b3bcce08722Dake Gu
571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.content.Intent;
671e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Bundle;
771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Handler;
871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v4.app.ActivityOptionsCompat;
971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ArrayObjectAdapter;
1071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.HeaderItem;
1171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ImageCardView;
1271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRow;
1371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRowPresenter;
1471e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ObjectAdapter;
1571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewClickedListener;
1671e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Presenter;
1771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Row;
1871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.RowPresenter;
1971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.text.TextUtils;
2071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.util.Log;
2171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
2271e7e67f320b23feac784b629db17b3bcce08722Dake Gupublic class SearchSupportFragment extends android.support.v17.leanback.app.SearchSupportFragment
2371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    implements android.support.v17.leanback.app.SearchSupportFragment.SearchResultProvider {
2471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final String TAG = "leanback.SearchSupportFragment";
2571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int NUM_ROWS = 3;
2671e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int SEARCH_DELAY_MS = 1000;
2771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
2871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private ArrayObjectAdapter mRowsAdapter;
2971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Handler mHandler = new Handler();
3071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private String mQuery;
3171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
3271e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
3371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public void onCreate(Bundle savedInstanceState) {
3471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        super.onCreate(savedInstanceState);
3571e7e67f320b23feac784b629db17b3bcce08722Dake Gu
3671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
3771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
3871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
3971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setTitle("Leanback Sample App");
4071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setSearchResultProvider(this);
4171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnItemViewClickedListener(new ItemViewClickedListener());
4271e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
4371e7e67f320b23feac784b629db17b3bcce08722Dake Gu
4471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
4571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public ObjectAdapter getResultsAdapter() {
4671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        return mRowsAdapter;
4771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
4871e7e67f320b23feac784b629db17b3bcce08722Dake Gu
4971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
5071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public boolean onQueryTextChange(String newQuery) {
5171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        Log.i(TAG, String.format("Search Query Text Change %s", newQuery));
5271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mRowsAdapter.clear();
5371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        loadQuery(newQuery);
5471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        return true;
5571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
5671e7e67f320b23feac784b629db17b3bcce08722Dake Gu
5771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
5871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public boolean onQueryTextSubmit(String query) {
5971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        Log.i(TAG, String.format("Search Query Text Submit %s", query));
6071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mRowsAdapter.clear();
6171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        loadQuery(query);
6271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        return true;
6371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
6471e7e67f320b23feac784b629db17b3bcce08722Dake Gu
6571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private void loadQuery(String query) {
6671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mQuery = query;
6771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mHandler.removeCallbacks(mDelayedLoad);
6871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        if (!TextUtils.isEmpty(query) && !query.equals("nil")) {
6971e7e67f320b23feac784b629db17b3bcce08722Dake Gu            mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS);
7071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
7171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
7271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
7371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private void loadRows() {
7471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        for (int i = 0; i < NUM_ROWS; ++i) {
7571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
7671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
7771e7e67f320b23feac784b629db17b3bcce08722Dake Gu            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
7871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            HeaderItem header = new HeaderItem(i, mQuery + " results row " + i);
7971e7e67f320b23feac784b629db17b3bcce08722Dake Gu            mRowsAdapter.add(new ListRow(header, listRowAdapter));
8071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
8171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
8271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
8371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Runnable mDelayedLoad = new Runnable() {
8471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        @Override
8571e7e67f320b23feac784b629db17b3bcce08722Dake Gu        public void run() {
8671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            loadRows();
8771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
8871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    };
8971e7e67f320b23feac784b629db17b3bcce08722Dake Gu
9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private final class ItemViewClickedListener implements OnItemViewClickedListener {
9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        @Override
9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
9371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                RowPresenter.ViewHolder rowViewHolder, Row row) {
9471e7e67f320b23feac784b629db17b3bcce08722Dake Gu            Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
9571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
9671e7e67f320b23feac784b629db17b3bcce08722Dake Gu
9771e7e67f320b23feac784b629db17b3bcce08722Dake Gu            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
9871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    getActivity(),
9971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
10071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
10171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            getActivity().startActivity(intent, bundle);
10271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
10371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
10471e7e67f320b23feac784b629db17b3bcce08722Dake Gu}
105