Fixed dull generated icons

pull/162/head
M66B 5 years ago
parent 0c823382b0
commit 4c1006d45a

@ -32,6 +32,7 @@ import android.content.pm.ResolveInfo;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.hardware.biometrics.BiometricManager;
import android.hardware.fingerprint.FingerprintManager;
@ -66,6 +67,7 @@ import androidx.biometric.BiometricPrompt;
import androidx.browser.customtabs.CustomTabsIntent;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.ColorUtils;
import androidx.exifinterface.media.ExifInterface;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
@ -340,6 +342,15 @@ public class Helper {
return (tv.string != null && !"light".contentEquals(tv.string));
}
static int adjustLuminance(int color, boolean dark, float min) {
float lum = (float) ColorUtils.calculateLuminance(color);
if (dark ? lum < min : lum > 1 - min)
return ColorUtils.blendARGB(color,
dark ? Color.WHITE : Color.BLACK,
dark ? min - lum : lum - (1 - min));
return color;
}
// Formatting
static String humanReadableByteCount(long bytes, boolean si) {

@ -45,7 +45,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.ColorUtils;
import androidx.core.text.HtmlCompat;
import androidx.core.util.PatternsCompat;
import androidx.preference.PreferenceManager;
@ -211,11 +210,7 @@ public class HtmlHelper {
}
if (color != null) {
float lum = (float) ColorUtils.calculateLuminance(color);
if (dark ? lum < MIN_LUMINANCE : lum > 1 - MIN_LUMINANCE)
color = ColorUtils.blendARGB(color,
dark ? Color.WHITE : Color.BLACK,
dark ? MIN_LUMINANCE - lum : lum - (1 - MIN_LUMINANCE));
color = Helper.adjustLuminance(color, dark, MIN_LUMINANCE);
c = String.format("#%06x", color & 0xFFFFFF);
sb.append("color:").append(c).append(";");

@ -39,8 +39,7 @@ class Identicon {
byte[] hash = getHash(email);
int color = Color.argb(255, hash[0], hash[1], hash[2]);
color = ColorUtils.blendARGB(color,
dark ? Color.WHITE : Color.BLACK, MIN_LUMINANCE);
color = Helper.adjustLuminance(color, dark, MIN_LUMINANCE);
Paint paint = new Paint();
paint.setColor(color);
@ -79,7 +78,7 @@ class Identicon {
byte[] hash = getHash(email);
int color = Color.argb(255, hash[0], hash[1], hash[2]);
color = ColorUtils.blendARGB(color, dark ? Color.WHITE : Color.BLACK, MIN_LUMINANCE);
color = Helper.adjustLuminance(color, dark, MIN_LUMINANCE);
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);

Loading…
Cancel
Save