Mholloway has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/353350 )
Change subject: WIP: Warn user before setting multi-list page to online-only
......................................................................
WIP: Warn user before setting multi-list page to online-only
Bug: T162268
Change-Id: Ief466c6c0acac951036866b79d531daac596a38c
---
M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
1 file changed, 49 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/50/353350/1
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
index 3d90bb2..082b3f6 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
@@ -1,5 +1,7 @@
package org.wikipedia.readinglist;
+import android.content.Context;
+import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -8,6 +10,7 @@
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
+import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.view.ActionMode;
import android.support.v7.widget.LinearLayoutManager;
@@ -419,13 +422,53 @@
@Override
public void onToggleOffline(int pageIndex) {
ReadingListPage page = readingList == null ? null :
readingList.get(pageIndex);
- if (page != null) {
- ReadingListData.instance().setPageOffline(page, !page.isOffline());
- FeedbackUtil.showMessage(getActivity(), page.isOffline()
- ? R.string.reading_list_article_offline_message
- : R.string.reading_list_article_not_offline_message);
- adapter.notifyDataSetChanged();
+ if (page == null) {
+ return;
}
+ if (page.isOffline()) {
+ ReadingList.DAO.anyListContainsTitleAsync(page.key(), new
PageListCountCallback(page));
+ } else {
+ toggleOffline(page);
+ }
+ }
+
+ private class PageListCountCallback implements
CallbackTask.Callback<ReadingListPage> {
+ @NonNull final ReadingListPage page;
+ private PageListCountCallback(@NonNull ReadingListPage page) {
+ this.page = page;
+ }
+ @Override public void success(ReadingListPage page) {
+ if (page.listKeys().size() > 1) {
+ showMultiListPageToggleOfflineDialog(page);
+ } else {
+ toggleOffline(page);
+ }
+ }
+ }
+
+ private void showMultiListPageToggleOfflineDialog(@NonNull final
ReadingListPage page) {
+ if (getContext() == null) {
+ return;
+ }
+ new AlertDialog.Builder(getContext())
+ .setTitle("Remove from multiple lists?")
+ .setPositiveButton("Remove from offline", new
DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ toggleOffline(page);
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null)
+ .create()
+ .show();
+ }
+
+ private void toggleOffline(@NonNull ReadingListPage page) {
+ ReadingListData.instance().setPageOffline(page, !page.isOffline());
+ FeedbackUtil.showMessage(getActivity(), page.isOffline()
+ ? R.string.reading_list_article_offline_message
+ : R.string.reading_list_article_not_offline_message);
+ adapter.notifyDataSetChanged();
}
@Override
--
To view, visit https://gerrit.wikimedia.org/r/353350
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ief466c6c0acac951036866b79d531daac596a38c
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