Added fail-safe

This commit is contained in:
M66B 2023-12-01 08:36:58 +01:00
parent 9d97c18b1d
commit 1dedf76261
1 changed files with 39 additions and 34 deletions

View File

@ -1885,47 +1885,52 @@ public class Helper {
field.setAccessible(true); field.setAccessible(true);
if (!ftype.isArray()) { if (!ftype.isArray()) {
if (Animator.class.isAssignableFrom(type)) { try {
Animator animator = (Animator) field.get(instance); if (View.class.isAssignableFrom(type)) {
if (animator != null) { View v = (View) field.get(instance);
sb.append(" animator"); if (v != null) {
if (animator.isStarted()) sb.append(" tag");
animator.cancel(); v.setTag(null);
animator.setTarget(null); }
} }
}
if (Snackbar.class.isAssignableFrom(type)) { if (TextView.class.isAssignableFrom(type)) {
Snackbar snackbar = (Snackbar) field.get(instance); TextView tv = (TextView) field.get(instance);
if (snackbar != null) { if (tv != null) {
sb.append(" action"); sb.append(" text");
snackbar.setAction(null, null); tv.setText(null);
sb.append(" drawables");
tv.setCompoundDrawables(null, null, null, null);
}
} }
}
if (View.class.isAssignableFrom(type)) { if (ImageView.class.isAssignableFrom(type)) {
View v = (View) field.get(instance); ImageView iv = (ImageView) field.get(instance);
if (v != null) { if (iv != null) {
sb.append(" tag"); sb.append(" drawable");
v.setTag(null); 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)) { if (Animator.class.isAssignableFrom(type)) {
ImageView iv = (ImageView) field.get(instance); Animator animator = (Animator) field.get(instance);
if (iv != null) { if (animator != null) {
sb.append(" drawable"); sb.append(" animator");
iv.setImageDrawable(null); 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);
} }
} }