Mholloway has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/246288

Change subject: Activate progress bar while fetching random article
......................................................................

Activate progress bar while fetching random article

-Added updateProgressBar() method to RandomHandler

-Refactored RandomHandler.setState() (which sets menu item enabled state)
 to more descriptive and straightforward setEnabled()

-Removed unused items from RandomHandler

Bug: T107791
Change-Id: Ia87b40cf9f07f3d9e605ce28aa18337accb221a1
---
M app/src/main/java/org/wikipedia/page/NavDrawerHelper.java
M app/src/main/java/org/wikipedia/page/PageActivity.java
M app/src/main/java/org/wikipedia/random/RandomHandler.java
3 files changed, 27 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/88/246288/1

diff --git a/app/src/main/java/org/wikipedia/page/NavDrawerHelper.java 
b/app/src/main/java/org/wikipedia/page/NavDrawerHelper.java
index 6aca177..0c7ea76 100644
--- a/app/src/main/java/org/wikipedia/page/NavDrawerHelper.java
+++ b/app/src/main/java/org/wikipedia/page/NavDrawerHelper.java
@@ -106,8 +106,7 @@
     }
 
     public RandomHandler getNewRandomHandler() {
-        return new 
RandomHandler(activity.getNavMenu().findItem(R.id.nav_item_random),
-                new RandomHandler.RandomListener() {
+        return new RandomHandler(activity, new RandomHandler.RandomListener() {
                     @Override
                     public void onRandomPageReceived(@Nullable PageTitle 
title) {
                         HistoryEntry historyEntry = new HistoryEntry(title, 
HistoryEntry.SOURCE_RANDOM);
diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.java 
b/app/src/main/java/org/wikipedia/page/PageActivity.java
index 41f5cbe..da5d9b6 100644
--- a/app/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/app/src/main/java/org/wikipedia/page/PageActivity.java
@@ -125,6 +125,10 @@
         return tabsContainerView;
     }
 
+    public ProgressBar getProgressBar() {
+        return progressBar;
+    }
+
     public ActionBarDrawerToggle getDrawerToggle() {
         return mDrawerToggle;
     }
diff --git a/app/src/main/java/org/wikipedia/random/RandomHandler.java 
b/app/src/main/java/org/wikipedia/random/RandomHandler.java
index 65eb3e2..cce8bfe 100644
--- a/app/src/main/java/org/wikipedia/random/RandomHandler.java
+++ b/app/src/main/java/org/wikipedia/random/RandomHandler.java
@@ -3,7 +3,9 @@
 import android.os.Handler;
 import android.os.Message;
 import android.util.Log;
-import android.view.MenuItem;
+
+import org.wikipedia.R;
+import org.wikipedia.page.PageActivity;
 import org.wikipedia.page.PageTitle;
 import org.wikipedia.WikipediaApp;
 
@@ -12,31 +14,30 @@
     private RandomArticleIdTask curRandomArticleIdTask;
     private static final int MESSAGE_RND = 1;
 
-    private MenuItem randomMenuItem;
-    private boolean isClosed;
-    private RandomListener randomListener;
+    private PageActivity activity;
+    private RandomListener listener;
 
     public interface RandomListener {
         void onRandomPageReceived(PageTitle title);
         void onRandomPageFailed(Throwable caught);
     }
 
-    public RandomHandler(MenuItem menuItem, RandomListener listener) {
-        randomMenuItem = menuItem;
-        randomListener = listener;
+    public RandomHandler(PageActivity activity, RandomListener listener) {
+        this.activity = activity;
+        this.listener = listener;
         this.app = WikipediaApp.getInstance();
-        isClosed = false;
 
         //set initial state...
-        setState(false);
+        setProgressBarLoading(false);
+        setMenuItemEnabled(true);
     }
 
-    private void setState(boolean busy) {
-        randomMenuItem.setEnabled(!busy);
+    private void setMenuItemEnabled(boolean busy) {
+        activity.getNavMenu().findItem(R.id.nav_item_random).setEnabled(busy);
     }
 
-    public void onStop() {
-        isClosed = true;
+    private void setProgressBarLoading(boolean loading) {
+        activity.updateProgressBar(loading, true, 0);
     }
 
     public void doVisitRandomArticle() {
@@ -47,28 +48,25 @@
 
                     @Override
                     public void onBeforeExecute() {
-                        setState(true);
+                        setProgressBarLoading(true);
+                        setMenuItemEnabled(false);
                     }
 
                     @Override
                     public void onFinish(PageTitle title) {
-                        if (isClosed) {
-                            return;
-                        }
-                        setState(false);
+                        setProgressBarLoading(false);
+                        setMenuItemEnabled(true);
                         Log.d("Wikipedia", "Random article title pulled: " + 
title);
-                        randomListener.onRandomPageReceived(title);
+                        listener.onRandomPageReceived(title);
                     }
 
                     @Override
                     public void onCatch(Throwable caught) {
-                        if (isClosed) {
-                            return;
-                        }
-                        setState(false);
+                        setProgressBarLoading(false);
+                        setMenuItemEnabled(true);
                         Log.d("Wikipedia", "Random article ID retrieval 
failed");
                         curRandomArticleIdTask = null;
-                        randomListener.onRandomPageFailed(caught);
+                        listener.onRandomPageFailed(caught);
                     }
                 };
                 if (curRandomArticleIdTask != null) {

-- 
To view, visit https://gerrit.wikimedia.org/r/246288
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia87b40cf9f07f3d9e605ce28aa18337accb221a1
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