Dr0ptp4kt has uploaded a new change for review.

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

Change subject: Make text resize buttons usable on Kindle after first tap.
......................................................................

Make text resize buttons usable on Kindle after first tap.

* WebView invalidate override doesn't fire on Kindle on text resize.
* Consequently, that meant after the first tap on +/-, resize was blocked.
* So we pick a middleground and show the spinner for 0.75 seconds.

Change-Id: I55acfe656d763fcefbff2c20ed305c8b2f17c797
---
D wikipedia/src/main/java/org/wikipedia/events/WebViewInvalidateEvent.java
M wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
M wikipedia/src/main/java/org/wikipedia/theme/ThemeChooserDialog.java
M wikipedia/src/main/java/org/wikipedia/views/ObservableWebView.java
4 files changed, 16 insertions(+), 30 deletions(-)


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

diff --git 
a/wikipedia/src/main/java/org/wikipedia/events/WebViewInvalidateEvent.java 
b/wikipedia/src/main/java/org/wikipedia/events/WebViewInvalidateEvent.java
deleted file mode 100644
index b861fe4..0000000
--- a/wikipedia/src/main/java/org/wikipedia/events/WebViewInvalidateEvent.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package org.wikipedia.events;
-
-public class WebViewInvalidateEvent {
-}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
index e2bfaa2..092d999 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
@@ -7,10 +7,13 @@
 import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.preference.PreferenceManager;
 import android.support.v4.app.FragmentActivity;
 import android.support.v4.widget.DrawerLayout;
 import android.text.Html;
+import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.KeyEvent;
@@ -316,7 +319,15 @@
     @Subscribe
     public void onChangeTextSize(ChangeTextSizeEvent event) {
         if (curPageFragment != null && curPageFragment.getWebView() != null) {
+            themeChooser.updateButtonState(true);
             curPageFragment.updateFontSize();
+            Handler uiThread = new Handler(Looper.getMainLooper());
+            uiThread.postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    themeChooser.updateButtonState(false);
+                }
+            }, (long)Math.ceil(0.75 * DateUtils.SECOND_IN_MILLIS));
         }
     }
 
diff --git 
a/wikipedia/src/main/java/org/wikipedia/theme/ThemeChooserDialog.java 
b/wikipedia/src/main/java/org/wikipedia/theme/ThemeChooserDialog.java
index 5274dff..bac6d32 100644
--- a/wikipedia/src/main/java/org/wikipedia/theme/ThemeChooserDialog.java
+++ b/wikipedia/src/main/java/org/wikipedia/theme/ThemeChooserDialog.java
@@ -9,7 +9,6 @@
 import com.squareup.otto.Subscribe;
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
-import org.wikipedia.events.WebViewInvalidateEvent;
 
 public class ThemeChooserDialog extends Dialog {
     private WikipediaApp app;
@@ -19,7 +18,6 @@
     private Button buttonThemeLight;
     private Button buttonThemeDark;
     private ProgressBar fontChangeProgressBar;
-    private boolean updatingFont = false;
 
     public ThemeChooserDialog(Context context) {
         super(context);
@@ -46,9 +44,8 @@
         buttonDecreaseTextSize.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                updatingFont = true;
+                updateButtonState(true);
                 app.setFontSizeMultiplier(app.getFontSizeMultiplier() - 1);
-                updateButtonState();
             }
         });
 
@@ -56,9 +53,8 @@
         buttonDefaultTextSize.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                updatingFont = true;
+                updateButtonState(true);
                 app.setFontSizeMultiplier(0);
-                updateButtonState();
             }
         });
 
@@ -66,9 +62,8 @@
         buttonIncreaseTextSize.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                updatingFont = true;
+                updateButtonState(true);
                 app.setFontSizeMultiplier(app.getFontSizeMultiplier() + 1);
-                updateButtonState();
             }
         });
 
@@ -90,13 +85,7 @@
 
         fontChangeProgressBar = (ProgressBar) 
dlgLayout.findViewById(R.id.font_change_progress_bar);
 
-        updateButtonState();
-    }
-
-    @Subscribe
-    public void onWebViewInvalidated(WebViewInvalidateEvent event) {
-        updatingFont = false;
-        updateButtonState();
+        updateButtonState(false);
     }
 
     @Override
@@ -111,7 +100,7 @@
         super.dismiss();
     }
 
-    private void updateButtonState() {
+    public void updateButtonState(boolean updatingFont) {
         int mult = app.getFontSizeMultiplier();
         if (updatingFont) {
             fontChangeProgressBar.setVisibility(View.VISIBLE);
diff --git a/wikipedia/src/main/java/org/wikipedia/views/ObservableWebView.java 
b/wikipedia/src/main/java/org/wikipedia/views/ObservableWebView.java
index 8e80112..5aa8c27 100644
--- a/wikipedia/src/main/java/org/wikipedia/views/ObservableWebView.java
+++ b/wikipedia/src/main/java/org/wikipedia/views/ObservableWebView.java
@@ -5,7 +5,6 @@
 import android.view.MotionEvent;
 import android.webkit.WebView;
 import org.wikipedia.WikipediaApp;
-import org.wikipedia.events.WebViewInvalidateEvent;
 
 public class ObservableWebView extends WebView {
     private OnScrollChangeListener onScrollChangeListener;
@@ -89,14 +88,5 @@
             }
         }
         return super.onTouchEvent(event);
-    }
-
-    @Override
-    public void invalidate() {
-        super.invalidate();
-        if (getContentHeight() == 0) {
-            return;
-        }
-        WikipediaApp.getInstance().getBus().post(new WebViewInvalidateEvent());
     }
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I55acfe656d763fcefbff2c20ed305c8b2f17c797
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to