Mholloway has uploaded a new change for review. (
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(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/83/352983/1
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: newchange
Gerrit-Change-Id: I7669b25d0130db9a5daaeaad9e612f16903c4596
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits