diff options
author | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:13:45 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:13:45 -0800 |
commit | 0a521f6d93206567c14bbacdc13819bf4baf82d3 (patch) | |
tree | 2e11b47c9856368387b394b6831726f2526bf6dd /samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java | |
parent | 171957c0bdc547ae6013daddffc03c8ec3ac2e3e (diff) | |
parent | adce814038b96c87ea66fc1e5bfd85ab28d80590 (diff) | |
download | android_development-stable/cm-13.0-ZNH2K.tar.gz android_development-stable/cm-13.0-ZNH2K.tar.bz2 android_development-stable/cm-13.0-ZNH2K.zip |
Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/development into cm-13.0staging/cm-13.0+r22stable/cm-13.0-ZNH2KBstable/cm-13.0-ZNH2K
Android 6.0.1 release 22
Diffstat (limited to 'samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java')
-rw-r--r-- | samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java new file mode 100644 index 000000000..35c5eb251 --- /dev/null +++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java @@ -0,0 +1,104 @@ +/* This file is auto-generated from SearchFragment.java. DO NOT MODIFY. */ + +package com.example.android.leanback; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.support.v4.app.ActivityOptionsCompat; +import android.support.v17.leanback.widget.ArrayObjectAdapter; +import android.support.v17.leanback.widget.HeaderItem; +import android.support.v17.leanback.widget.ImageCardView; +import android.support.v17.leanback.widget.ListRow; +import android.support.v17.leanback.widget.ListRowPresenter; +import android.support.v17.leanback.widget.ObjectAdapter; +import android.support.v17.leanback.widget.OnItemViewClickedListener; +import android.support.v17.leanback.widget.Presenter; +import android.support.v17.leanback.widget.Row; +import android.support.v17.leanback.widget.RowPresenter; +import android.text.TextUtils; +import android.util.Log; + +public class SearchSupportFragment extends android.support.v17.leanback.app.SearchSupportFragment + implements android.support.v17.leanback.app.SearchSupportFragment.SearchResultProvider { + private static final String TAG = "leanback.SearchSupportFragment"; + private static final int NUM_ROWS = 3; + private static final int SEARCH_DELAY_MS = 1000; + + private ArrayObjectAdapter mRowsAdapter; + private Handler mHandler = new Handler(); + private String mQuery; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); + + setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title)); + setTitle("Leanback Sample App"); + setSearchResultProvider(this); + setOnItemViewClickedListener(new ItemViewClickedListener()); + } + + @Override + public ObjectAdapter getResultsAdapter() { + return mRowsAdapter; + } + + @Override + public boolean onQueryTextChange(String newQuery) { + Log.i(TAG, String.format("Search Query Text Change %s", newQuery)); + mRowsAdapter.clear(); + loadQuery(newQuery); + return true; + } + + @Override + public boolean onQueryTextSubmit(String query) { + Log.i(TAG, String.format("Search Query Text Submit %s", query)); + mRowsAdapter.clear(); + loadQuery(query); + return true; + } + + private void loadQuery(String query) { + mQuery = query; + mHandler.removeCallbacks(mDelayedLoad); + if (!TextUtils.isEmpty(query) && !query.equals("nil")) { + mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS); + } + } + + private void loadRows() { + for (int i = 0; i < NUM_ROWS; ++i) { + ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); + listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1)); + listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2)); + HeaderItem header = new HeaderItem(i, mQuery + " results row " + i); + mRowsAdapter.add(new ListRow(header, listRowAdapter)); + } + } + + private Runnable mDelayedLoad = new Runnable() { + @Override + public void run() { + loadRows(); + } + }; + + private final class ItemViewClickedListener implements OnItemViewClickedListener { + @Override + public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, + RowPresenter.ViewHolder rowViewHolder, Row row) { + Intent intent = new Intent(getActivity(), DetailsSupportActivity.class); + intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item); + + Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation( + getActivity(), + ((ImageCardView)itemViewHolder.view).getMainImageView(), + DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle(); + getActivity().startActivity(intent, bundle); + } + } +} |