翰林优商.apk(点击下载) / FaceSilenceLivenessActivity.java
package com.baidu.idl.face.platform.ui;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.idl.face.platform.FaceConfig;
import com.baidu.idl.face.platform.FaceSDKManager;
import com.baidu.idl.face.platform.FaceStatusNewEnum;
import com.baidu.idl.face.platform.LivenessTypeEnum;
import com.baidu.idl.face.platform.model.FaceExtInfo;
import com.baidu.idl.face.platform.model.ImageInfo;
import com.baidu.idl.face.platform.ui.utils.BrightnessUtils;
import com.baidu.idl.face.platform.ui.utils.HomeUtils;
import com.baidu.idl.face.platform.ui.utils.IntentUtils;
import com.baidu.idl.face.platform.ui.utils.ViewUtils;
import com.baidu.idl.face.platform.ui.utils.VolumeUtils;
import com.baidu.idl.face.platform.ui.widget.FaceDetectRoundView;
import com.baidu.idl.face.platform.utils.Base64Utils;
import com.baidu.idl.facelive.api.FaceLiveManager;
import com.baidu.idl.facelive.api.entity.FaceLivenessType;
import com.baidu.idl.facelive.api.entity.LivenessResult;
import com.baidu.liantian.ac.FaceProcessConfig;
import com.baidu.liantian.ac.FaceProcessType;
import com.baidu.liantian.ac.LH;
import com.baidu.liantian.ac.RequestInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FaceSilenceLivenessActivity extends BaseCameraActivity implements VolumeUtils.VolumeCallback {
public static final String TAG = "FaceSilenceLivenessActivity";
private HashMap<String, ImageInfo> mBase64ImageCropMap;
private HashMap<String, ImageInfo> mBase64ImageSrcMap;
protected ImageView mCloseView;
private Context mContext;
protected int mDisplayHeight = 0;
protected int mDisplayWidth = 0;
protected FaceConfig mFaceConfig;
protected FaceDetectRoundView mFaceDetectRoundView;
protected FrameLayout mFrameLayout;
protected BroadcastReceiver mHomeReceiver;
private ImageView mImageFrame;
protected LinearLayout mImageLayout;
protected LinearLayout mImageLayout2;
private boolean mInitSuccess;
protected volatile boolean mIsCompletion = false;
protected volatile boolean mIsEnableSound = true;
private float mLiveScore;
private float mLiveScoreThreshold;
private RelativeLayout mRelativeAddImageView;
protected View mRootView;
protected ImageView mSoundView;
protected ImageView mSuccessView;
protected SurfaceHolder mSurfaceHolder;
protected TextView mTipsTopView;
protected BroadcastReceiver mVolumeReceiver;
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void animStop() {
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void setBackgroundColor(int i, int i2) {
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void setCurrentLiveType(LivenessTypeEnum livenessTypeEnum) {
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void setFaceInfo(FaceExtInfo faceExtInfo) {
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void viewReset() {
}
@Override // com.baidu.idl.face.platform.ui.BaseUIActivity
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
ViewUtils.changeTheme(this);
setScreenBright();
getWindow().addFlags(128);
setContentView(R.layout.activity_face_silence_v3100);
this.mContext = this;
IntentUtils.addDestroyActivity(this, TAG);
getIntentData();
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
this.mDisplayWidth = displayMetrics.widthPixels;
this.mDisplayHeight = displayMetrics.heightPixels;
FaceSDKResSettings.initializeResId();
this.mFaceConfig = FaceSDKManager.getInstance().getFaceConfig();
this.mIsEnableSound = ((AudioManager) getSystemService("audio")).getStreamVolume(3) > 0 ? FaceLiveManager.getInstance().getFaceConfig().isSound() : false;
View findViewById = findViewById(R.id.detect_root_layout);
this.mRootView = findViewById;
this.mFrameLayout = (FrameLayout) findViewById.findViewById(R.id.detect_surface_layout);
this.mSurfaceView = new SurfaceView(this);
SurfaceHolder holder = this.mSurfaceView.getHolder();
this.mSurfaceHolder = holder;
holder.setSizeFromLayout();
this.mSurfaceHolder.setType(3);
float f = ((float) this.mDisplayWidth) * 0.75f * 0.9f;
this.mSurfaceView.setLayoutParams(new FrameLayout.LayoutParams((int) f, (int) ((f * 640.0f) / 480.0f), 17));
this.mFrameLayout.addView(this.mSurfaceView);
this.mRootView.findViewById(R.id.detect_close).setOnClickListener(new View.OnClickListener() {
/* class com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity.AnonymousClass1 */
public void onClick(View view) {
FaceSilenceLivenessActivity.this.onBackPressed();
}
});
FaceDetectRoundView faceDetectRoundView = (FaceDetectRoundView) this.mRootView.findViewById(R.id.detect_face_round);
this.mFaceDetectRoundView = faceDetectRoundView;
faceDetectRoundView.setIsActiveLive(false);
this.mFaceDetectRoundView.setIsShowShade(false);
this.mCloseView = (ImageView) this.mRootView.findViewById(R.id.detect_close);
ImageView imageView = (ImageView) this.mRootView.findViewById(R.id.detect_sound);
this.mSoundView = imageView;
imageView.setImageResource(this.mIsEnableSound ? R.mipmap.icon_titlebar_voice2 : R.drawable.collect_image_voice_selector);
this.mSoundView.setOnClickListener(new View.OnClickListener() {
/* class com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity.AnonymousClass2 */
public void onClick(View view) {
FaceSilenceLivenessActivity faceSilenceLivenessActivity = FaceSilenceLivenessActivity.this;
faceSilenceLivenessActivity.mIsEnableSound = !faceSilenceLivenessActivity.mIsEnableSound;
FaceSilenceLivenessActivity.this.mSoundView.setImageResource(FaceSilenceLivenessActivity.this.mIsEnableSound ? R.mipmap.icon_titlebar_voice2 : R.drawable.collect_image_voice_selector);
LH.setSoundEnable(FaceSilenceLivenessActivity.this.mIsEnableSound);
}
});
this.mTipsTopView = (TextView) this.mRootView.findViewById(R.id.detect_top_tips);
this.mSuccessView = (ImageView) this.mRootView.findViewById(R.id.detect_success_image);
this.mImageLayout = (LinearLayout) this.mRootView.findViewById(R.id.detect_result_image_layout);
this.mImageLayout2 = (LinearLayout) this.mRootView.findViewById(R.id.detect_result_image_layout2);
this.mRelativeAddImageView = (RelativeLayout) this.mRootView.findViewById(R.id.relative_add_image_view);
this.mViewBg = findViewById(R.id.view_bg);
this.mHomeReceiver = HomeUtils.registerHomeReceiver(this, this);
addImageView();
}
private void getIntentData() {
Intent intent = getIntent();
if (intent != null) {
this.mInitSuccess = intent.getBooleanExtra("initSuccess", false);
}
float f = FaceLiveManager.getInstance().getFaceConfig().getLivenessValueModel(FaceLivenessType.SILENTLIVENESS).livenessScore;
this.mLiveScoreThreshold = f;
FaceProcessConfig.setLiveScoreThreshold(f);
}
private void setScreenBright() {
BrightnessUtils.setBrightness(this, BrightnessUtils.getScreenBrightness(this) + 100);
}
private void addImageView() {
this.mFaceDetectRoundView.post(new Runnable() {
/* class com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity.AnonymousClass3 */
public void run() {
FaceSilenceLivenessActivity.this.mImageFrame = new ImageView(FaceSilenceLivenessActivity.this.mContext);
ViewUtils.addFrame(FaceSilenceLivenessActivity.this.mRelativeAddImageView, FaceSilenceLivenessActivity.this.mImageFrame, FaceSilenceLivenessActivity.this.mFaceDetectRoundView);
}
});
}
public void onResume() {
FaceDetectRoundView faceDetectRoundView;
super.onResume();
if (this.mInitSuccess || (faceDetectRoundView = this.mFaceDetectRoundView) == null) {
setVolumeControlStream(3);
this.mVolumeReceiver = VolumeUtils.registerVolumeReceiver(this, this);
FaceDetectRoundView faceDetectRoundView2 = this.mFaceDetectRoundView;
if (faceDetectRoundView2 != null) {
faceDetectRoundView2.setTipTopText(getResources().getString(R.string.faceLivenessMovetoFrameText));
}
startPreview(FaceProcessType.SILENCE_LIVENESS, this.mSurfaceHolder);
return;
}
faceDetectRoundView.setTipTopText(getResources().getString(R.string.faceLivenessVerifyFailedText));
}
/* access modifiers changed from: protected */
public void onRestart() {
super.onRestart();
if (this.mIsClickHomeKey) {
Toast.makeText(getApplicationContext(), getResources().getText(R.string.collect_home), 0).show();
finish();
this.mIsClickHomeKey = false;
}
}
public void onPause() {
super.onPause();
VolumeUtils.unRegisterVolumeReceiver(this, this.mVolumeReceiver);
this.mVolumeReceiver = null;
this.mIsCompletion = false;
stopPreview();
}
public void onStop() {
super.onStop();
BroadcastReceiver broadcastReceiver = this.mHomeReceiver;
if (broadcastReceiver != null) {
HomeUtils.unRegisterHomeReceiver(this, broadcastReceiver);
this.mHomeReceiver = null;
}
}
/* access modifiers changed from: protected */
public void onDestroy() {
super.onDestroy();
IntentUtils.removeDestroyActivity(TAG);
}
@Override // com.baidu.idl.face.platform.ui.utils.VolumeUtils.VolumeCallback
public void volumeChanged() {
try {
AudioManager audioManager = (AudioManager) getSystemService("audio");
if (audioManager != null) {
this.mIsEnableSound = audioManager.getStreamVolume(3) > 0;
this.mSoundView.setImageResource(this.mIsEnableSound ? R.mipmap.icon_titlebar_voice2 : R.mipmap.icon_titlebar_voice_close);
LH.setSoundEnable(this.mIsEnableSound);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void onCollectCompletion(FaceStatusNewEnum faceStatusNewEnum, String str, HashMap<String, ImageInfo> hashMap, HashMap<String, ImageInfo> hashMap2, int i) {
if (!this.mIsCompletion) {
LH.setSoundEnable(this.mIsEnableSound);
onRefreshView(faceStatusNewEnum, str);
if (faceStatusNewEnum == FaceStatusNewEnum.OK) {
this.mIsCompletion = true;
this.mBase64ImageCropMap = hashMap;
this.mBase64ImageSrcMap = hashMap2;
} else if (faceStatusNewEnum == FaceStatusNewEnum.FaceLivenessSilentNoPass) {
this.mIsCompletion = true;
}
}
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void onEnd(int i, RequestInfo requestInfo) {
LivenessResult livenessResult;
super.onEnd(i, requestInfo);
if (i == 1) {
LivenessResult livenessResult2 = setLivenessResult(i, requestInfo, this.mBase64ImageCropMap, this.mBase64ImageSrcMap, this.mLiveScore);
if (livenessResult2 != null) {
startSuccessActivity(this.mContext, this.mLiveScore, livenessResult2);
}
} else if (i == -401) {
if (!FaceLiveManager.getInstance().getFaceConfig().isShowTimeoutDialog()) {
setDialogLivenessResult(i, requestInfo);
return;
}
if (this.mViewBg != null) {
this.mViewBg.setVisibility(0);
}
showMessageDialog();
} else if (i == -404 && (livenessResult = setLivenessResult(i, requestInfo, null, null, this.mLiveScore)) != null) {
startFailureActivity(this.mContext, this.mLiveScore, false, livenessResult);
}
}
/* access modifiers changed from: package-private */
/* renamed from: com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity$6 reason: invalid class name */
public static /* synthetic */ class AnonymousClass6 {
static final /* synthetic */ int[] $SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum;
/* JADX WARNING: Can't wrap try/catch for region: R(20:0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|(3:19|20|22)) */
/* JADX WARNING: Can't wrap try/catch for region: R(22:0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|22) */
/* JADX WARNING: Failed to process nested try/catch */
/* JADX WARNING: Missing exception handler attribute for start block: B:11:0x003e */
/* JADX WARNING: Missing exception handler attribute for start block: B:13:0x0049 */
/* JADX WARNING: Missing exception handler attribute for start block: B:15:0x0054 */
/* JADX WARNING: Missing exception handler attribute for start block: B:17:0x0060 */
/* JADX WARNING: Missing exception handler attribute for start block: B:19:0x006c */
/* JADX WARNING: Missing exception handler attribute for start block: B:3:0x0012 */
/* JADX WARNING: Missing exception handler attribute for start block: B:5:0x001d */
/* JADX WARNING: Missing exception handler attribute for start block: B:7:0x0028 */
/* JADX WARNING: Missing exception handler attribute for start block: B:9:0x0033 */
static {
int[] iArr = new int[FaceStatusNewEnum.values().length];
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum = iArr;
iArr[FaceStatusNewEnum.OK.ordinal()] = 1;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.FaceLivenessActionComplete.ordinal()] = 2;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeTooClose.ordinal()] = 3;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeTooFar.ordinal()] = 4;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeBeyondPreviewFrame.ordinal()] = 5;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeNoFaceDetected.ordinal()] = 6;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodePitchOutofUpRange.ordinal()] = 7;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodePitchOutofDownRange.ordinal()] = 8;
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeYawOutofLeftRange.ordinal()] = 9;
try {
$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[FaceStatusNewEnum.DetectRemindCodeYawOutofRightRange.ordinal()] = 10;
} catch (NoSuchFieldError unused) {
}
}
}
private void onRefreshView(FaceStatusNewEnum faceStatusNewEnum, String str) {
switch (AnonymousClass6.$SwitchMap$com$baidu$idl$face$platform$FaceStatusNewEnum[faceStatusNewEnum.ordinal()]) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
this.mFaceDetectRoundView.setTipTopText(str);
this.mFaceDetectRoundView.setTipSecondText("");
return;
case 7:
case 8:
case 9:
case 10:
this.mFaceDetectRoundView.setTipTopText(getResources().getString(R.string.faceLivenessKeepFacePositiveText));
this.mFaceDetectRoundView.setTipSecondText(str);
return;
default:
this.mFaceDetectRoundView.setTipTopText(getResources().getString(R.string.faceLivenessKeepFacePositiveText));
this.mFaceDetectRoundView.setTipSecondText(str);
return;
}
}
private static Bitmap base64ToBitmap(String str) {
byte[] decode = Base64Utils.decode(str, 2);
return BitmapFactory.decodeByteArray(decode, 0, decode.length);
}
@Override // com.baidu.liantian.ac.FaceProcessCallback, com.baidu.idl.face.platform.ui.BaseCameraActivity
public void setLiveScore(float f) {
this.mLiveScore = f;
String str = TAG;
Log.e(str, "score = " + f);
}
private void saveAllImage(HashMap<String, ImageInfo> hashMap, HashMap<String, ImageInfo> hashMap2) {
if (hashMap != null && hashMap.size() > 0) {
ArrayList arrayList = new ArrayList(hashMap.entrySet());
Collections.sort(arrayList, new Comparator<Map.Entry<String, ImageInfo>>() {
/* class com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity.AnonymousClass4 */
public int compare(Map.Entry<String, ImageInfo> entry, Map.Entry<String, ImageInfo> entry2) {
return Float.valueOf(entry2.getKey().split("_")[2]).compareTo(Float.valueOf(entry.getKey().split("_")[2]));
}
});
setImageView1(arrayList);
}
if (hashMap2 != null && hashMap2.size() > 0) {
ArrayList arrayList2 = new ArrayList(hashMap2.entrySet());
Collections.sort(arrayList2, new Comparator<Map.Entry<String, ImageInfo>>() {
/* class com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity.AnonymousClass5 */
public int compare(Map.Entry<String, ImageInfo> entry, Map.Entry<String, ImageInfo> entry2) {
return Float.valueOf(entry2.getKey().split("_")[2]).compareTo(Float.valueOf(entry.getKey().split("_")[2]));
}
});
setImageView2(arrayList2);
}
}
private void setImageView1(List<Map.Entry<String, ImageInfo>> list) {
this.mImageLayout.removeAllViews();
for (Map.Entry<String, ImageInfo> entry : list) {
Bitmap base64ToBitmap = base64ToBitmap(entry.getValue().getBase64());
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(base64ToBitmap);
this.mImageLayout.addView(imageView, new LinearLayout.LayoutParams(300, 300));
}
}
private void setImageView2(List<Map.Entry<String, ImageInfo>> list) {
this.mImageLayout2.removeAllViews();
for (Map.Entry<String, ImageInfo> entry : list) {
Bitmap base64ToBitmap = base64ToBitmap(entry.getValue().getBase64());
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(base64ToBitmap);
this.mImageLayout2.addView(imageView, new LinearLayout.LayoutParams(300, 300));
}
}
}