mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 04:33:54 -04:00
Merge pull request #1655 from kiwix/feature/macgills/1652-inverted-fullscreen
#1652 Fullscreen videos in Dark mode are inverted - extend night mode…
This commit is contained in:
commit
3edaa975b1
@ -42,6 +42,7 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.kiwix.kiwixmobile.core.BuildConfig;
|
import org.kiwix.kiwixmobile.core.BuildConfig;
|
||||||
import org.kiwix.kiwixmobile.core.CoreApp;
|
import org.kiwix.kiwixmobile.core.CoreApp;
|
||||||
import org.kiwix.kiwixmobile.core.R;
|
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;
|
import static org.kiwix.kiwixmobile.core.main.CoreMainActivity.HOME_URL;
|
||||||
|
|
||||||
|
@SuppressLint("ViewConstructor")
|
||||||
public class KiwixWebView extends VideoEnabledWebView {
|
public class KiwixWebView extends VideoEnabledWebView {
|
||||||
public static final float[] NIGHT_MODE_COLORS = {
|
public static final float[] NIGHT_MODE_COLORS = {
|
||||||
-1.0f, 0, 0, 0, 255, // red
|
-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, -1.0f, 0, 255, // blue
|
||||||
0, 0, 0, 1.0f, 0 // alpha
|
0, 0, 0, 1.0f, 0 // alpha
|
||||||
};
|
};
|
||||||
|
private final ViewGroup videoView;
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferenceUtil sharedPreferenceUtil;
|
SharedPreferenceUtil sharedPreferenceUtil;
|
||||||
@Inject
|
@Inject
|
||||||
ZimReaderContainer zimReaderContainer;
|
ZimReaderContainer zimReaderContainer;
|
||||||
private WebViewCallback callback;
|
private final WebViewCallback callback;
|
||||||
|
private final Paint invertedPaint = createInvertedPaint();
|
||||||
public KiwixWebView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("SetJavaScriptEnabled")
|
@SuppressLint("SetJavaScriptEnabled")
|
||||||
public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,
|
public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,
|
||||||
ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {
|
ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
this.videoView = videoView;
|
||||||
if (BuildConfig.DEBUG == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
if (BuildConfig.DEBUG == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||||
setWebContentsDebuggingEnabled(true);
|
setWebContentsDebuggingEnabled(true);
|
||||||
}
|
}
|
||||||
@ -112,16 +113,22 @@ public class KiwixWebView extends VideoEnabledWebView {
|
|||||||
|
|
||||||
public void deactivateNightMode() {
|
public void deactivateNightMode() {
|
||||||
setLayerType(LAYER_TYPE_NONE, null);
|
setLayerType(LAYER_TYPE_NONE, null);
|
||||||
|
videoView.setLayerType(LAYER_TYPE_NONE, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void activateNightMode() {
|
public void activateNightMode() {
|
||||||
if (getUrl() != null && getUrl().equals(HOME_URL)) {
|
if (getUrl() != null && getUrl().equals(HOME_URL)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
setLayerType(LAYER_TYPE_HARDWARE, invertedPaint);
|
||||||
|
videoView.setLayerType(LAYER_TYPE_HARDWARE, invertedPaint);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull private Paint createInvertedPaint() {
|
||||||
Paint paint = new Paint();
|
Paint paint = new Paint();
|
||||||
ColorMatrixColorFilter filterInvert = new ColorMatrixColorFilter(NIGHT_MODE_COLORS);
|
ColorMatrixColorFilter filterInvert = new ColorMatrixColorFilter(NIGHT_MODE_COLORS);
|
||||||
paint.setColorFilter(filterInvert);
|
paint.setColorFilter(filterInvert);
|
||||||
setLayerType(LAYER_TYPE_HARDWARE, paint);
|
return paint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package org.kiwix.kiwixmobile.core.main;
|
package org.kiwix.kiwixmobile.core.main;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
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.DimenUtils;
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil;
|
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 final int toolbarHeight = DimenUtils.getToolbarHeight(getContext());
|
||||||
private View toolbarView;
|
private final View toolbarView;
|
||||||
private View bottomBarView;
|
private final View bottomBarView;
|
||||||
private SharedPreferenceUtil sharedPreferenceUtil;
|
private final SharedPreferenceUtil sharedPreferenceUtil;
|
||||||
private float startY;
|
private float startY;
|
||||||
|
|
||||||
public ToolbarScrollingKiwixWebView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,
|
public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,
|
||||||
ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,
|
ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,
|
||||||
View bottomBarView, SharedPreferenceUtil sharedPreferenceUtil) {
|
View bottomBarView, SharedPreferenceUtil sharedPreferenceUtil) {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.kiwix.kiwixmobile.core.main;
|
package org.kiwix.kiwixmobile.core.main;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -27,14 +28,11 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil;
|
|||||||
* {@link KiwixWebView} which keeps the app bar fixed.
|
* {@link KiwixWebView} which keeps the app bar fixed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@SuppressLint("ViewConstructor")
|
||||||
public class ToolbarStaticKiwixWebView extends KiwixWebView {
|
public class ToolbarStaticKiwixWebView extends KiwixWebView {
|
||||||
|
|
||||||
private int heightDifference;
|
private final int heightDifference;
|
||||||
private SharedPreferenceUtil sharedPreferenceUtil;
|
private final SharedPreferenceUtil sharedPreferenceUtil;
|
||||||
|
|
||||||
public ToolbarStaticKiwixWebView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback,
|
public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback,
|
||||||
AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,
|
AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user