jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/352983 )

Change subject: Update WikitextClient to use formatversion=2
......................................................................


Update WikitextClient to use formatversion=2

Bug: T150382
Change-Id: I7669b25d0130db9a5daaeaad9e612f16903c4596
---
M app/src/main/java/org/wikipedia/dataclient/mwapi/MwQueryPage.java
M app/src/main/java/org/wikipedia/edit/wikitext/Wikitext.java
M app/src/main/java/org/wikipedia/edit/wikitext/WikitextClient.java
M app/src/test/res/raw/wikitext.json
4 files changed, 22 insertions(+), 23 deletions(-)

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



diff --git a/app/src/main/java/org/wikipedia/dataclient/mwapi/MwQueryPage.java 
b/app/src/main/java/org/wikipedia/dataclient/mwapi/MwQueryPage.java
index f7ee9d7..9d5f09b 100644
--- a/app/src/main/java/org/wikipedia/dataclient/mwapi/MwQueryPage.java
+++ b/app/src/main/java/org/wikipedia/dataclient/mwapi/MwQueryPage.java
@@ -42,9 +42,9 @@
     }
 
     public static class Revision {
-        @SuppressWarnings("unused,NullableProblems") @NonNull private String 
contentformat;
-        @SuppressWarnings("unused,NullableProblems") @NonNull private String 
contentmodel;
-        @SerializedName("*") @SuppressWarnings("unused,NullableProblems") 
@NonNull private String content;
+        @SuppressWarnings("unused,NullableProblems") 
@SerializedName("contentformat") @NonNull private String contentFormat;
+        @SuppressWarnings("unused,NullableProblems") 
@SerializedName("contentmodel") @NonNull private String contentModel;
+        @SuppressWarnings("unused,NullableProblems") @NonNull private String 
content;
         @NonNull public String content() {
             return content;
         }
diff --git a/app/src/main/java/org/wikipedia/edit/wikitext/Wikitext.java 
b/app/src/main/java/org/wikipedia/edit/wikitext/Wikitext.java
index 958e578..5774585 100644
--- a/app/src/main/java/org/wikipedia/edit/wikitext/Wikitext.java
+++ b/app/src/main/java/org/wikipedia/edit/wikitext/Wikitext.java
@@ -5,24 +5,21 @@
 import org.wikipedia.dataclient.mwapi.MwQueryPage;
 import org.wikipedia.model.BaseModel;
 
-import java.util.Iterator;
-import java.util.Map;
+import java.util.List;
 
 public class Wikitext extends BaseModel {
     
@SuppressWarnings("unused,NullableProblems,MismatchedQueryAndUpdateOfCollection")
 @Nullable
-    private Map<String, MwQueryPage> pages;
+    private List<MwQueryPage> pages;
 
     @Nullable String wikitext() {
         if (pages == null) {
             return null;
         }
-        Iterator<Map.Entry<String, MwQueryPage>> i = 
pages.entrySet().iterator();
-        MwQueryPage page = i.next().getValue();
-        if (page == null
-                || page.revisions() == null
-                || page.revisions().get(0) == null) {
-            return null;
+        for (MwQueryPage page : pages) {
+            if (page.revisions() != null && page.revisions().get(0) != null) {
+                return page.revisions().get(0).content();
+            }
         }
-        return page.revisions().get(0).content();
+        return null;
     }
 }
diff --git a/app/src/main/java/org/wikipedia/edit/wikitext/WikitextClient.java 
b/app/src/main/java/org/wikipedia/edit/wikitext/WikitextClient.java
index 1de7669..af42395 100644
--- a/app/src/main/java/org/wikipedia/edit/wikitext/WikitextClient.java
+++ b/app/src/main/java/org/wikipedia/edit/wikitext/WikitextClient.java
@@ -33,15 +33,17 @@
         call.enqueue(new retrofit2.Callback<MwQueryResponse<Wikitext>>() {
             @Override
             public void onResponse(Call<MwQueryResponse<Wikitext>> call, 
Response<MwQueryResponse<Wikitext>> response) {
-                if (response.body().hasError()) {
+                // noinspection ConstantConditions
+                if (response.body().success() && 
response.body().query().wikitext() != null) {
+                    // noinspection ConstantConditions
+                    cb.success(call, response.body().query().wikitext());
+                } else if (response.body().hasError()) {
+                    // noinspection ConstantConditions
                     cb.failure(call, new 
MwException(response.body().getError()));
-                    return;
-                } else if (response.body().query().wikitext() == null) {
+                } else {
                     Throwable t = new JsonParseException("Error parsing 
wikitext from query response");
                     cb.failure(call, t);
-                    return;
                 }
-                cb.success(call, response.body().query().wikitext());
             }
 
             @Override
@@ -58,7 +60,7 @@
     }
 
     @VisibleForTesting interface Service {
-        
@GET("w/api.php?action=query&format=json&prop=revisions&rvprop=content&rvlimit=1")
+        
@GET("w/api.php?action=query&format=json&formatversion=2&prop=revisions&rvprop=content&rvlimit=1")
         Call<MwQueryResponse<Wikitext>> request(@NonNull @Query("titles") 
String title, @Query("rvsection") int section);
     }
 }
diff --git a/app/src/test/res/raw/wikitext.json 
b/app/src/test/res/raw/wikitext.json
index 4a16cb3..a759d68 100644
--- a/app/src/test/res/raw/wikitext.json
+++ b/app/src/test/res/raw/wikitext.json
@@ -4,8 +4,8 @@
     "continue": "||"
   },
   "query": {
-    "pages": {
-      "46498401": {
+    "pages": [
+      {
         "pageid": 46498401,
         "ns": 2,
         "title": "User:Mhollo/sandbox",
@@ -13,10 +13,10 @@
           {
             "contentformat": "text/x-wiki",
             "contentmodel": "wikitext",
-            "*": "\\o/\n\ntest12\n\n3"
+            "content": "\\o/\n\ntest12\n\n3"
           }
         ]
       }
-    }
+    ]
   }
 }
\ No newline at end of file

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7669b25d0130db9a5daaeaad9e612f16903c4596
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to