51 lines
2.2 KiB
Java
51 lines
2.2 KiB
Java
package com.squareup.leakcanary.internal;
|
|
|
|
import android.app.Activity;
|
|
import android.app.Application;
|
|
import android.content.Context;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import com.squareup.leakcanary.RefWatcher;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface FragmentRefWatcher {
|
|
|
|
public static final class Helper {
|
|
private static final String SUPPORT_FRAGMENT_REF_WATCHER_CLASS_NAME = "com.squareup.leakcanary.internal.SupportFragmentRefWatcher";
|
|
private final Application.ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacksAdapter() { // from class: com.squareup.leakcanary.internal.FragmentRefWatcher.Helper.1
|
|
@Override // com.squareup.leakcanary.internal.ActivityLifecycleCallbacksAdapter, android.app.Application.ActivityLifecycleCallbacks
|
|
public void onActivityCreated(Activity activity, Bundle bundle) {
|
|
Iterator it = Helper.this.fragmentRefWatchers.iterator();
|
|
while (it.hasNext()) {
|
|
((FragmentRefWatcher) it.next()).watchFragments(activity);
|
|
}
|
|
}
|
|
};
|
|
private final List<FragmentRefWatcher> fragmentRefWatchers;
|
|
|
|
private Helper(List<FragmentRefWatcher> list) {
|
|
this.fragmentRefWatchers = list;
|
|
}
|
|
|
|
public static void install(Context context, RefWatcher refWatcher) {
|
|
ArrayList arrayList = new ArrayList();
|
|
if (Build.VERSION.SDK_INT >= 26) {
|
|
arrayList.add(new AndroidOFragmentRefWatcher(refWatcher));
|
|
}
|
|
try {
|
|
arrayList.add((FragmentRefWatcher) Class.forName(SUPPORT_FRAGMENT_REF_WATCHER_CLASS_NAME).getDeclaredConstructor(RefWatcher.class).newInstance(refWatcher));
|
|
} catch (Exception unused) {
|
|
}
|
|
if (arrayList.size() == 0) {
|
|
return;
|
|
}
|
|
((Application) context.getApplicationContext()).registerActivityLifecycleCallbacks(new Helper(arrayList).activityLifecycleCallbacks);
|
|
}
|
|
}
|
|
|
|
void watchFragments(Activity activity);
|
|
}
|