• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // CHECKSTYLE:OFF Generated code
2 /* This file is auto-generated from SearchFragment.java.  DO NOT MODIFY. */
3 
4 package com.example.android.leanback;
5 
6 import android.content.Context;
7 import android.content.Intent;
8 import android.os.Bundle;
9 import android.os.Handler;
10 import android.support.v17.leanback.widget.ArrayObjectAdapter;
11 import android.support.v17.leanback.widget.HeaderItem;
12 import android.support.v17.leanback.widget.ImageCardView;
13 import android.support.v17.leanback.widget.ListRow;
14 import android.support.v17.leanback.widget.ListRowPresenter;
15 import android.support.v17.leanback.widget.ObjectAdapter;
16 import android.support.v17.leanback.widget.OnItemViewClickedListener;
17 import android.support.v17.leanback.widget.Presenter;
18 import android.support.v17.leanback.widget.Row;
19 import android.support.v17.leanback.widget.RowPresenter;
20 import android.support.v4.app.ActivityOptionsCompat;
21 import android.support.v4.content.res.ResourcesCompat;
22 import android.text.TextUtils;
23 import android.util.Log;
24 
25 public class SearchSupportFragment extends android.support.v17.leanback.app.SearchSupportFragment
26     implements android.support.v17.leanback.app.SearchSupportFragment.SearchResultProvider {
27     private static final String TAG = "leanback.SearchSupportFragment";
28     private static final int NUM_ROWS = 3;
29     private static final int SEARCH_DELAY_MS = 1000;
30 
31     private ArrayObjectAdapter mRowsAdapter;
32     private Handler mHandler = new Handler();
33     private String mQuery;
34 
35     @Override
onCreate(Bundle savedInstanceState)36     public void onCreate(Bundle savedInstanceState) {
37         super.onCreate(savedInstanceState);
38 
39         mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
40 
41         final Context context = getActivity();
42         setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(),
43                 R.drawable.ic_title, context.getTheme()));
44         setTitle("Leanback Sample App");
45         setSearchResultProvider(this);
46         setOnItemViewClickedListener(new ItemViewClickedListener());
47     }
48 
49     @Override
getResultsAdapter()50     public ObjectAdapter getResultsAdapter() {
51         return mRowsAdapter;
52     }
53 
54     @Override
onQueryTextChange(String newQuery)55     public boolean onQueryTextChange(String newQuery) {
56         Log.i(TAG, String.format("Search Query Text Change %s", newQuery));
57         mRowsAdapter.clear();
58         loadQuery(newQuery);
59         return true;
60     }
61 
62     @Override
onQueryTextSubmit(String query)63     public boolean onQueryTextSubmit(String query) {
64         Log.i(TAG, String.format("Search Query Text Submit %s", query));
65         mRowsAdapter.clear();
66         loadQuery(query);
67         return true;
68     }
69 
loadQuery(String query)70     private void loadQuery(String query) {
71         mQuery = query;
72         mHandler.removeCallbacks(mDelayedLoad);
73         if (!TextUtils.isEmpty(query) && !query.equals("nil")) {
74             mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS);
75         }
76     }
77 
loadRows()78     private void loadRows() {
79         for (int i = 0; i < NUM_ROWS; ++i) {
80             ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
81             listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
82             listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
83             HeaderItem header = new HeaderItem(i, mQuery + " results row " + i);
84             mRowsAdapter.add(new ListRow(header, listRowAdapter));
85         }
86     }
87 
88     private Runnable mDelayedLoad = new Runnable() {
89         @Override
90         public void run() {
91             loadRows();
92         }
93     };
94 
95     private final class ItemViewClickedListener implements OnItemViewClickedListener {
96         @Override
onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row)97         public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
98                 RowPresenter.ViewHolder rowViewHolder, Row row) {
99             Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
100             intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
101 
102             Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
103                     getActivity(),
104                     ((ImageCardView)itemViewHolder.view).getMainImageView(),
105                     DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
106             getActivity().startActivity(intent, bundle);
107         }
108     }
109 }
110