沃创云 v1.0.2版本的 MD5 值为:75fd4b81bf3100e28225c876f02b8eb1
以下内容为反编译后的 FaceProtocalActivity.java 源代码,内容仅作参考
package com.webank.facelight.ui;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import cn.jpush.android.local.JPushConstants;
import com.webank.facelight.R;
import com.webank.facelight.Request.Param;
import com.webank.facelight.contants.WbFaceError;
import com.webank.facelight.contants.WbFaceVerifyResult;
import com.webank.facelight.tools.WbCloudFaceVerifySdk;
import com.webank.facelight.tools.h;
import com.webank.facelight.ui.component.b;
import com.webank.normal.tools.WLogger;
import com.webank.simple.wbanalytics.WBSimpleAnalyticsService;
import java.net.URLEncoder;
import java.util.Properties;
public class FaceProtocalActivity extends Activity {
private WbCloudFaceVerifySdk a;
private h b = new h(120000);
private b c;
private LinearLayout d;
private ImageView e;
private WebView f;
private String g;
private String h;
public static class a implements b.InterfaceC0070b {
private WbCloudFaceVerifySdk a;
private Activity b;
public a(WbCloudFaceVerifySdk wbCloudFaceVerifySdk, Activity activity) {
this.a = wbCloudFaceVerifySdk;
this.b = activity;
}
@Override
public void onHomeLongPressed() {
WLogger.e("FaceProtocalActivity", "onHomeLongPressed");
}
@Override
public void onHomePressed() {
WLogger.e("FaceProtocalActivity", "onHomePressed");
WBSimpleAnalyticsService.trackCustomKVEvent(this.b.getApplicationContext(), "authpage_detailpage_exit_self", "点击home键返回", null);
this.a.setIsFinishedVerify(true);
if (this.a.getWbFaceVerifyResultListener() != null) {
WbFaceVerifyResult wbFaceVerifyResult = new WbFaceVerifyResult();
wbFaceVerifyResult.setIsSuccess(false);
wbFaceVerifyResult.setOrderNo(this.a.getOrderNo());
wbFaceVerifyResult.setSign(null);
WbFaceError wbFaceError = new WbFaceError();
wbFaceError.setDomain(WbFaceError.WBFaceErrorDomainNativeProcess);
wbFaceError.setCode(WbFaceError.WBFaceErrorCodeUserCancle);
wbFaceError.setDesc("用户取消");
wbFaceError.setReason("手机home键:用户授权中取消");
wbFaceVerifyResult.setError(wbFaceError);
Properties properties = new Properties();
properties.setProperty("errorDesc", wbFaceError.toString());
WBSimpleAnalyticsService.trackCustomKVEvent(this.b, "facepage_returnresult", WbFaceError.WBFaceErrorCodeUserCancle, properties);
this.a.getWbFaceVerifyResultListener().onFinish(wbFaceVerifyResult);
}
this.b.finish();
}
}
public void a(String str) {
this.f.loadUrl(str);
}
private void b() {
b bVar = new b(this);
this.c = bVar;
bVar.a(new a(this.a, this));
String protocolCorpName = this.a.getProtocolCorpName();
WLogger.d("FaceProtocalActivity", "protocolCorpName=" + protocolCorpName);
String replace = protocolCorpName.replace("$$$", "|");
WLogger.d("FaceProtocalActivity", "after protocolCorpName=" + replace);
String[] split = replace.split("\\|");
String str = "";
String str2 = null;
for (int i = 0; i < split.length; i++) {
WLogger.d("FaceProtocalActivity", "tmp[" + i + "]=" + split[i]);
if (i == 0) {
str2 = split[0];
} else if (i == 1) {
str = split[1];
}
}
WLogger.d("FaceProtocalActivity", "corpName=" + str2 + ",channel=" + str);
String appId = Param.getAppId();
String protocolNo = this.a.getProtocolNo();
this.g = (this.a.isIpv6() ? "https://idav6.webank.com" : "https://ida.webank.com") + "/s/h5/protocolCDN.html?appId=" + appId + "&protocolNo=" + protocolNo + "&name=" + URLEncoder.encode(str2) + "&channel=" + str;
StringBuilder sb = new StringBuilder();
sb.append("url=");
sb.append(this.g);
WLogger.d("FaceProtocalActivity", sb.toString());
WBSimpleAnalyticsService.trackCustomKVEvent(getApplicationContext(), "authpage_detailpage_enter", this.g, null);
this.e = (ImageView) findViewById(R.id.wbcf_protocol_back);
if (this.h.equals("custom")) {
Drawable mutate = DrawableCompat.wrap(ContextCompat.getDrawable(this, R.mipmap.wbcf_back)).mutate();
DrawableCompat.setTint(mutate, R.color.wbcf_custom_auth_back_tint);
this.e.setImageDrawable(mutate);
}
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.wbcf_protocol_left_button);
this.d = linearLayout;
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (FaceProtocalActivity.this.f.canGoBack()) {
WLogger.d("FaceProtocalActivity", "左上角返回键,回到上一页");
FaceProtocalActivity.this.f.goBack();
} else {
WLogger.d("FaceProtocalActivity", "左上角返回键,无上一页,退出授权sdk");
WBSimpleAnalyticsService.trackCustomKVEvent(FaceProtocalActivity.this.getApplicationContext(), "authpage_detailpage_exit_self", "左上角返回", null);
FaceProtocalActivity.this.finish();
}
}
});
WebView webView = (WebView) findViewById(R.id.wbcf_protocol_webview);
this.f = webView;
webView.setBackgroundColor(0);
a();
}
protected void a() {
if (Build.VERSION.SDK_INT >= 16) {
this.f.setImportantForAccessibility(4);
}
this.f.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String str) {
super.onPageFinished(webView, str);
WLogger.d("FaceProtocalActivity", "onPageFinished:" + System.currentTimeMillis());
}
@Override
public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
super.onPageStarted(webView, str, bitmap);
WLogger.d("FaceProtocalActivity", "onPageStarted:" + System.currentTimeMillis());
}
@Override
public void onReceivedSslError(WebView webView, final SslErrorHandler sslErrorHandler, SslError sslError) {
WLogger.e("FaceProtocalActivity", "webview访问网址ssl证书无效!询问客户");
AlertDialog.Builder builder = new AlertDialog.Builder(FaceProtocalActivity.this);
builder.setMessage("当前页面证书不可信,是否继续访问?");
builder.setPositiveButton("继续", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sslErrorHandler.proceed();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sslErrorHandler.cancel();
}
});
builder.create().show();
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView webView, String str) {
return super.shouldInterceptRequest(webView, str);
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String str) {
WLogger.d("FaceProtocalActivity", str);
if (!str.startsWith(JPushConstants.HTTPS_PRE)) {
return false;
}
FaceProtocalActivity.this.a(str);
return true;
}
});
WebSettings settings = this.f.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSavePassword(false);
settings.setAllowFileAccess(false);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setSupportMultipleWindows(false);
settings.setLoadWithOverviewMode(true);
settings.setAppCacheEnabled(false);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
settings.setGeolocationEnabled(true);
settings.setAppCacheMaxSize(0L);
settings.setAppCachePath(getDir("appcache", 0).getPath());
settings.setDatabasePath(getDir("databases", 0).getPath());
settings.setGeolocationDatabasePath(getDir("geolocation", 0).getPath());
settings.setPluginState(WebSettings.PluginState.ON_DEMAND);
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
settings.setAllowUniversalAccessFromFileURLs(false);
if (Build.VERSION.SDK_INT <= 19) {
this.f.removeJavascriptInterface("searchBoxJavaBridge_");
this.f.removeJavascriptInterface("accessibility");
this.f.removeJavascriptInterface("accessibilityTraversal");
}
if (Build.VERSION.SDK_INT >= 11) {
this.f.removeJavascriptInterface("searchBoxJavaBridge_");
}
this.f.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return true;
}
});
a(this.g);
}
@Override
public void onBackPressed() {
if (this.f.canGoBack()) {
WLogger.d("FaceProtocalActivity", "手机返回键,回到上一页");
this.f.goBack();
} else {
WLogger.d("FaceProtocalActivity", "手机返回键,无上一页可回,退出授权页面");
super.onBackPressed();
WBSimpleAnalyticsService.trackCustomKVEvent(getApplicationContext(), "authpage_detailpage_exit_self", "手机返回键", null);
finish();
}
}
@Override
public void onCreate(Bundle bundle) {
WLogger.d("FaceProtocalActivity", "onCreate");
WbCloudFaceVerifySdk wbCloudFaceVerifySdk = WbCloudFaceVerifySdk.getInstance();
this.a = wbCloudFaceVerifySdk;
String colorMode = wbCloudFaceVerifySdk.getColorMode();
this.h = colorMode;
if (colorMode == null) {
WLogger.e("FaceProtocalActivity", "mWbCloudFaceVerifySdk.getColorMode() null,set default black");
this.h = "black";
}
super.onCreate(bundle);
setContentView(R.layout.wbcf_face_protocol_layout);
b();
}
@Override
public void onDestroy() {
super.onDestroy();
WLogger.i("FaceProtocalActivity", "onDestroy");
}
@Override
public void onPause() {
WLogger.d("TAG", "onPause");
super.onPause();
b bVar = this.c;
if (bVar != null) {
bVar.b();
}
this.b.a();
}
@Override
public void onResume() {
super.onResume();
WLogger.d("FaceProtocalActivity", "onResume");
b bVar = this.c;
if (bVar != null) {
bVar.a();
}
this.b.a(getApplicationContext());
}
@Override
public void onStart() {
WLogger.d("FaceProtocalActivity", "onStart");
super.onStart();
}
@Override
public void onStop() {
WLogger.i("TAG", "onStop");
super.onStop();
}
}