From 1dedf76261664c248e0ba149253334a4e196ad84 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 1 Dec 2023 08:36:58 +0100 Subject: [PATCH] Added fail-safe --- .../main/java/eu/faircode/email/Helper.java | 73 ++++++++++--------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 5ab6668e90..103e3733d5 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -1885,47 +1885,52 @@ public class Helper { field.setAccessible(true); if (!ftype.isArray()) { - if (Animator.class.isAssignableFrom(type)) { - Animator animator = (Animator) field.get(instance); - if (animator != null) { - sb.append(" animator"); - if (animator.isStarted()) - animator.cancel(); - animator.setTarget(null); + try { + if (View.class.isAssignableFrom(type)) { + View v = (View) field.get(instance); + if (v != null) { + sb.append(" tag"); + v.setTag(null); + } } - } - if (Snackbar.class.isAssignableFrom(type)) { - Snackbar snackbar = (Snackbar) field.get(instance); - if (snackbar != null) { - sb.append(" action"); - snackbar.setAction(null, null); + if (TextView.class.isAssignableFrom(type)) { + TextView tv = (TextView) field.get(instance); + if (tv != null) { + sb.append(" text"); + tv.setText(null); + sb.append(" drawables"); + tv.setCompoundDrawables(null, null, null, null); + } } - } - if (View.class.isAssignableFrom(type)) { - View v = (View) field.get(instance); - if (v != null) { - sb.append(" tag"); - v.setTag(null); + if (ImageView.class.isAssignableFrom(type)) { + ImageView iv = (ImageView) field.get(instance); + if (iv != null) { + sb.append(" drawable"); + iv.setImageDrawable(null); + } } - } - if (TextView.class.isAssignableFrom(type)) { - TextView tv = (TextView) field.get(instance); - if (tv != null) { - sb.append(" text"); - tv.setText(null); - sb.append(" drawables"); - tv.setCompoundDrawables(null, null, null, null); - } - } - if (ImageView.class.isAssignableFrom(type)) { - ImageView iv = (ImageView) field.get(instance); - if (iv != null) { - sb.append(" drawable"); - iv.setImageDrawable(null); + if (Animator.class.isAssignableFrom(type)) { + Animator animator = (Animator) field.get(instance); + if (animator != null) { + sb.append(" animator"); + if (animator.isStarted()) + animator.cancel(); + animator.setTarget(null); + } } + + if (Snackbar.class.isAssignableFrom(type)) { + Snackbar snackbar = (Snackbar) field.get(instance); + if (snackbar != null) { + sb.append(" action"); + snackbar.setAction(null, null); + } + } + } catch (Throwable ex) { + Log.e(ex); } }