summaryrefslogtreecommitdiffstats
path: root/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java')
-rw-r--r--samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java104
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);
+ }
+ }
+}