From 9a4933f20ed086734869da4f9e04ac79bf2cf75d Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 31 Oct 2021 19:27:07 +0100 Subject: [PATCH] Prevent odd crash --- .../java/eu/faircode/email/ActivityBase.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index 556eca6575..5013cf1434 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -29,6 +29,7 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Build; @@ -124,19 +125,29 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc int colorPrimaryDark = Helper.resolveColor(this, R.attr.colorPrimaryDark); int colorActionForeground = Helper.resolveColor(this, R.attr.colorActionForeground); - Drawable d = getDrawable(R.drawable.baseline_mail_24); - Bitmap bm = Bitmap.createBitmap( - d.getIntrinsicWidth(), - d.getIntrinsicHeight(), - Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(bm); - d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); - d.setTint(colorActionForeground); - d.draw(canvas); + try { + Drawable d = getDrawable(R.drawable.baseline_mail_24); + Bitmap bm = Bitmap.createBitmap( + d.getIntrinsicWidth(), + d.getIntrinsicHeight(), + Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bm); + d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + d.setTint(colorActionForeground); + d.draw(canvas); - ActivityManager.TaskDescription td = new ActivityManager.TaskDescription( - null, bm, ColorUtils.setAlphaComponent(colorPrimaryDark, 255)); - setTaskDescription(td); + int colorPrimary = colorPrimaryDark; + if (colorPrimary != 0 && Color.alpha(colorPrimary) != 255) { + Log.e("Task color primary=" + Integer.toHexString(colorPrimary)); + colorPrimary = ColorUtils.setAlphaComponent(colorPrimary, 255); + } + + ActivityManager.TaskDescription td = new ActivityManager.TaskDescription( + null, bm, colorPrimary); + setTaskDescription(td); + } catch (Throwable ex) { + Log.e(ex); + } boolean navbar_colorize = prefs.getBoolean("navbar_colorize", false); if (navbar_colorize) {