package io.flutter.plugins.webviewflutter; import android.content.Context; import android.hardware.display.DisplayManager; import android.view.View; import android.webkit.DownloadListener; import android.webkit.ValueCallback; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import com.huawei.hms.support.api.entity.common.CommonConstant; import io.flutter.plugin.platform.PlatformView; import io.flutter.plugins.webviewflutter.DownloadListenerHostApiImpl; import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView; import io.flutter.plugins.webviewflutter.WebChromeClientHostApiImpl; import io.flutter.plugins.webviewflutter.WebViewClientHostApiImpl; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Objects; /* loaded from: classes6.dex */ public class WebViewHostApiImpl implements GeneratedAndroidWebView.WebViewHostApi { private static final String nullStringIdentifier = ""; private final View containerView; private Context context; private final InstanceManager instanceManager; private final WebViewProxy webViewProxy; /* loaded from: classes6.dex */ public static class WebViewProxy { public WebViewPlatformView createWebView(Context context) { return new WebViewPlatformView(context); } public InputAwareWebViewPlatformView createInputAwareWebView(Context context, View view) { return new InputAwareWebViewPlatformView(context, view); } public void setWebContentsDebuggingEnabled(boolean z) { WebView.setWebContentsDebuggingEnabled(z); } } /* loaded from: classes6.dex */ static class ReleasableValue { private T value; ReleasableValue() { } ReleasableValue(T t) { this.value = t; } void set(T t) { release(); this.value = t; } void release() { T t = this.value; if (t != null) { t.release(); } this.value = null; } T get() { return this.value; } } /* loaded from: classes6.dex */ public static class WebViewPlatformView extends WebView implements PlatformView, Releasable { private final ReleasableValue currentDownloadListener; private final ReleasableValue currentWebChromeClient; private final ReleasableValue currentWebViewClient; private final Map> javaScriptInterfaces; @Override // io.flutter.plugin.platform.PlatformView public View getView() { return this; } public WebViewPlatformView(Context context) { super(context); this.currentWebViewClient = new ReleasableValue<>(); this.currentDownloadListener = new ReleasableValue<>(); this.currentWebChromeClient = new ReleasableValue<>(); this.javaScriptInterfaces = new HashMap(); } @Override // io.flutter.plugin.platform.PlatformView public void dispose() { destroy(); } /* JADX WARN: Multi-variable type inference failed */ @Override // android.webkit.WebView public void setWebViewClient(WebViewClient webViewClient) { super.setWebViewClient(webViewClient); this.currentWebViewClient.set((WebViewClientHostApiImpl.ReleasableWebViewClient) webViewClient); WebChromeClientHostApiImpl.WebChromeClientImpl webChromeClientImpl = this.currentWebChromeClient.get(); if (webChromeClientImpl != null) { webChromeClientImpl.setWebViewClient(webViewClient); } } @Override // android.webkit.WebView public void setDownloadListener(DownloadListener downloadListener) { super.setDownloadListener(downloadListener); this.currentDownloadListener.set((DownloadListenerHostApiImpl.DownloadListenerImpl) downloadListener); } @Override // android.webkit.WebView public void setWebChromeClient(WebChromeClient webChromeClient) { super.setWebChromeClient(webChromeClient); this.currentWebChromeClient.set((WebChromeClientHostApiImpl.WebChromeClientImpl) webChromeClient); } @Override // android.webkit.WebView public void addJavascriptInterface(Object obj, String str) { super.addJavascriptInterface(obj, str); if (obj instanceof JavaScriptChannel) { ReleasableValue releasableValue = this.javaScriptInterfaces.get(str); if (releasableValue != null && releasableValue.get() != obj) { releasableValue.release(); } this.javaScriptInterfaces.put(str, new ReleasableValue<>((JavaScriptChannel) obj)); } } @Override // android.webkit.WebView public void removeJavascriptInterface(String str) { super.removeJavascriptInterface(str); this.javaScriptInterfaces.get(str).release(); this.javaScriptInterfaces.remove(str); } @Override // io.flutter.plugins.webviewflutter.Releasable public void release() { this.currentWebViewClient.release(); this.currentDownloadListener.release(); this.currentWebChromeClient.release(); Iterator> it = this.javaScriptInterfaces.values().iterator(); while (it.hasNext()) { it.next().release(); } this.javaScriptInterfaces.clear(); } } /* loaded from: classes6.dex */ public static class InputAwareWebViewPlatformView extends InputAwareWebView implements PlatformView, Releasable { private final ReleasableValue currentDownloadListener; private final ReleasableValue currentWebChromeClient; private final ReleasableValue currentWebViewClient; private final Map> javaScriptInterfaces; @Override // io.flutter.plugin.platform.PlatformView public View getView() { return this; } @Override // io.flutter.plugins.webviewflutter.InputAwareWebView, android.view.View public /* bridge */ /* synthetic */ boolean checkInputConnectionProxy(View view) { return super.checkInputConnectionProxy(view); } @Override // io.flutter.plugins.webviewflutter.InputAwareWebView, android.view.ViewGroup, android.view.View public /* bridge */ /* synthetic */ void clearFocus() { super.clearFocus(); } public InputAwareWebViewPlatformView(Context context, View view) { super(context, view); this.currentWebViewClient = new ReleasableValue<>(); this.currentDownloadListener = new ReleasableValue<>(); this.currentWebChromeClient = new ReleasableValue<>(); this.javaScriptInterfaces = new HashMap(); } @Override // io.flutter.plugin.platform.PlatformView public void onFlutterViewAttached(View view) { setContainerView(view); } @Override // io.flutter.plugin.platform.PlatformView public void onFlutterViewDetached() { setContainerView(null); } @Override // io.flutter.plugins.webviewflutter.InputAwareWebView, io.flutter.plugin.platform.PlatformView public void dispose() { super.dispose(); destroy(); } @Override // io.flutter.plugin.platform.PlatformView public void onInputConnectionLocked() { lockInputConnection(); } @Override // io.flutter.plugin.platform.PlatformView public void onInputConnectionUnlocked() { unlockInputConnection(); } /* JADX WARN: Multi-variable type inference failed */ @Override // android.webkit.WebView public void setWebViewClient(WebViewClient webViewClient) { super.setWebViewClient(webViewClient); this.currentWebViewClient.set((WebViewClientHostApiImpl.ReleasableWebViewClient) webViewClient); WebChromeClientHostApiImpl.WebChromeClientImpl webChromeClientImpl = this.currentWebChromeClient.get(); if (webChromeClientImpl != null) { webChromeClientImpl.setWebViewClient(webViewClient); } } @Override // android.webkit.WebView public void setDownloadListener(DownloadListener downloadListener) { super.setDownloadListener(downloadListener); this.currentDownloadListener.set((DownloadListenerHostApiImpl.DownloadListenerImpl) downloadListener); } @Override // android.webkit.WebView public void setWebChromeClient(WebChromeClient webChromeClient) { super.setWebChromeClient(webChromeClient); this.currentWebChromeClient.set((WebChromeClientHostApiImpl.WebChromeClientImpl) webChromeClient); } @Override // android.webkit.WebView public void addJavascriptInterface(Object obj, String str) { super.addJavascriptInterface(obj, str); if (obj instanceof JavaScriptChannel) { ReleasableValue releasableValue = this.javaScriptInterfaces.get(str); if (releasableValue != null && releasableValue.get() != obj) { releasableValue.release(); } this.javaScriptInterfaces.put(str, new ReleasableValue<>((JavaScriptChannel) obj)); } } @Override // android.webkit.WebView public void removeJavascriptInterface(String str) { super.removeJavascriptInterface(str); this.javaScriptInterfaces.get(str).release(); this.javaScriptInterfaces.remove(str); } @Override // io.flutter.plugins.webviewflutter.Releasable public void release() { this.currentWebViewClient.release(); this.currentDownloadListener.release(); this.currentWebChromeClient.release(); Iterator> it = this.javaScriptInterfaces.values().iterator(); while (it.hasNext()) { it.next().release(); } this.javaScriptInterfaces.clear(); } } public WebViewHostApiImpl(InstanceManager instanceManager, WebViewProxy webViewProxy, Context context, View view) { this.instanceManager = instanceManager; this.webViewProxy = webViewProxy; this.context = context; this.containerView = view; } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void create(Long l, Boolean bool) { Object createInputAwareWebView; DisplayListenerProxy displayListenerProxy = new DisplayListenerProxy(); DisplayManager displayManager = (DisplayManager) this.context.getSystemService(CommonConstant.ReqAccessTokenParam.DISPLAY_LABEL); displayListenerProxy.onPreWebViewInitialization(displayManager); if (bool.booleanValue()) { createInputAwareWebView = this.webViewProxy.createWebView(this.context); } else { createInputAwareWebView = this.webViewProxy.createInputAwareWebView(this.context, this.containerView); } displayListenerProxy.onPostWebViewInitialization(displayManager); this.instanceManager.addInstance(createInputAwareWebView, l.longValue()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void dispose(Long l) { Object obj = (WebView) this.instanceManager.getInstance(l.longValue()); if (obj != null) { ((Releasable) obj).release(); this.instanceManager.removeInstance(obj); } } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void loadData(Long l, String str, String str2, String str3) { ((WebView) this.instanceManager.getInstance(l.longValue())).loadData(str, parseNullStringIdentifier(str2), parseNullStringIdentifier(str3)); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void loadDataWithBaseUrl(Long l, String str, String str2, String str3, String str4, String str5) { ((WebView) this.instanceManager.getInstance(l.longValue())).loadDataWithBaseURL(parseNullStringIdentifier(str), str2, parseNullStringIdentifier(str3), parseNullStringIdentifier(str4), parseNullStringIdentifier(str5)); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void loadUrl(Long l, String str, Map map) { ((WebView) this.instanceManager.getInstance(l.longValue())).loadUrl(str, map); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public String getUrl(Long l) { String url = ((WebView) this.instanceManager.getInstance(l.longValue())).getUrl(); return url == null ? nullStringIdentifier : url; } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public Boolean canGoBack(Long l) { return Boolean.valueOf(((WebView) this.instanceManager.getInstance(l.longValue())).canGoBack()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public Boolean canGoForward(Long l) { return Boolean.valueOf(((WebView) this.instanceManager.getInstance(l.longValue())).canGoForward()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void goBack(Long l) { ((WebView) this.instanceManager.getInstance(l.longValue())).goBack(); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void goForward(Long l) { ((WebView) this.instanceManager.getInstance(l.longValue())).goForward(); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void reload(Long l) { ((WebView) this.instanceManager.getInstance(l.longValue())).reload(); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void clearCache(Long l, Boolean bool) { ((WebView) this.instanceManager.getInstance(l.longValue())).clearCache(bool.booleanValue()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void evaluateJavascript(Long l, String str, final GeneratedAndroidWebView.Result result) { WebView webView = (WebView) this.instanceManager.getInstance(l.longValue()); Objects.requireNonNull(result); webView.evaluateJavascript(str, new ValueCallback(result) { // from class: io.flutter.plugins.webviewflutter.WebViewHostApiImpl$$ExternalSyntheticLambda0 public final GeneratedAndroidWebView.Result f$0; @Override // android.webkit.ValueCallback public final void onReceiveValue(Object obj) { this.f$0.success((String) obj); } { this.f$0 = result; } }); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public String getTitle(Long l) { String title = ((WebView) this.instanceManager.getInstance(l.longValue())).getTitle(); return title == null ? nullStringIdentifier : title; } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void scrollTo(Long l, Long l2, Long l3) { ((WebView) this.instanceManager.getInstance(l.longValue())).scrollTo(l2.intValue(), l3.intValue()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void scrollBy(Long l, Long l2, Long l3) { ((WebView) this.instanceManager.getInstance(l.longValue())).scrollBy(l2.intValue(), l3.intValue()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public Long getScrollX(Long l) { return Long.valueOf(((WebView) this.instanceManager.getInstance(l.longValue())).getScrollX()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public Long getScrollY(Long l) { return Long.valueOf(((WebView) this.instanceManager.getInstance(l.longValue())).getScrollY()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void setWebContentsDebuggingEnabled(Boolean bool) { this.webViewProxy.setWebContentsDebuggingEnabled(bool.booleanValue()); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void setWebViewClient(Long l, Long l2) { ((WebView) this.instanceManager.getInstance(l.longValue())).setWebViewClient((WebViewClient) this.instanceManager.getInstance(l2.longValue())); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void addJavaScriptChannel(Long l, Long l2) { WebView webView = (WebView) this.instanceManager.getInstance(l.longValue()); JavaScriptChannel javaScriptChannel = (JavaScriptChannel) this.instanceManager.getInstance(l2.longValue()); webView.addJavascriptInterface(javaScriptChannel, javaScriptChannel.javaScriptChannelName); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void removeJavaScriptChannel(Long l, Long l2) { ((WebView) this.instanceManager.getInstance(l.longValue())).removeJavascriptInterface(((JavaScriptChannel) this.instanceManager.getInstance(l2.longValue())).javaScriptChannelName); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void setDownloadListener(Long l, Long l2) { ((WebView) this.instanceManager.getInstance(l.longValue())).setDownloadListener((DownloadListener) this.instanceManager.getInstance(l2.longValue())); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void setWebChromeClient(Long l, Long l2) { ((WebView) this.instanceManager.getInstance(l.longValue())).setWebChromeClient((WebChromeClient) this.instanceManager.getInstance(l2.longValue())); } @Override // io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi public void setBackgroundColor(Long l, Long l2) { ((WebView) this.instanceManager.getInstance(l.longValue())).setBackgroundColor(l2.intValue()); } private static String parseNullStringIdentifier(String str) { if (str.equals(nullStringIdentifier)) { return null; } return str; } public void setContext(Context context) { this.context = context; } }