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

View File

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

View File

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