[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Add failure branch to CallbackTask
Mholloway has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/352919 ) Change subject: Add failure branch to CallbackTask .. Add failure branch to CallbackTask Bug: T152403 Change-Id: I9f374938d821c73e79cd6e36442ab8da29237454 --- M app/src/main/java/org/wikipedia/concurrency/CallbackTask.java M app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java M app/src/main/java/org/wikipedia/feed/random/RandomCardView.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/ReadingListBookmarkMenu.java M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java M app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java 8 files changed, 51 insertions(+), 16 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/19/352919/1 diff --git a/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java b/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java index d53b1f2..afa164d 100644 --- a/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java +++ b/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java @@ -5,11 +5,12 @@ public class CallbackTask extends SaneAsyncTask { public interface Callback { -void success(T row); +void success(T result); +void failure(Throwable caught); } public interface Task { -T execute(); +T execute() throws Throwable; } @NonNull private final Task task; @@ -39,4 +40,12 @@ callback = null; } } + +@Override public void onCatch(Throwable caught) { +super.onCatch(caught); +if (callback != null) { +callback.failure(caught); +callback = null; +} +} } diff --git a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java index 5be172e..726dbde 100644 --- a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java +++ b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java @@ -108,8 +108,7 @@ PageTitle title = new PageTitle(card.articleTitle(), card.wikiSite()); ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(title), new CallbackTask.Callback() { -@Override -public void success(@Nullable ReadingListPage page) { +@Override public void success(@Nullable ReadingListPage page) { boolean listContainsTitle = page != null; int actionIcon = listContainsTitle @@ -135,6 +134,10 @@ footer(footer); } + +@Override public void failure(Throwable caught) { + +} }); } diff --git a/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java b/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java index 189bf24..3fdf518 100644 --- a/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java +++ b/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java @@ -74,6 +74,10 @@ } } } + +@Override public void failure(Throwable caught) { + +} }); } } diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java b/app/src/main/java/org/wikipedia/page/PageFragment.java index ca4f7d6..b044e04 100755 --- a/app/src/main/java/org/wikipedia/page/PageFragment.java +++ b/app/src/main/java/org/wikipedia/page/PageFragment.java @@ -706,6 +706,10 @@ pageActionTabsCallback.updateBookmark(false); } } + +@Override public void failure(Throwable caught) { + +} }); } diff --git a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java index 8e42240..0ce6a5c 100644 --- a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java +++ b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java @@ -156,11 +156,14 @@ private void updateLists() { ReadingList.DAO.queryMruLists(null, new CallbackTask.Callback>() { -@Override -public void success(List rows) { +@Override public void success(List rows) { readingLists.set(rows); readingLists.sort(Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC)); adapter.notifyDataSetChanged(); +} + +@Over
[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Add failure branch to CallbackTask
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/352919 ) Change subject: Add failure branch to CallbackTask .. Add failure branch to CallbackTask Bug: T152403 Change-Id: I9f374938d821c73e79cd6e36442ab8da29237454 --- M app/src/main/java/org/wikipedia/concurrency/CallbackTask.java M app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java M app/src/main/java/org/wikipedia/feed/random/RandomCardView.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/ReadingListBookmarkMenu.java M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java M app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java 8 files changed, 36 insertions(+), 23 deletions(-) Approvals: Niedzielski: Looks good to me, approved jenkins-bot: Verified diff --git a/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java b/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java index d53b1f2..8fced1e 100644 --- a/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java +++ b/app/src/main/java/org/wikipedia/concurrency/CallbackTask.java @@ -3,13 +3,16 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import org.wikipedia.util.log.L; + public class CallbackTask extends SaneAsyncTask { public interface Callback { -void success(T row); +void success(T result); +void failure(Throwable caught); } public interface Task { -T execute(); +T execute() throws Throwable; } @NonNull private final Task task; @@ -39,4 +42,20 @@ callback = null; } } + +@Override public void onCatch(Throwable caught) { +super.onCatch(caught); +if (callback != null) { +callback.failure(caught); +callback = null; +} +} + +public static class DefaultCallback implements Callback { +@Override public void success(T result) { +} +@Override public void failure(Throwable caught) { +L.e(caught); +} +} } diff --git a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java index 5be172e..524b4f5 100644 --- a/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java +++ b/app/src/main/java/org/wikipedia/feed/featured/FeaturedArticleCardView.java @@ -107,9 +107,8 @@ private void footer(@NonNull FeaturedArticleCard card) { PageTitle title = new PageTitle(card.articleTitle(), card.wikiSite()); ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(title), -new CallbackTask.Callback() { -@Override -public void success(@Nullable ReadingListPage page) { +new CallbackTask.DefaultCallback() { +@Override public void success(@Nullable ReadingListPage page) { boolean listContainsTitle = page != null; int actionIcon = listContainsTitle diff --git a/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java b/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java index 189bf24..f843607 100644 --- a/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java +++ b/app/src/main/java/org/wikipedia/feed/random/RandomCardView.java @@ -63,7 +63,7 @@ }; private void getRandomReadingListPage(@NonNull final Throwable throwableIfEmpty) { -ReadingListPageDao.instance().randomPage(new CallbackTask.Callback() { +ReadingListPageDao.instance().randomPage(new CallbackTask.DefaultCallback() { @Override public void success(@Nullable PageTitle title) { if (getCallback() != null && getCard() != null) { if (title != null) { diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java b/app/src/main/java/org/wikipedia/page/PageFragment.java index 3b64005..ad0f505 100755 --- a/app/src/main/java/org/wikipedia/page/PageFragment.java +++ b/app/src/main/java/org/wikipedia/page/PageFragment.java @@ -688,7 +688,7 @@ public void updateBookmark() { ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(getTitle()), -new CallbackTask.Callback() { +new CallbackTask.DefaultCallback() { @Override public void success(@Nullable ReadingListPage page) { if (!isAdded()) { return; diff --git a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.j