MCPcopy Create free account
hub / github.com/M66B/FairEmail / clearViews

Method clearViews

app/src/main/java/eu/faircode/email/Helper.java:2023–2123  ·  view source on GitHub ↗
(Object instance)

Source from the content-addressed store, hash-verified

2021 }
2022
2023 static void clearViews(Object instance) {
2024 try {
2025 String cname = instance.getClass().getSimpleName();
2026 for (Field field : instance.getClass().getDeclaredFields()) {
2027 String fname = cname + ":" + field.getName();
2028
2029 Class<?> ftype = field.getType();
2030 Class<?> type = (ftype.isArray() ? ftype.getComponentType() : ftype);
2031
2032 if (type == null) {
2033 Log.e(fname + "=null");
2034 continue;
2035 }
2036
2037 if (instance instanceof FragmentDialogPrint &&
2038 WebView.class.isAssignableFrom(type)) {
2039 Log.i(fname + " clear skip");
2040 continue;
2041 }
2042
2043 if (View.class.isAssignableFrom(type) ||
2044 Animator.class.isAssignableFrom(type) ||
2045 Snackbar.class.isAssignableFrom(type) ||
2046 SelectionTracker.class.isAssignableFrom(type) ||
2047 SelectionTracker.SelectionPredicate.class.isAssignableFrom(type) ||
2048 PagerAdapter.class.isAssignableFrom(type) ||
2049 RecyclerView.Adapter.class.isAssignableFrom(type) ||
2050 TwoStateOwner.class.isAssignableFrom(type))
2051 try {
2052 StringBuilder sb = new StringBuilder();
2053 sb.append("Clearing ").append(fname);
2054
2055 field.setAccessible(true);
2056
2057 if (!ftype.isArray()) {
2058 try {
2059 if (View.class.isAssignableFrom(type)) {
2060 View v = (View) field.get(instance);
2061 if (v != null) {
2062 sb.append(" tag");
2063 v.setTag(null);
2064 }
2065 }
2066
2067 if (TextView.class.isAssignableFrom(type)) {
2068 TextView tv = (TextView) field.get(instance);
2069 if (tv != null) {
2070 sb.append(" drawables");
2071 tv.setCompoundDrawables(null, null, null, null);
2072 }
2073 }
2074
2075 if (ImageView.class.isAssignableFrom(type)) {
2076 ImageView iv = (ImageView) field.get(instance);
2077 if (iv != null) {
2078 sb.append(" drawable");
2079 iv.setImageDrawable(null);
2080 }

Callers 2

onActivityDestroyedMethod · 0.95

Calls 13

eMethod · 0.95
iMethod · 0.95
loadDataWithBaseURLMethod · 0.80
isStartedMethod · 0.80
setActionMethod · 0.80
getNameMethod · 0.65
getTypeMethod · 0.45
appendMethod · 0.45
getMethod · 0.45
nameMethod · 0.45
cancelMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected