翰林优商.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));
        }
    }
}