From a884fa190ea284055517c99cd5ee401601e0d0d0 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Tue, 17 Dec 2019 16:42:50 +0000 Subject: [PATCH 1/3] #1652 Fullscreen videos in Dark mode are inverted - extend night mode to fullscreen container --- .../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, From dc865ca50667ca08c6e98814fa133a03630aa639 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Tue, 17 Dec 2019 16:47:38 +0000 Subject: [PATCH 2/3] Revert "#1652 Fullscreen videos in Dark mode are inverted - extend night mode to fullscreen container" This reverts commit a884fa190ea284055517c99cd5ee401601e0d0d0. --- .../kiwixmobile/core/main/KiwixWebView.java | 19 ++++++------------- .../main/ToolbarScrollingKiwixWebView.java | 13 ++++++++----- .../core/main/ToolbarStaticKiwixWebView.java | 10 ++++++---- 3 files changed, 20 insertions(+), 22 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 b283a2ec2..20c0de6a1 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,7 +42,6 @@ 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; @@ -52,7 +51,6 @@ 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 @@ -60,19 +58,20 @@ 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 final WebViewCallback callback; - private final Paint invertedPaint = createInvertedPaint(); + private WebViewCallback callback; + + public KiwixWebView(Context context) { + super(context); + } @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); } @@ -113,22 +112,16 @@ 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); - return paint; + setLayerType(LAYER_TYPE_HARDWARE, 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 b15e49818..67dadbc88 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,7 +18,6 @@ package org.kiwix.kiwixmobile.core.main; -import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; @@ -27,14 +26,18 @@ import android.view.ViewGroup; import org.kiwix.kiwixmobile.core.utils.DimenUtils; import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; -@SuppressLint("ViewConstructor") public class ToolbarScrollingKiwixWebView extends KiwixWebView { +public class ToolbarScrollingKiwixWebView extends KiwixWebView { private final int toolbarHeight = DimenUtils.getToolbarHeight(getContext()); - private final View toolbarView; - private final View bottomBarView; - private final SharedPreferenceUtil sharedPreferenceUtil; + private View toolbarView; + private View bottomBarView; + private 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 f57295dee..2ce8135ec 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,7 +17,6 @@ */ package org.kiwix.kiwixmobile.core.main; -import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.ViewGroup; @@ -28,11 +27,14 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil; * {@link KiwixWebView} which keeps the app bar fixed. */ -@SuppressLint("ViewConstructor") public class ToolbarStaticKiwixWebView extends KiwixWebView { - private final int heightDifference; - private final SharedPreferenceUtil sharedPreferenceUtil; + private int heightDifference; + private SharedPreferenceUtil sharedPreferenceUtil; + + public ToolbarStaticKiwixWebView(Context context) { + super(context); + } public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView, From 57c9ff555e81af9a53e26556050a87e2ab7b3836 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Tue, 17 Dec 2019 16:42:50 +0000 Subject: [PATCH 3/3] #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,