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

Change subject: Stop thrashing on page save failure and save on subsequent runs
......................................................................


Stop thrashing on page save failure and save on subsequent runs

Stops relying on a ContentObserver to trigger the saved page sync service.
This isn't viable because of the way the ContentObserver works and the way
the DAO works.

Instead, we'll manually kick off saved page syncing after a reading list
sync event (such as happens when the app is launched or after a page is
added to a reading list).

No more thrashing!

Also added logging for successful page saves for dev convenience.

Bug: T162894
Change-Id: I1d0bfd2e2071942f3c7ad977ae271cf78db82235
---
M app/src/main/java/org/wikipedia/readinglist/page/ReadingListPageObserver.java
M app/src/main/java/org/wikipedia/readinglist/sync/ReadingListSynchronizer.java
M app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
3 files changed, 11 insertions(+), 6 deletions(-)

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



diff --git 
a/app/src/main/java/org/wikipedia/readinglist/page/ReadingListPageObserver.java 
b/app/src/main/java/org/wikipedia/readinglist/page/ReadingListPageObserver.java
index 8ace611..56d6c4a 100644
--- 
a/app/src/main/java/org/wikipedia/readinglist/page/ReadingListPageObserver.java
+++ 
b/app/src/main/java/org/wikipedia/readinglist/page/ReadingListPageObserver.java
@@ -1,16 +1,13 @@
 package org.wikipedia.readinglist.page;
 
 import android.content.Context;
-import android.content.Intent;
 import android.database.ContentObserver;
 import android.net.Uri;
 import android.os.Handler;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 
-import org.wikipedia.WikipediaApp;
 import org.wikipedia.database.contract.ReadingListPageContract;
-import org.wikipedia.savedpages.SavedPageSyncService;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -42,7 +39,6 @@
         if (uri.equals(ReadingListPageContract.Disk.URI)) {
             notifyListeners();
         }
-        WikipediaApp.getInstance().startService(new 
Intent(WikipediaApp.getInstance(), SavedPageSyncService.class));
     }
 
     public void register(@NonNull Context context) {
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/sync/ReadingListSynchronizer.java 
b/app/src/main/java/org/wikipedia/readinglist/sync/ReadingListSynchronizer.java
index 2866816..cfd5ea4 100644
--- 
a/app/src/main/java/org/wikipedia/readinglist/sync/ReadingListSynchronizer.java
+++ 
b/app/src/main/java/org/wikipedia/readinglist/sync/ReadingListSynchronizer.java
@@ -1,5 +1,6 @@
 package org.wikipedia.readinglist.sync;
 
+import android.content.Intent;
 import android.os.Handler;
 import android.os.Looper;
 import android.support.annotation.NonNull;
@@ -16,6 +17,7 @@
 import org.wikipedia.readinglist.ReadingListData;
 import org.wikipedia.readinglist.page.ReadingListPage;
 import org.wikipedia.readinglist.page.database.ReadingListDaoProxy;
+import org.wikipedia.savedpages.SavedPageSyncService;
 import org.wikipedia.settings.Prefs;
 import org.wikipedia.useroption.UserOption;
 import org.wikipedia.useroption.dataclient.UserInfo;
@@ -52,12 +54,14 @@
     }
 
     public void sync() {
+        // TODO: remove when ready for beta/production
         if (!ReleaseUtil.isPreBetaRelease()) {
-            // TODO: remove when ready for beta/production
+            syncSavedPages();
             return;
         }
         if (!User.isLoggedIn()) {
             L.d("Not logged in, so skipping sync of reading lists.");
+            syncSavedPages();
             return;
         }
         CallbackTask.execute(new CallbackTask.Task<Void>() {
@@ -95,6 +99,7 @@
                             L.d("Local and remote reading lists are in sync.");
                         }
                     }
+                    syncSavedPages();
 
                 } catch (IOException e) {
                     e.printStackTrace();
@@ -242,4 +247,8 @@
         List<ReadingList> lists = 
ReadingListData.instance().queryMruLists(null);
         return new RemoteReadingLists(Prefs.getReadingListSyncRev(), lists);
     }
+
+    private void syncSavedPages() {
+        WikipediaApp.getInstance().startService(new 
Intent(WikipediaApp.getInstance(), SavedPageSyncService.class));
+    }
 }
diff --git 
a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java 
b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
index d37964f..9f29075 100644
--- a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
+++ b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
@@ -142,7 +142,7 @@
             L.e("Failed to save page " + title, e);
             return false;
         }
-
+        L.i("Saved page " + title);
         return true;
     }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1d0bfd2e2071942f3c7ad977ae271cf78db82235
Gerrit-PatchSet: 5
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Mholloway <[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