diff options
author | Thomas <tschneider.ac@gmail.com> | 2023-01-16 16:33:20 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2023-01-16 16:33:20 +0100 |
commit | d5c51e6dcaadf1a91bdb5fbc693e859d3124ad5a (patch) | |
tree | 29100df2297289185d6b50bf404a06e3a320d79d /mathjaxandroid | |
parent | 25ad71080e261de9b418341c8e3c0f21fff6b405 (diff) |
Add support for maths.
Diffstat (limited to 'mathjaxandroid')
-rw-r--r-- | mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxConfig.java | 1 | ||||
-rw-r--r-- | mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java | 39 |
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; - }); } /** |