BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/160994

Change subject: Fix loading saved pages while offline
......................................................................

Fix loading saved pages while offline

Use a stable ID for storing and loading saved pages.

bug: 70944
Change-Id: I116bbef24940c4e42c7dcb4878aba486c1dbdd9f
---
M wikipedia/src/main/java/org/wikipedia/PageTitle.java
M wikipedia/src/main/java/org/wikipedia/savedpages/SavedPage.java
2 files changed, 16 insertions(+), 4 deletions(-)


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

diff --git a/wikipedia/src/main/java/org/wikipedia/PageTitle.java 
b/wikipedia/src/main/java/org/wikipedia/PageTitle.java
index 35bd4da..3ef2493 100644
--- a/wikipedia/src/main/java/org/wikipedia/PageTitle.java
+++ b/wikipedia/src/main/java/org/wikipedia/PageTitle.java
@@ -102,17 +102,29 @@
         return getPrefixedText().replace("_", " ");
     }
 
-    public String getHashedItentifier() {
-        return Utils.md5base64(String.format("%1$s/%2$s", 
getSite().getDomain(), getPrefixedText()));
+    /** Please keep the ID stable. */
+    public String getIdentifier() {
+        return Utils.md5string(toIdentifierJSON().toString());
     }
 
-    public JSONObject toJSON() {
+    /** Please keep the ID stable. */
+    private JSONObject toIdentifierJSON() {
         try {
             JSONObject json = new JSONObject();
             json.put("site", site.getDomain());
             json.put("namespace", getNamespace());
             json.put("text", getText());
             json.put("fragment", getFragment());
+            return json;
+        } catch (JSONException e) {
+            // This will also never happen
+            throw new RuntimeException(e);
+        }
+    }
+
+    public JSONObject toJSON() {
+        try {
+            JSONObject json = toIdentifierJSON();
             json.put("thumbUrl", getThumbUrl());
             return json;
         } catch (JSONException e) {
diff --git a/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPage.java 
b/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPage.java
index a15c970..fd82a67 100644
--- a/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPage.java
+++ b/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPage.java
@@ -103,7 +103,7 @@
     String getBaseDir() {
         // Make the folder name be based on the complete PageTitle object,
         // which includes title, site info, etc.
-        String dir = getSavedPagesDir() + "/" + 
Utils.md5string(title.toJSON().toString());
+        String dir = getSavedPagesDir() + "/" + title.getIdentifier();
         (new File(dir)).mkdirs();
         return dir;
     }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I116bbef24940c4e42c7dcb4878aba486c1dbdd9f
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>

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

Reply via email to