summaryrefslogtreecommitdiffstats
path: root/mathjaxandroid
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-16 16:33:20 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-16 16:33:20 +0100
commitd5c51e6dcaadf1a91bdb5fbc693e859d3124ad5a (patch)
tree29100df2297289185d6b50bf404a06e3a320d79d /mathjaxandroid
parent25ad71080e261de9b418341c8e3c0f21fff6b405 (diff)
Add support for maths.
Diffstat (limited to 'mathjaxandroid')
-rw-r--r--mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java1
-rw-r--r--mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java39
2 files changed, 9 insertions, 31 deletions
diff --git a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java
index e28ef8e1c..3dd1e70af 100644
--- a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java
+++ b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java
@@ -28,6 +28,7 @@ public class MathJaxConfig {
}
}
+
public MathJaxConfig(TypedArray attrs) {
this();
int inputIndex = attrs.getInteger(R.styleable.MathJaxView_input, -1);
diff --git a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
index 401f2d661..a918cfa1f 100644
--- a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
+++ b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java
@@ -9,17 +9,13 @@ import android.os.Handler;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
-import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
-import java.util.concurrent.atomic.AtomicReference;
-
/**
* Containerview for an WebView which renders LaTex using MathJax
@@ -88,20 +84,26 @@ public class MathJaxView extends FrameLayout {
this.onMathJaxRenderListener = onMathJaxRenderListener;
}
+ public void setTextColor(String color) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ mWebView.evaluateJavascript("document.body.style.color=\"" + color + "\";", null);
+ }
+ }
+
@SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"})
private void init(Context context, AttributeSet attrSet, MathJaxConfig config) {
mWebView = new WebView(context);
int gravity = Gravity.START;
boolean verticalScrollbarsEnabled = false;
- boolean horizontalScrollbarsEnabled = true;
+ boolean horizontalScrollbarsEnabled = false;
String textColor = config != null ? config.getTextColor() : null;
if (attrSet != null) {
TypedArray attrs = context.obtainStyledAttributes(attrSet, R.styleable.MathJaxView);
gravity = attrs.getInteger(R.styleable.MathJaxView_android_gravity, Gravity.START);
verticalScrollbarsEnabled = attrs.getBoolean(R.styleable.MathJaxView_verticalScrollbarsEnabled, false);
- horizontalScrollbarsEnabled = attrs.getBoolean(R.styleable.MathJaxView_horizontalScrollbarsEnabled, true);
+ horizontalScrollbarsEnabled = attrs.getBoolean(R.styleable.MathJaxView_horizontalScrollbarsEnabled, false);
textColor = attrs.getString(R.styleable.MathJaxView_textColor);
config = new MathJaxConfig(attrs);
attrs.recycle();
@@ -153,31 +155,6 @@ public class MathJaxView extends FrameLayout {
mWebView.setHorizontalScrollBarEnabled(horizontalScrollbarsEnabled);
mWebView.setBackgroundColor(0);
mWebView.getSettings().setLoadWithOverviewMode(true);
- float touchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
- final boolean[] scrollFlag = {true};
- AtomicReference<Float> downX = new AtomicReference<>((float) 0);
- AtomicReference<Float> downY = new AtomicReference<>((float) 0);
- mWebView.setOnTouchListener((View v, MotionEvent event) -> {
- if (!scrollFlag[0] && event.getY() < getHeight() / 2) {
-
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- downX.set(event.getX());
- downY.set(event.getY());
- break;
- case MotionEvent.ACTION_MOVE:
- if (Math.abs(event.getY() - downY.get()) < touchSlop && Math.abs(event.getX() - downX.get()) > touchSlop) {
- getParent().requestDisallowInterceptTouchEvent(true);
- scrollFlag[0] = true;
- }
- break;
- }
- }
- if (event.getAction() == MotionEvent.ACTION_UP)
- scrollFlag[0] = false;
-
- return false;
- });
}
/**