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<T> extends SaneAsyncTask<T> {
public interface Callback<T> {
- void success(T row);
+ void success(T result);
+ void failure(Throwable caught);
}
public interface Task<T> {
- T execute();
+ T execute() throws Throwable;
}
@NonNull private final Task<T> 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<ReadingListPage>() {
- @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<List<ReadingList>>() {
- @Override
- public void success(List<ReadingList> rows) {
+ @Override public void success(List<ReadingList> rows) {
readingLists.set(rows);
readingLists.sort(Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC));
adapter.notifyDataSetChanged();
+ }
+
+ @Override public void failure(Throwable caught) {
+
}
});
}
@@ -199,8 +202,7 @@
private void addAndDismiss(final ReadingList readingList) {
final ReadingListPage page = findOrCreatePage(readingList, pageTitle);
ReadingList.DAO.listContainsTitleAsync(readingList, page, new
CallbackTask.Callback<Boolean>() {
- @Override
- public void success(Boolean contains) {
+ @Override public void success(Boolean contains) {
if (isAdded()) {
String message;
if (contains) {
@@ -220,6 +222,10 @@
dismiss();
}
}
+
+ @Override public void failure(Throwable caught) {
+
+ }
});
}
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListBookmarkMenu.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListBookmarkMenu.java
index 3ee8d29..9afc90c 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListBookmarkMenu.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListBookmarkMenu.java
@@ -32,14 +32,17 @@
public void show(@NonNull PageTitle title) {
ReadingList.DAO.anyListContainsTitleAsync(ReadingListDaoProxy.key(title),
new CallbackTask.Callback<ReadingListPage>() {
- @Override
- public void success(@Nullable ReadingListPage page) {
+ @Override public void success(@Nullable ReadingListPage
page) {
if (!ViewCompat.isAttachedToWindow(anchorView)) {
return;
}
ReadingListBookmarkMenu.this.page = page;
showMenu();
}
+
+ @Override public void failure(Throwable caught) {
+
+ }
});
}
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
index 3d90bb2..0edc9e6 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
@@ -211,8 +211,7 @@
private void updateReadingListData() {
ReadingList.DAO.queryMruLists(null, new
CallbackTask.Callback<List<ReadingList>>() {
- @Override
- public void success(List<ReadingList> lists) {
+ @Override public void success(List<ReadingList> lists) {
if (getActivity() == null) {
return;
}
@@ -224,6 +223,10 @@
}
update();
}
+
+ @Override public void failure(Throwable caught) {
+
+ }
});
}
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
index de33741..595272b 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
@@ -159,10 +159,8 @@
}
private void updateLists(@Nullable final String searchQuery) {
- ReadingList.DAO.queryMruLists(searchQuery,
- new CallbackTask.Callback<List<ReadingList>>() {
- @Override
- public void success(List<ReadingList> rows) {
+ ReadingList.DAO.queryMruLists(searchQuery, new
CallbackTask.Callback<List<ReadingList>>() {
+ @Override public void success(List<ReadingList> rows) {
if (getActivity() == null) {
return;
}
@@ -171,6 +169,11 @@
updateEmptyState(searchQuery);
maybeDeleteListFromIntent();
}
+
+ @Override
+ public void failure(Throwable caught) {
+
+ }
});
}
--
To view, visit https://gerrit.wikimedia.org/r/352919
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9f374938d821c73e79cd6e36442ab8da29237454
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits