酷狗概念版 v2.5.5版本的 MD5 值为:782d327088fca4e58310f35a56f41319
以下内容为反编译后的 p.java 源代码,内容仅作参考
package com.kugou.android.app.flexowebview;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.util.Log;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import com.kugou.shortvideo.media.player.codec.MediaDecoder;
public class p {
private static volatile p f9469c;
private ValueCallback<Uri> f9470a;
private ValueCallback<Uri[]> f9471b;
private static String a(Context context) {
NetworkInfo activeNetworkInfo;
NetworkInfo.State state;
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService("connectivity");
if (connectivityManager != null && (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) != null && activeNetworkInfo.isAvailable()) {
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(1);
if (networkInfo != null && (state = networkInfo.getState()) != null && (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING)) {
return "NETWORK_WIFI";
}
NetworkInfo networkInfo2 = connectivityManager.getNetworkInfo(0);
if (networkInfo2 != null) {
NetworkInfo.State state2 = networkInfo2.getState();
String subtypeName = networkInfo2.getSubtypeName();
if (state2 != null && (state2 == NetworkInfo.State.CONNECTED || state2 == NetworkInfo.State.CONNECTING)) {
switch (activeNetworkInfo.getSubtype()) {
case 1:
case 2:
case 4:
case 7:
case 11:
return "NETWORK_2G";
case 3:
case 5:
case 6:
case 8:
case 9:
case 10:
case 12:
case 14:
case 15:
return "NETWORK_3G";
case 13:
return "NETWORK_4G";
default:
return (subtypeName.equalsIgnoreCase("TD-SCDMA") || subtypeName.equalsIgnoreCase("WCDMA") || subtypeName.equalsIgnoreCase("CDMA2000")) ? "NETWORK_3G" : "NETWORK_MOBILE";
}
}
}
}
return "NETWORK_NONE";
}
public static synchronized p a() {
p pVar;
synchronized (p.class) {
if (f9469c == null) {
f9469c = new p();
}
pVar = f9469c;
}
return pVar;
}
private p() {
}
public void a(WebView webView, Context context) {
if (webView == null) {
return;
}
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSavePassword(false);
settings.setTextZoom(100);
settings.setAllowFileAccess(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setSupportMultipleWindows(false);
settings.setLoadWithOverviewMode(true);
settings.setAppCacheEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
settings.setAppCacheMaxSize(MediaDecoder.PTS_EOS);
settings.setAppCachePath(context.getDir("appcache", 0).getPath());
settings.setDatabasePath(context.getDir("databases", 0).getPath());
settings.setGeolocationDatabasePath(context.getDir("geolocation", 0).getPath());
settings.setPluginState(WebSettings.PluginState.ON_DEMAND);
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
if (Build.VERSION.SDK_INT >= 16) {
settings.setAllowUniversalAccessFromFileURLs(true);
}
if (Build.VERSION.SDK_INT >= 11) {
webView.removeJavascriptInterface("searchBoxJavaBridge_");
}
String userAgentString = settings.getUserAgentString();
try {
settings.setUserAgentString(userAgentString + ";webank/h5face;webank/1.0;netType:" + a(context) + ";appVersion:" + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode + ";packageName:" + context.getPackageName());
} catch (PackageManager.NameNotFoundException e2) {
settings.setUserAgentString(userAgentString + ";webank/h5face;webank/1.0");
e2.printStackTrace();
}
}
public boolean a(int i, int i2, Intent intent) {
if (i != 17) {
return false;
}
if (this.f9470a == null && this.f9471b == null) {
return true;
}
Uri data = (intent == null || i2 != -1) ? null : intent.getData();
Uri[] uriArr = data == null ? null : new Uri[]{data};
ValueCallback<Uri[]> valueCallback = this.f9471b;
if (valueCallback != null) {
valueCallback.onReceiveValue(uriArr);
b(null);
} else {
this.f9470a.onReceiveValue(data);
a((ValueCallback<Uri>) null);
}
return true;
}
public boolean a(ValueCallback<Uri> valueCallback, String str, Activity activity) {
Log.d("faceVerify", "acceptType: " + str);
if (!"video/*".equals(str) && !"video/webank".equals(str)) {
return false;
}
a(valueCallback);
a(activity);
return true;
}
@TargetApi(21)
public boolean a(WebView webView, ValueCallback<Uri[]> valueCallback, Activity activity, WebChromeClient.FileChooserParams fileChooserParams) {
Log.d("faceVerify", "accept is " + fileChooserParams.getAcceptTypes()[0] + "---url---" + webView.getUrl());
if (!"video/webank".equals(fileChooserParams.getAcceptTypes()[0]) && !webView.getUrl().startsWith("https://ida.webank.com/")) {
return false;
}
b(valueCallback);
a(activity);
return true;
}
private void a(Activity activity) {
try {
Intent intent = new Intent("android.media.action.VIDEO_CAPTURE");
intent.putExtra("android.intent.extra.videoQuality", 1);
intent.addFlags(1);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
activity.startActivityForResult(intent, 17);
} catch (Exception e2) {
e2.printStackTrace();
}
}
private void a(ValueCallback<Uri> valueCallback) {
this.f9470a = valueCallback;
}
private void b(ValueCallback<Uri[]> valueCallback) {
this.f9471b = valueCallback;
}
}