package com.squareup.leakcanary; import android.app.Activity; import android.app.Application; import android.app.Dialog; import android.app.Fragment; import android.os.MessageQueue; import android.view.View; import com.squareup.leakcanary.Reachability; import com.unity3d.ads.metadata.MediationMetaData; import java.util.ArrayList; import java.util.List; /* loaded from: classes.dex */ public enum AndroidReachabilityInspectors { VIEW(ViewInspector.class), ACTIVITY(ActivityInspector.class), DIALOG(DialogInspector.class), APPLICATION(ApplicationInspector.class), FRAGMENT(FragmentInspector.class), SUPPORT_FRAGMENT(SupportFragmentInspector.class), MESSAGE_QUEUE(MessageQueueInspector.class), MORTAR_PRESENTER(MortarPresenterInspector.class), VIEW_ROOT_IMPL(ViewImplInspector.class), MAIN_THEAD(MainThreadInspector.class), WINDOW(WindowInspector.class); private final Class inspectorClass; public static class ActivityInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf(Activity.class)) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mDestroyed"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("true") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class ApplicationInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { return leakTraceElement.isInstanceOf(Application.class) ? Reachability.REACHABLE : Reachability.UNKNOWN; } } public static class DialogInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf(Dialog.class)) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mDecor"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("null") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class FragmentInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf(Fragment.class)) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mDetached"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("true") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class MainThreadInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { return !leakTraceElement.isInstanceOf(Thread.class) ? Reachability.UNKNOWN : "main".equals(leakTraceElement.getFieldReferenceValue(MediationMetaData.KEY_NAME)) ? Reachability.REACHABLE : Reachability.UNKNOWN; } } public static class MessageQueueInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { return !leakTraceElement.isInstanceOf(MessageQueue.class) ? Reachability.UNKNOWN : "true".equals(leakTraceElement.getFieldReferenceValue("mQuitting")) ? Reachability.UNREACHABLE : Reachability.UNKNOWN; } } public static class MortarPresenterInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { return !leakTraceElement.isInstanceOf("mortar.Presenter") ? Reachability.UNKNOWN : "null".equals(leakTraceElement.getFieldReferenceValue("view")) ? Reachability.UNREACHABLE : Reachability.UNKNOWN; } } public static class SupportFragmentInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf("androidx.fragment.app.Fragment")) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mDetached"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("true") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class ViewImplInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf("android.view.ViewRootImpl")) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mView"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("null") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class ViewInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf(View.class)) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mAttachInfo"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("null") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } public static class WindowInspector implements Reachability.Inspector { @Override // com.squareup.leakcanary.Reachability.Inspector public Reachability expectedReachability(LeakTraceElement leakTraceElement) { if (!leakTraceElement.isInstanceOf("android.view.Window")) { return Reachability.UNKNOWN; } String fieldReferenceValue = leakTraceElement.getFieldReferenceValue("mDestroyed"); return fieldReferenceValue == null ? Reachability.UNKNOWN : fieldReferenceValue.equals("true") ? Reachability.UNREACHABLE : Reachability.REACHABLE; } } AndroidReachabilityInspectors(Class cls) { this.inspectorClass = cls; } public static List> defaultAndroidInspectors() { ArrayList arrayList = new ArrayList(); for (AndroidReachabilityInspectors androidReachabilityInspectors : values()) { arrayList.add(androidReachabilityInspectors.inspectorClass); } return arrayList; } }