From 76022fd0126b17a82486af9613159262eccef852 Mon Sep 17 00:00:00 2001 From: shawn shen Date: Thu, 5 Mar 2015 10:52:55 -0800 Subject: [PATCH] Fixed bug 18405121: Remove RECORD_AUDIO permission requirement for ATV Leanback sample Change-Id: I0fb0b3ccd69ba809ae74ffd07f3bab0ad2199c99 --- app/src/main/AndroidManifest.xml | 6 +- .../android/tvleanback/ui/SearchActivity.java | 34 ++++++++ .../android/tvleanback/ui/SearchFragment.java | 81 ++++++++++++------- 3 files changed, 87 insertions(+), 34 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 532cb216..19b18e25 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,9 +26,7 @@ - - @@ -94,9 +92,11 @@ android:authorities="com.example.android.tvleanback" android:exported="true" /> - + > movies = VideoProvider.getMovieList(); ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter()); for (Map.Entry> entry : movies.entrySet()) { for (Movie movie : entry.getValue()) { if (movie.getTitle().toLowerCase(Locale.ENGLISH) - .indexOf(query.toLowerCase(Locale.ENGLISH)) >= 0 + .contains(query.toLowerCase(Locale.ENGLISH)) || movie.getDescription().toLowerCase(Locale.ENGLISH) - .indexOf(query.toLowerCase(Locale.ENGLISH)) >= 0) { + .contains(query.toLowerCase(Locale.ENGLISH))) { listRowAdapter.add(movie); } } } - HeaderItem header = new HeaderItem(0, getResources().getString(R.string.search_results), + HeaderItem header = new HeaderItem(0, getResources().getString(R.string.search_results) + + " '" + mQuery + "'", null); mRowsAdapter.add(new ListRow(header, listRowAdapter)); } - protected OnItemClickedListener getDefaultItemClickedListener() { - return new OnItemClickedListener() { - @Override - public void onItemClicked(Object item, Row row) { - if (item instanceof Movie) { - Movie movie = (Movie) item; - Intent intent = new Intent(getActivity(), MovieDetailsActivity.class); - intent.putExtra(MovieDetailsActivity.MOVIE, movie); - startActivity(intent); - } - } - }; - } - private class SearchRunnable implements Runnable { private volatile String searchQuery; @@ -134,4 +128,29 @@ public void setSearchQuery(String value) { this.searchQuery = value; } } + + private final class ItemViewClickedListener implements OnItemViewClickedListener { + @Override + public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, + RowPresenter.ViewHolder rowViewHolder, Row row) { + + if (item instanceof Movie) { + Movie movie = (Movie) item; + Log.d(TAG, "Movie: " + movie.toString()); + Intent intent = new Intent(getActivity(), MovieDetailsActivity.class); + intent.putExtra(MovieDetailsActivity.MOVIE, movie); + + Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation( + getActivity(), + ((ImageCardView) itemViewHolder.view).getMainImageView(), + MovieDetailsActivity.SHARED_ELEMENT_NAME).toBundle(); + getActivity().startActivity(intent, bundle); + } else { + Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT) + .show(); + } + } + } + + }