From 3160ad64adee1a9cdf9d9c00a2b8125425178b2b Mon Sep 17 00:00:00 2001 From: Aditya Sood Date: Fri, 18 Jan 2019 18:22:20 +0530 Subject: [PATCH] Fix Bug #905: Launch activity (night-mode) inverts colour of icons --- .../org/kiwix/kiwixmobile/main/BooksAdapter.java | 16 ++++++++++++++-- .../org/kiwix/kiwixmobile/main/KiwixWebView.java | 4 ++++ gradle.properties | 1 - 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/BooksAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/main/BooksAdapter.java index 886a90272..ca2f8bc43 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/BooksAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/BooksAdapter.java @@ -1,6 +1,11 @@ +/** + * Adapter class for book-items list displayed in the home page webview + * Use LibraryAdapter for list items in the downloads library + * */ package org.kiwix.kiwixmobile.main; import android.content.Context; +import android.graphics.ColorMatrixColorFilter; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.util.Log; @@ -10,9 +15,11 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.library.LibraryAdapter; import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity; +import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil; import java.text.DecimalFormat; import java.util.List; @@ -28,6 +35,7 @@ public class BooksAdapter extends RecyclerView.Adapter private static int TYPE_ITEM = 1; private List books; private OnItemClickListener itemClickListener; + private final SharedPreferenceUtil sharedPreferenceUtil = new SharedPreferenceUtil(KiwixApplication.getInstance()); interface OnItemClickListener { void openFile(String url); @@ -59,9 +67,13 @@ public class BooksAdapter extends RecyclerView.Adapter item.date.setText(book.getDate()); item.description.setText(book.getDescription()); item.size.setText(createGbString(book.getSize())); - item.articleCount.setText(getArticleCountString(item.articleCount.getContext(), - book.getArticleCount())); + item.articleCount.setText(getArticleCountString(item.articleCount.getContext(), book.getArticleCount())); item.icon.setImageBitmap(LibraryAdapter.createBitmapFromEncodedString(book.getFavicon(), item.icon.getContext())); + + if(sharedPreferenceUtil.nightMode()) { ////Fix Bug #905: Launch activity (night-mode) inverts colour of icons + item.icon.getDrawable().mutate().setColorFilter(new ColorMatrixColorFilter(KiwixWebView.getNightModeColors())); + } + item.itemView.setOnClickListener(v -> itemClickListener.openFile(book.file.getPath())); if (book.file.getPath().contains("nopic")) { item.pictureLabel.setVisibility(View.GONE); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixWebView.java b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixWebView.java index 24b1f26ff..28716a327 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixWebView.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixWebView.java @@ -96,6 +96,10 @@ public class KiwixWebView extends WebView { setLayerType(View.LAYER_TYPE_HARDWARE, paint); } + public static float[] getNightModeColors() { + return NIGHT_MODE_COLORS; + } + @Override public boolean performLongClick() { HitTestResult result = getHitTestResult(); diff --git a/gradle.properties b/gradle.properties index e3a75b87f..c232e1ce8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,3 @@ android.enableD8=true android.enableD8.desugaring=true -org.gradle.configureondemand=false org.gradle.jvmargs=-Xmx4096m