jenkins-bot has submitted this change and it was merged.

Change subject: A few Search refinements.
......................................................................


A few Search refinements.

- "Select all" search text upon invoking the search fragment.
- Scroll to top of list when search term changes.

Change-Id: Id5af1450c7c97ab07848417eb71d61e59e6a783c
---
M wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
M wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
M wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
3 files changed, 47 insertions(+), 0 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java 
b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
index ac3d088..a41ccb4 100644
--- a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
@@ -197,6 +197,17 @@
                     getWikidataDescriptions(lastResults.getResults());
                     getPageThumbnails(lastResults.getResults());
                 }
+
+                if (continueOffset == 0) {
+                    // scroll to top, but post it to the message queue, 
because it should be done
+                    // after the data set is updated.
+                    searchResultsList.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            searchResultsList.setSelectionAfterHeaderView();
+                        }
+                    });
+                }
             }
 
             @Override
diff --git 
a/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java 
b/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
index ce16dfa..9b37324 100644
--- a/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
@@ -25,6 +25,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
 import android.widget.TextView;
 
 public class SearchArticlesFragment extends Fragment {
@@ -358,6 +359,13 @@
         // automatically trigger the showing of the corresponding search 
results.
         if (isValidQuery(lastSearchedText)) {
             searchView.setQuery(lastSearchedText, false);
+
+            // automatically select all text in the search field, so that 
typing a new character
+            // will clear it by default
+            EditText editText = getSearchViewEditText(searchView);
+            if (editText != null) {
+                editText.selectAll();
+            }
         }
         MenuItemCompat.setActionView(searchAction, searchView);
     }
@@ -378,6 +386,26 @@
         }
     }
 
+    /**
+     * Retrieve the EditText component from inside a SearchView widget, so 
that operations
+     * may be performed on the EditText, such as selecting text.
+     * @param parent SearchView from which to retrieve the EditText view.
+     * @return EditText view, or null if not found.
+     */
+    private EditText getSearchViewEditText(ViewGroup parent) {
+        for (int i = 0; i < parent.getChildCount(); i++) {
+            if (parent.getChildAt(i) instanceof EditText) {
+                return (EditText)parent.getChildAt(i);
+            } else if (parent.getChildAt(i) instanceof ViewGroup) {
+                EditText et = 
getSearchViewEditText((ViewGroup)parent.getChildAt(i));
+                if (et != null) {
+                    return et;
+                }
+            }
+        }
+        return null;
+    }
+
     /*
     Update any UI elements related to WP Zero
      */
diff --git 
a/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java 
b/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
index 5bf54a5..1327af0 100644
--- a/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
@@ -278,6 +278,14 @@
                     if (result.size() == 0 && onNoResultsListener != null) {
                         onNoResultsListener.onNoResults();
                     }
+                    // scroll to top, but post it to the message queue, 
because it should be done
+                    // after the data set is updated.
+                    searchResultsList.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            searchResultsList.setSelectionAfterHeaderView();
+                        }
+                    });
                 }
 
                 @Override

-- 
To view, visit https://gerrit.wikimedia.org/r/168979
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id5af1450c7c97ab07848417eb71d61e59e6a783c
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to