Mholloway has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/356485 )

Change subject: Update: Sort search results in the SearchResults constructor
......................................................................

Update: Sort search results in the SearchResults constructor

Search results sorting was omitted, by me (facepalm), from the recent
patch moving full text search queries to Retrofit.  It was partially
restored by Jcasariego in a downstream consumer.  This centralizes sorting
in the new SearchResults constructor, so that it doesn't have to be
duplicated either in both search clients or in all n consumers.

Also takes out the recent addition of an 'index' property to PageTitle
and restores it to being solely a concern of MwQueryPage.

Change-Id: I154e6730573782a98ba0bc2bcf6cf8291fc61eab
---
M app/src/main/java/org/wikipedia/page/PageTitle.java
M app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
M app/src/main/java/org/wikipedia/search/SearchResult.java
M app/src/main/java/org/wikipedia/search/SearchResults.java
4 files changed, 18 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/85/356485/1

diff --git a/app/src/main/java/org/wikipedia/page/PageTitle.java 
b/app/src/main/java/org/wikipedia/page/PageTitle.java
index 8404b6d..4bc1f8b 100644
--- a/app/src/main/java/org/wikipedia/page/PageTitle.java
+++ b/app/src/main/java/org/wikipedia/page/PageTitle.java
@@ -74,7 +74,6 @@
     @SerializedName("site") @NonNull private final WikiSite wiki;
     @Nullable private String description;
     @Nullable private final PageProperties properties;
-    @Nullable private int index;
 
     /**
      * Creates a new PageTitle object.
@@ -113,12 +112,6 @@
     public PageTitle(@Nullable String text, @NonNull WikiSite wiki, @Nullable 
String thumbUrl, @Nullable String description) {
         this(text, wiki, thumbUrl);
         this.description = description;
-    }
-
-    public PageTitle(@Nullable String text, @NonNull WikiSite wiki, @Nullable 
String thumbUrl, @Nullable String description, @Nullable int index) {
-        this(text, wiki, thumbUrl);
-        this.description = description;
-        this.index = index;
     }
 
     public PageTitle(@Nullable String namespace, @NonNull String text, 
@NonNull WikiSite wiki) {
@@ -237,10 +230,6 @@
         return properties;
     }
 
-    @Nullable public int getIndex() {
-        return index;
-    }
-
     public boolean isMainPage() {
         if (properties != null) {
             return properties.isMainPage();
@@ -334,7 +323,6 @@
         parcel.writeParcelable(properties, flags);
         parcel.writeString(thumbUrl);
         parcel.writeString(description);
-        parcel.writeInt(index);
     }
 
     @Override public boolean equals(Object o) {
@@ -397,6 +385,5 @@
         properties = in.readParcelable(PageProperties.class.getClassLoader());
         thumbUrl = in.readString();
         description = in.readString();
-        index = in.readInt();
     }
 }
diff --git 
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java 
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
index cefad7a..7a7200e 100644
--- 
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++ 
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -48,8 +48,6 @@
 import org.wikipedia.views.ObservableWebView;
 import org.wikipedia.views.ViewUtil;
 
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 
 import retrofit2.Call;
@@ -335,20 +333,7 @@
                     public void success(@NonNull 
Call<MwQueryResponse<MwQueryResponse.Pages>> call,
                                         @NonNull SearchResults results) {
                         funnel.setLatency(System.currentTimeMillis() - 
timeMillis);
-
-                        // Sort the array based on the "index" property
-                        Collections.sort(results.getResults(), new 
Comparator<SearchResult>() {
-                            @Override
-                            public int compare(SearchResult result, 
SearchResult t1) {
-                                int ret = 
((Integer)result.getPageTitle().getIndex()).compareTo(t1.getPageTitle().getIndex());
-                                return ret;
-                            }
-                        });
-
-                        readMoreItems = SearchResults.filter(new 
SearchResults(results.getResults(), results.getContinuation(), null),
-                                entry.getTitle().getPrefixedText(),
-                                true);
-
+                        readMoreItems = SearchResults.filter(results, 
entry.getTitle().getPrefixedText(), true);
                         if (!readMoreItems.getResults().isEmpty()) {
                             // If there are results, set up section and make 
sure it's visible
                             setUpReadMoreSection(layoutInflater, 
readMoreItems);
diff --git a/app/src/main/java/org/wikipedia/search/SearchResult.java 
b/app/src/main/java/org/wikipedia/search/SearchResult.java
index 17dd352..2a8d1e8 100644
--- a/app/src/main/java/org/wikipedia/search/SearchResult.java
+++ b/app/src/main/java/org/wikipedia/search/SearchResult.java
@@ -16,7 +16,7 @@
     private final String redirectFrom;
 
     public SearchResult(@NonNull MwQueryPage page, @NonNull WikiSite wiki) {
-        this(new PageTitle(page.title(), wiki, page.thumbUrl(), 
page.description(), page.index()));
+        this(new PageTitle(page.title(), wiki, page.thumbUrl(), 
page.description()));
     }
 
     public SearchResult(@NonNull PageTitle pageTitle) {
diff --git a/app/src/main/java/org/wikipedia/search/SearchResults.java 
b/app/src/main/java/org/wikipedia/search/SearchResults.java
index 8cee887..d1d8d37 100644
--- a/app/src/main/java/org/wikipedia/search/SearchResults.java
+++ b/app/src/main/java/org/wikipedia/search/SearchResults.java
@@ -11,6 +11,8 @@
 import org.wikipedia.util.log.L;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
@@ -34,10 +36,23 @@
 
     /**
      * Constructor for a list of Retrofit results from BecauseYouReadTask.
+     * @param pages the result pages
+     * @param wiki the wiki searched
+     * @param continuation info for search continuation
+     * @param suggestion a search suggestion to show to the user: "Did you 
mean ...?"
      */
     public SearchResults(@NonNull List<MwQueryPage> pages, @NonNull WikiSite 
wiki,
                          @Nullable Map<String, String> continuation, @Nullable 
String suggestion) {
         List<SearchResult> searchResults = new ArrayList<>();
+
+        // Sort the array based on the "index" property
+        Collections.sort(pages, new Comparator<MwQueryPage>() {
+            @Override
+            public int compare(MwQueryPage a, MwQueryPage b) {
+                return ((Integer) a.index()).compareTo(b.index());
+            }
+        });
+
         for (MwQueryPage page : pages) {
             searchResults.add(new SearchResult(page, wiki));
         }
@@ -47,10 +62,7 @@
     }
 
     /**
-     * Constructor for when we get results.
-     * @param results the actual results
-     * @param continuation info for search continuation
-     * @param suggestion a search suggestion to show to the user: "Did you 
mean ...?"
+     * Constructor for filtered results (currently also used by legacy MW API 
AsyncTasks).
      */
     public SearchResults(@NonNull List<SearchResult> results,
                          @Nullable Map<String, String> continuation,

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I154e6730573782a98ba0bc2bcf6cf8291fc61eab
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <mhollo...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to