Yuvipanda has uploaded a new change for review.
https://gerrit.wikimedia.org/r/93623
Change subject: Normalize page titles when creating PageTitle objects
......................................................................
Normalize page titles when creating PageTitle objects
Also add tests for the normalizing behavior
Change-Id: Ie72d82067604512d9f356e6f86960a7f5439e748
---
A wikipedia-it/src/main/java/org/wikimedia/wikipedia/test/PageTitleTests.java
M wikipedia/src/main/java/org/wikimedia/wikipedia/PageFetchTask.java
M wikipedia/src/main/java/org/wikimedia/wikipedia/PageTitle.java
M wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
4 files changed, 28 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/23/93623/1
diff --git
a/wikipedia-it/src/main/java/org/wikimedia/wikipedia/test/PageTitleTests.java
b/wikipedia-it/src/main/java/org/wikimedia/wikipedia/test/PageTitleTests.java
new file mode 100644
index 0000000..608e82e
--- /dev/null
+++
b/wikipedia-it/src/main/java/org/wikimedia/wikipedia/test/PageTitleTests.java
@@ -0,0 +1,13 @@
+package org.wikimedia.wikipedia.test;
+
+import junit.framework.TestCase;
+import org.wikimedia.wikipedia.PageTitle;
+
+public class PageTitleTests extends TestCase {
+ public void testPrefixedText() throws Exception {
+ assertEquals(new PageTitle(null, "Test title").getPrefixedText(),
"Test_title");
+ assertEquals(new PageTitle(null, "Test title").getPrefixedText(),
"Test_title");
+ assertEquals(new PageTitle("Talk", "Test title").getPrefixedText(),
"Talk:Test_title");
+ assertEquals(new PageTitle(null, "Test title").getText(),
"Test_title");
+ }
+}
diff --git a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageFetchTask.java
b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageFetchTask.java
index 522d861..cede91c 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageFetchTask.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageFetchTask.java
@@ -1,6 +1,5 @@
package org.wikimedia.wikipedia;
-import android.content.Context;
import org.json.JSONArray;
import org.json.JSONObject;
import org.mediawiki.api.json.Api;
@@ -23,7 +22,7 @@
@Override
public Page performTask() throws Throwable {
ApiResult result = api.action("mobileview")
- .param("page", title.getTitle()) //TODO: Support non main NS!
+ .param("page", title.getPrefixedText())
.param("prop", "text|sections")
.param("sections", "0")
.param("sectionprop", "toclevel|line|anchor")
diff --git a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageTitle.java
b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageTitle.java
index a119d30..c3f8f70 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageTitle.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageTitle.java
@@ -4,26 +4,30 @@
import android.os.Parcelable;
/**
- * Immutable value object representing the title of a page.
+ * Immutable value object representing the text of a page.
*
* Points to a specific page in a specific namespace on a specific site.
* Is immutable.
*/
public class PageTitle implements Parcelable {
private final String namespace;
- private final String title;
+ private final String text;
- public PageTitle(final String namesapce, final String title) {
- this.namespace = namesapce;
- this.title = title; //FIXME: Actually normalize this!
+ public PageTitle(final String namespace, final String text) {
+ this.namespace = namespace;
+ this.text = text.replaceAll("\\s+", "_");
}
public String getNamespace() {
return namespace;
}
- public String getTitle() {
- return title;
+ public String getText() {
+ return text;
+ }
+
+ public String getPrefixedText() {
+ return namespace == null ? text : namespace + ":" + text;
}
@Override
@@ -44,12 +48,12 @@
private PageTitle(Parcel in) {
namespace = in.readString();
- title = in.readString();
+ text = in.readString();
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(namespace);
- parcel.writeString(title);
+ parcel.writeString(text);
}
}
diff --git
a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
index 56f5028..af98caa 100644
--- a/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
+++ b/wikipedia/src/main/java/org/wikimedia/wikipedia/PageViewFragment.java
@@ -32,7 +32,7 @@
private void displayPage(Page page) {
JSONObject leadSectionPayload = new JSONObject();
try {
- leadSectionPayload.put("title", page.getTitle().getTitle());
+ leadSectionPayload.put("title", page.getTitle().getPrefixedText());
leadSectionPayload.put("leadSectionHTML",
page.getSections().get(0).toHTML());
} catch (JSONException e) {
// This should never happen
--
To view, visit https://gerrit.wikimedia.org/r/93623
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie72d82067604512d9f356e6f86960a7f5439e748
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits