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:
Seán Mac Gillicuddy 2019-12-17 17:31:38 +00:00 committed by GitHub
commit 3edaa975b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 20 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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,