jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/342012 )
Change subject: Update design of empty state when searching Wikipedia. ...................................................................... Update design of empty state when searching Wikipedia. ...and butter up SearchResultsFragment, while we're at it. Bug: T156086 Change-Id: Ic570db7bef4db6e06d9139c7109de299448bd110 --- M app/src/main/java/org/wikipedia/search/SearchResultsFragment.java M app/src/main/res/layout/fragment_search.xml M app/src/main/res/layout/fragment_search_recent.xml M app/src/main/res/layout/fragment_search_results.xml 4 files changed, 69 insertions(+), 71 deletions(-) Approvals: Niedzielski: Looks good to me, approved jenkins-bot: Verified diff --git a/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java b/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java index d75fc46..b175bf1 100644 --- a/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java +++ b/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java @@ -11,7 +11,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; @@ -37,6 +36,12 @@ import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import butterknife.OnItemClick; +import butterknife.Unbinder; + import static org.apache.commons.lang3.StringUtils.isBlank; public class SearchResultsFragment extends Fragment { @@ -60,12 +65,13 @@ */ private static final int NANO_TO_MILLI = 1_000_000; - private View searchResultsDisplay; - private View searchResultsContainer; - private ListView searchResultsList; - private WikiErrorView searchErrorView; - private View searchNoResults; - private TextView searchSuggestion; + @BindView(R.id.search_results_display) View searchResultsDisplay; + @BindView(R.id.search_results_container) View searchResultsContainer; + @BindView(R.id.search_results_list) ListView searchResultsList; + @BindView(R.id.search_error_view) WikiErrorView searchErrorView; + @BindView(R.id.search_empty_view) View searchEmptyView; + @BindView(R.id.search_suggestion) TextView searchSuggestion; + private Unbinder unbinder; private WikipediaApp app; @NonNull private final LruCache<String, List<SearchResult>> searchResultsCache @@ -84,43 +90,12 @@ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_search_results, container, false); - searchResultsDisplay = rootView.findViewById(R.id.search_results_display); - - searchResultsContainer = rootView.findViewById(R.id.search_results_container); - searchResultsList = (ListView) rootView.findViewById(R.id.search_results_list); - - searchResultsList.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - Callback callback = callback(); - if (callback != null) { - PageTitle item = ((SearchResult) getAdapter().getItem(position)).getPageTitle(); - callback.navigateToTitle(item, false, position); - } - } - }); + View view = inflater.inflate(R.layout.fragment_search_results, container, false); + unbinder = ButterKnife.bind(this, view); SearchResultAdapter adapter = new SearchResultAdapter(inflater); searchResultsList.setAdapter(adapter); - searchSuggestion = (TextView) rootView.findViewById(R.id.search_suggestion); - searchSuggestion.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Callback callback = callback(); - String suggestion = (String) searchSuggestion.getTag(); - if (callback != null && suggestion != null) { - callback.getFunnel().searchDidYouMean(); - callback.setSearchText(suggestion); - startSearch(suggestion, true); - } - } - }); - - searchNoResults = rootView.findViewById(R.id.search_results_empty); - - searchErrorView = (WikiErrorView) rootView.findViewById(R.id.search_error_view); searchErrorView.setRetryClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -131,7 +106,7 @@ searchHandler = new Handler(new SearchHandlerCallback()); - return rootView; + return view; } @Override @@ -139,6 +114,32 @@ super.onActivityCreated(savedInstanceState); new LongPressHandler(searchResultsList, HistoryEntry.SOURCE_SEARCH, new SearchResultsFragmentLongPressHandler()); + } + + @Override + public void onDestroyView() { + searchErrorView.setRetryClickListener(null); + unbinder.unbind(); + unbinder = null; + super.onDestroyView(); + } + + @OnItemClick(R.id.search_results_list) void onItemClick(ListView view, int position) { + Callback callback = callback(); + if (callback != null) { + PageTitle item = ((SearchResult) getAdapter().getItem(position)).getPageTitle(); + callback.navigateToTitle(item, false, position); + } + } + + @OnClick(R.id.search_suggestion) void onSuggestionClick(View view) { + Callback callback = callback(); + String suggestion = (String) searchSuggestion.getTag(); + if (callback != null && suggestion != null) { + callback.getFunnel().searchDidYouMean(); + callback.setSearchText(suggestion); + startSearch(suggestion, true); + } } public void show() { @@ -390,7 +391,7 @@ private void clearResults(boolean clearSuggestion) { searchResultsContainer.setVisibility(View.GONE); - searchNoResults.setVisibility(View.GONE); + searchEmptyView.setVisibility(View.GONE); searchErrorView.setVisibility(View.GONE); if (clearSuggestion) { searchSuggestion.setVisibility(View.GONE); @@ -426,13 +427,12 @@ } } - searchResultsContainer.setVisibility(View.VISIBLE); - if (totalResults.size() == 0) { - searchNoResults.setVisibility(View.VISIBLE); - searchResultsList.setVisibility(View.GONE); + if (totalResults.isEmpty()) { + searchEmptyView.setVisibility(View.VISIBLE); + searchResultsContainer.setVisibility(View.GONE); } else { - searchNoResults.setVisibility(View.GONE); - searchResultsList.setVisibility(View.VISIBLE); + searchEmptyView.setVisibility(View.GONE); + searchResultsContainer.setVisibility(View.VISIBLE); } getAdapter().notifyDataSetChanged(); diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 13f6e80..c93c977 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -95,7 +95,7 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/search_background_color"> + android:background="?attr/feed_window_background_color"> <fragment android:id="@+id/fragment_search_results" diff --git a/app/src/main/res/layout/fragment_search_recent.xml b/app/src/main/res/layout/fragment_search_recent.xml index 23a86cf..feab661 100644 --- a/app/src/main/res/layout/fragment_search_recent.xml +++ b/app/src/main/res/layout/fragment_search_recent.xml @@ -3,10 +3,11 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - android:id="@+id/recent_searches_container" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> + android:id="@+id/recent_searches_container" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="?attr/window_background_color"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/fragment_search_results.xml b/app/src/main/res/layout/fragment_search_results.xml index 6feaefb..12d217c 100644 --- a/app/src/main/res/layout/fragment_search_results.xml +++ b/app/src/main/res/layout/fragment_search_results.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/search_results_display" - android:layout_width="match_parent" - android:layout_height="match_parent"> +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/search_results_display" + android:layout_width="match_parent" + android:layout_height="match_parent"> <org.wikipedia.views.WikiErrorView android:id="@+id/search_error_view" @@ -20,7 +21,8 @@ tools:visibility="visible" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="?attr/window_background_color"> <TextView android:id="@+id/search_suggestion" @@ -38,19 +40,14 @@ android:id="@+id/search_results_list" android:layout_width="match_parent" android:layout_height="match_parent" /> - <TextView - android:id="@+id/search_results_empty" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_gravity="center" - android:textColor="@color/foundation_gray" - android:text="@string/search_no_results_found" - style="?android:textAppearanceMedium" - android:visibility="gone" - tools:visibility="visible" - /> </LinearLayout> + <org.wikipedia.views.SearchEmptyView + android:id="@+id/search_empty_view" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:visibility="gone"/> + </FrameLayout> -- To view, visit https://gerrit.wikimedia.org/r/342012 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic570db7bef4db6e06d9139c7109de299448bd110 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Dbrant <dbr...@wikimedia.org> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org> Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits