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

Reply via email to