package com.kwad.components.core.n; import android.content.Context; import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.inputmethod.InputMethodManager; import android.webkit.WebView; import java.lang.reflect.Field; public final class j { public static void destroyActivity(Context context, Window window) { if (window != null) { View decorView = window.getDecorView(); destroyWebViewInTree(decorView); fixInputMethodManagerLeak(context, decorView); } } public static void destroyFragment(Context context, View view) { destroyWebViewInTree(view); fixInputMethodManagerLeak(context, view); } private static synchronized void destroyWebViewInTree(View view) { synchronized (j.class) { if (view != null) { if (view instanceof WebView) { try { ((WebView) view).destroy(); } catch (Throwable unused) { } } else if (view instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup) view; int childCount = viewGroup.getChildCount(); for (int i = 0; i < childCount; i++) { destroyWebViewInTree(viewGroup.getChildAt(i)); } } } } } private static void fixInputMethodManagerLeak(Context context, View view) { InputMethodManager inputMethodManager; if (!(context == null || view == null || Build.VERSION.SDK_INT >= 29 || (inputMethodManager = (InputMethodManager) context.getSystemService("input_method")) == null)) { String[] strArr = {"mCurRootView", "mServedView", "mNextServedView"}; for (int i = 0; i < 3; i++) { try { Field declaredField = inputMethodManager.getClass().getDeclaredField(strArr[i]); if (!declaredField.isAccessible()) { declaredField.setAccessible(true); } Object obj = declaredField.get(inputMethodManager); if (!(obj instanceof View)) { continue; } else if (context.equals(((View) obj).getContext())) { declaredField.set(inputMethodManager, null); } else { return; } } catch (Throwable th) { th.printStackTrace(); } } } } }