Sharvaniharan has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/404059 )
Change subject: Show message when article limit is reached on reading lists
......................................................................
Show message when article limit is reached on reading lists
- 1000 articles is the limit per article, and users will be shown a message
when trying to add >1000 articles.
Bug: T180230
Change-Id: I56b2c63f0ce5cbbfa210cca2ec10c94c6815736d
---
M app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
M app/src/main/res/values-qq/strings.xml
M app/src/main/res/values/strings.xml
3 files changed, 24 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/59/404059/1
diff --git
a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
index ef18d78..c697357 100644
--- a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
+++ b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
@@ -69,6 +69,7 @@
private CreateButtonClickListener createClickListener = new
CreateButtonClickListener();
private List<ReadingList> readingLists = new ArrayList<>();
+ public static final int MAX_ARTICLE_LIMIT = 1000;
@Nullable private DialogInterface.OnDismissListener dismissListener;
private ReadingListItemCallback listItemCallback = new
ReadingListItemCallback();
@@ -215,14 +216,21 @@
String message;
if (exists) {
message = getString(R.string.reading_list_already_exists);
+ showViewListSnackBar(readingList, message, true);
+
+ } else if (readingList.pages().size() >= MAX_ARTICLE_LIMIT) {
+ message =
String.format(getString(R.string.reading_list_article_limit_message),
readingList.title());
+ showViewListSnackBar(readingList, message, false);
+
} else {
message =
String.format(getString(R.string.reading_list_added_to_named),
readingList.isDefault() ?
getString(R.string.default_reading_list_name) : readingList.title());
new
ReadingListsFunnel(title.getWikiSite()).logAddToList(readingList,
readingLists.size(), invokeSource);
ReadingListDbHelper.instance().addPageToList(readingList,
title, true);
+ showViewListSnackBar(readingList, message, true);
+
}
- showViewListSnackBar(readingList, message);
dismiss();
}
});
@@ -232,6 +240,11 @@
if (titles.size() == 1) {
addAndDismiss(readingList, titles.get(0));
return;
+ }
+ if (readingList.pages().size() + titles.size() > MAX_ARTICLE_LIMIT) {
+ for (int i = MAX_ARTICLE_LIMIT - readingList.pages().size(); i <
titles.size(); i++) {
+ titles.remove(i);
+ }
}
CallbackTask.execute(() ->
ReadingListDbHelper.instance().addPagesToListIfNotExist(readingList, titles),
new CallbackTask.DefaultCallback<Integer>() {
@Override
@@ -247,15 +260,19 @@
readingList.isDefault() ?
getString(R.string.default_reading_list_name) : readingList.title());
new ReadingListsFunnel().logAddToList(readingList,
readingLists.size(), invokeSource);
}
- showViewListSnackBar(readingList, message);
+ showViewListSnackBar(readingList, message, true);
dismiss();
}
});
}
- private void showViewListSnackBar(@NonNull final ReadingList list,
@NonNull String message) {
- FeedbackUtil.makeSnackbar(getActivity(), message,
FeedbackUtil.LENGTH_DEFAULT)
- .setAction(R.string.reading_list_added_view_button, v ->
v.getContext().startActivity(ReadingListActivity.newIntent(v.getContext(),
list))).show();
+ private void showViewListSnackBar(@NonNull final ReadingList list,
@NonNull String message, boolean showActionButton) {
+ if (showActionButton) {
+ FeedbackUtil.makeSnackbar(getActivity(), message,
FeedbackUtil.LENGTH_DEFAULT)
+ .setAction(R.string.reading_list_added_view_button, v ->
v.getContext().startActivity(ReadingListActivity.newIntent(v.getContext(),
list))).show();
+ } else {
+ FeedbackUtil.makeSnackbar(getActivity(), message,
FeedbackUtil.LENGTH_DEFAULT).show();
+ }
}
private class ReadingListItemCallback implements
ReadingListItemView.Callback {
diff --git a/app/src/main/res/values-qq/strings.xml
b/app/src/main/res/values-qq/strings.xml
index d2825a0..8e5cac6 100644
--- a/app/src/main/res/values-qq/strings.xml
+++ b/app/src/main/res/values-qq/strings.xml
@@ -369,6 +369,7 @@
<string name="reading_list_saved_list_rename">\"%1$s\" _[string indicating
that the list was created by user]</string>
<string name="split_list_name">Name string for the newly created lists from
the original large list that will be split. \"%1$s\" is the name of the
original list followed by _ and \"%2$d\" being the postfix number</string>
<string name="split_reading_list_message">Message shown to users with large
reading lists, informing them that this update will enforce an upper limit of
1000 articles per list and hence will be splitting already existing lists that
contain more than 1000 articles</string>
+ <string name="reading_list_article_limit_message">Message shown to the users
when the limit for maimum number of articles in a list is reached, informing
them that they will not be able to add anymore to that list, named \"%s\"
</string>
<plurals name="reading_list_article_offline_message">
<item quantity="one">Message shown when a single reading list article is
made available for offline use.</item>
<item quantity="other">Message shown when more than one reading list
article is made available for offline use.</item>
diff --git a/app/src/main/res/values/strings.xml
b/app/src/main/res/values/strings.xml
index 8e5c3a4..f33daf8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -394,6 +394,7 @@
<string name="reading_list_saved_list_rename">%1$s (user created)</string>
<string name="split_list_name">%1$s_%2$d</string>
<string name="split_reading_list_message">There is a limit of 1000
articles per synced reading list. Existing lists with more than this limit have
been split into multiple lists.</string>
+ <string name="reading_list_article_limit_message">Can\'t add to this list.
You\'ve reached the limit of 1,000 articles per list for %s.</string>
<plurals name="reading_list_article_offline_message">
<item quantity="one">This article will now be available offline.</item>
<item quantity="other">These articles will now be available
offline.</item>
--
To view, visit https://gerrit.wikimedia.org/r/404059
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I56b2c63f0ce5cbbfa210cca2ec10c94c6815736d
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Sharvaniharan <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits