[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Add failure branch to CallbackTask

2017-05-09 Thread Mholloway (Code Review)
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

2017-05-18 Thread jenkins-bot (Code Review)
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