From 57c9ff555e81af9a53e26556050a87e2ab7b3836 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Tue, 17 Dec 2019 16:42:50 +0000 Subject: [PATCH] #1652 Fullscreen videos in Dark mode are inverted - extend night mode to fullscreen container (cherry picked from commit a884fa190ea284055517c99cd5ee401601e0d0d0) --- .../kiwixmobile/core/main/KiwixWebView.java | 19 +++++++++++++------ .../main/ToolbarScrollingKiwixWebView.java | 13 +++++-------- .../core/main/ToolbarStaticKiwixWebView.java | 10 ++++------ 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.java index 20c0de6a1..b283a2ec2 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.java @@ -42,6 +42,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.inject.Inject; +import org.jetbrains.annotations.NotNull; import org.kiwix.kiwixmobile.core.BuildConfig; import org.kiwix.kiwixmobile.core.CoreApp; import org.kiwix.kiwixmobile.core.R; @@ -51,6 +52,7 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; import static org.kiwix.kiwixmobile.core.main.CoreMainActivity.HOME_URL; +@SuppressLint("ViewConstructor") public class KiwixWebView extends VideoEnabledWebView { public static final float[] NIGHT_MODE_COLORS = { -1.0f, 0, 0, 0, 255, // red @@ -58,20 +60,19 @@ public class KiwixWebView extends VideoEnabledWebView { 0, 0, -1.0f, 0, 255, // blue 0, 0, 0, 1.0f, 0 // alpha }; + private final ViewGroup videoView; @Inject SharedPreferenceUtil sharedPreferenceUtil; @Inject ZimReaderContainer zimReaderContainer; - private WebViewCallback callback; - - public KiwixWebView(Context context) { - super(context); - } + private final WebViewCallback callback; + private final Paint invertedPaint = createInvertedPaint(); @SuppressLint("SetJavaScriptEnabled") public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) { super(context, attrs); + this.videoView = videoView; if (BuildConfig.DEBUG == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setWebContentsDebuggingEnabled(true); } @@ -112,16 +113,22 @@ public class KiwixWebView extends VideoEnabledWebView { public void deactivateNightMode() { setLayerType(LAYER_TYPE_NONE, null); + videoView.setLayerType(LAYER_TYPE_NONE, null); } public void activateNightMode() { if (getUrl() != null && getUrl().equals(HOME_URL)) { return; } + setLayerType(LAYER_TYPE_HARDWARE, invertedPaint); + videoView.setLayerType(LAYER_TYPE_HARDWARE, invertedPaint); + } + + @NotNull private Paint createInvertedPaint() { Paint paint = new Paint(); ColorMatrixColorFilter filterInvert = new ColorMatrixColorFilter(NIGHT_MODE_COLORS); paint.setColorFilter(filterInvert); - setLayerType(LAYER_TYPE_HARDWARE, paint); + return paint; } @Override diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarScrollingKiwixWebView.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarScrollingKiwixWebView.java index 67dadbc88..b15e49818 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarScrollingKiwixWebView.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarScrollingKiwixWebView.java @@ -18,6 +18,7 @@ package org.kiwix.kiwixmobile.core.main; +import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; @@ -26,18 +27,14 @@ import android.view.ViewGroup; import org.kiwix.kiwixmobile.core.utils.DimenUtils; import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; -public class ToolbarScrollingKiwixWebView extends KiwixWebView { +@SuppressLint("ViewConstructor") public class ToolbarScrollingKiwixWebView extends KiwixWebView { private final int toolbarHeight = DimenUtils.getToolbarHeight(getContext()); - private View toolbarView; - private View bottomBarView; - private SharedPreferenceUtil sharedPreferenceUtil; + private final View toolbarView; + private final View bottomBarView; + private final SharedPreferenceUtil sharedPreferenceUtil; private float startY; - public ToolbarScrollingKiwixWebView(Context context) { - super(context); - } - public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView, View bottomBarView, SharedPreferenceUtil sharedPreferenceUtil) { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarStaticKiwixWebView.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarStaticKiwixWebView.java index 2ce8135ec..f57295dee 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarStaticKiwixWebView.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ToolbarStaticKiwixWebView.java @@ -17,6 +17,7 @@ */ package org.kiwix.kiwixmobile.core.main; +import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.ViewGroup; @@ -27,14 +28,11 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; * {@link KiwixWebView} which keeps the app bar fixed. */ +@SuppressLint("ViewConstructor") public class ToolbarStaticKiwixWebView extends KiwixWebView { - private int heightDifference; - private SharedPreferenceUtil sharedPreferenceUtil; - - public ToolbarStaticKiwixWebView(Context context) { - super(context); - } + private final int heightDifference; + private final SharedPreferenceUtil sharedPreferenceUtil; public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,