[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Fix issues with reading lists.
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/384054 ) Change subject: Fix issues with reading lists. .. Fix issues with reading lists. - Harden the outer-loop logic of the SavedPageSyncService, where it now re-queries the db to get an updated status of the current page after the long-running operation of saving the page contents is finished. This way, if the page was deleted in the meantime, or added to other lists, we won't overwrite its db row with a stale copy. - No longer update reading list details (over the network) from each individual ItemView. This can cause race conditions when an ItemView is part of a RecyclerView and gets invalidated based on Window-level events. Fetching from the network is now handled at the Fragment level, where the lifecycle is more controlled. - Fix adding an article to a reading list from the long-press menu in PageFragment. (It was incorrectly adding the current article, not the link.) Bug: T177292 Bug: T177307 Change-Id: Iabde86c657e44de58c7669ff26e8fd4ce040b91a --- M app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java M app/src/main/java/org/wikipedia/page/PageFragment.java M app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java M app/src/main/java/org/wikipedia/readinglist/ReadingListHeaderView.java M app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java M app/src/main/java/org/wikipedia/readinglist/ReadingLists.java M app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java M app/src/main/java/org/wikipedia/readinglist/page/database/ReadingListPageDao.java M app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java 10 files changed, 103 insertions(+), 51 deletions(-) Approvals: jenkins-bot: Verified Cooltey: Looks good to me, approved diff --git a/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java b/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java index 26ccfbb..3a71ad9 100644 --- a/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java +++ b/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java @@ -43,7 +43,7 @@ @Override public void onAddToList(PageTitle title, AddToReadingListDialog.InvokeSource source) { -fragment.addToReadingList(source); +fragment.addToReadingList(title, source); } @Override diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java b/app/src/main/java/org/wikipedia/page/PageFragment.java index 0a659c4..f44ef1a 100755 --- a/app/src/main/java/org/wikipedia/page/PageFragment.java +++ b/app/src/main/java/org/wikipedia/page/PageFragment.java @@ -205,7 +205,7 @@ new ReadingListBookmarkMenu(tabLayout, new ReadingListBookmarkMenu.Callback() { @Override public void onAddRequest(@Nullable ReadingListPage page) { - addToReadingList(AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); } @Override @@ -216,7 +216,7 @@ } }).show(getTitle()); } else { - addToReadingList(AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); } } @@ -766,7 +766,7 @@ sharePageLink(); return true; case R.id.menu_page_add_to_list: - addToReadingList(AddToReadingListDialog.InvokeSource.PAGE_OVERFLOW_MENU); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.PAGE_OVERFLOW_MENU); return true; case R.id.menu_page_find_in_page: showFindInPage(); @@ -1313,10 +1313,10 @@ } } -public void addToReadingList(@NonNull AddToReadingListDialog.InvokeSource source) { +public void addToReadingList(@NonNull PageTitle title, @NonNull AddToReadingListDialog.InvokeSource source) { Callback callback = callback(); if (callback != null) { -callback.onPageAddToReadingList(getTitle(), source); +callback.onPageAddToReadingList(title, source); } } diff --git a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java index f122a8c..76c8912 100644 --- a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java +++ b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java @@ -172,6 +172,22 @@ readingLists.set(row
[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Fix issues with reading lists.
Dbrant has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/384054 ) Change subject: Fix issues with reading lists. .. Fix issues with reading lists. - Harden the outer-loop logic of the SavedPageSyncService, where it now re-queries the db to get an updated status of the current page after the long-running operation of saving the page contents is finished. This way, if the page was deleted in the meantime, or added to other lists, we won't overwrite its db row with a stale copy. - No longer update reading list details (over the network) from each individual ItemView. This can cause race conditions when an ItemView is part of a RecyclerView and gets invalidated based on Window-level events. Fetching from the network is now handled at the Fragment level, where the lifecycle is more controlled. - Fix adding an article to a reading list from the long-press menu in PageFragment. (It was incorrectly adding the current article, not the link.) Bug: T177292 Bug: T177307 Change-Id: Iabde86c657e44de58c7669ff26e8fd4ce040b91a --- M app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java M app/src/main/java/org/wikipedia/page/PageFragment.java M app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java M app/src/main/java/org/wikipedia/readinglist/ReadingListHeaderView.java M app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java M app/src/main/java/org/wikipedia/readinglist/ReadingLists.java M app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java M app/src/main/java/org/wikipedia/readinglist/page/database/ReadingListPageDao.java M app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java 10 files changed, 103 insertions(+), 51 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/54/384054/1 diff --git a/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java b/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java index 26ccfbb..3a71ad9 100644 --- a/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java +++ b/app/src/main/java/org/wikipedia/page/PageContainerLongPressHandler.java @@ -43,7 +43,7 @@ @Override public void onAddToList(PageTitle title, AddToReadingListDialog.InvokeSource source) { -fragment.addToReadingList(source); +fragment.addToReadingList(title, source); } @Override diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java b/app/src/main/java/org/wikipedia/page/PageFragment.java index 0a659c4..f44ef1a 100755 --- a/app/src/main/java/org/wikipedia/page/PageFragment.java +++ b/app/src/main/java/org/wikipedia/page/PageFragment.java @@ -205,7 +205,7 @@ new ReadingListBookmarkMenu(tabLayout, new ReadingListBookmarkMenu.Callback() { @Override public void onAddRequest(@Nullable ReadingListPage page) { - addToReadingList(AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); } @Override @@ -216,7 +216,7 @@ } }).show(getTitle()); } else { - addToReadingList(AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.BOOKMARK_BUTTON); } } @@ -766,7 +766,7 @@ sharePageLink(); return true; case R.id.menu_page_add_to_list: - addToReadingList(AddToReadingListDialog.InvokeSource.PAGE_OVERFLOW_MENU); +addToReadingList(getTitle(), AddToReadingListDialog.InvokeSource.PAGE_OVERFLOW_MENU); return true; case R.id.menu_page_find_in_page: showFindInPage(); @@ -1313,10 +1313,10 @@ } } -public void addToReadingList(@NonNull AddToReadingListDialog.InvokeSource source) { +public void addToReadingList(@NonNull PageTitle title, @NonNull AddToReadingListDialog.InvokeSource source) { Callback callback = callback(); if (callback != null) { -callback.onPageAddToReadingList(getTitle(), source); +callback.onPageAddToReadingList(title, source); } } diff --git a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java index f122a8c..76c8912 100644 --- a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java +++ b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java @@ -172,6 +172,22 @@ readingLists.s