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