package com.baidu.idl.facelive.api; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Build; import com.baidu.idl.face.platform.FaceSDKManager; import com.baidu.idl.face.platform.listener.IInitCallback; import com.baidu.idl.face.platform.ui.FaceActionLivenessActivity; import com.baidu.idl.face.platform.ui.FaceActionLivenessVideoActivity; import com.baidu.idl.face.platform.ui.FaceColorLivenessActivity; import com.baidu.idl.face.platform.ui.FaceColorLivenessVideoActivity; import com.baidu.idl.face.platform.ui.FaceSilenceLivenessActivity; import com.baidu.idl.face.platform.ui.utils.IntentUtils; import com.baidu.idl.face.platform.utils.SystemUtils; import com.baidu.idl.facelive.api.callback.InitCallback; import com.baidu.idl.facelive.api.callback.LivenessCallback; import com.baidu.idl.facelive.api.entity.FaceLiveConfig; import com.baidu.idl.facelive.api.entity.FaceLivenessType; import com.baidu.idl.facelive.api.entity.InitOption; import com.baidu.idl.facelive.api.entity.LivenessOption; import com.baidu.idl.facelive.api.manager.FaceCallbackManager; public class FaceLiveManager { private static final String TAG = "com.baidu.idl.facelive.api.FaceLiveManager"; private static FaceLiveManager faceLiveManager = new FaceLiveManager(); private FaceLiveConfig mFaceLiveConfig = new FaceLiveConfig(); private boolean mInitSuccess; public static FaceLiveManager getInstance() { return faceLiveManager; } public FaceLiveConfig getFaceConfig() { return this.mFaceLiveConfig; } public void setFaceConfig(FaceLiveConfig faceLiveConfig) { this.mFaceLiveConfig = faceLiveConfig; FaceSDKManager.getInstance().setFaceConfig(this.mFaceLiveConfig); } public void init(Context context, InitOption initOption, final InitCallback initCallback) { FaceSDKManager.getInstance().initialize(context, initOption.licenseKey, initOption.licenseFileName, new IInitCallback() { /* class com.baidu.idl.facelive.api.FaceLiveManager.AnonymousClass1 */ @Override // com.baidu.idl.face.platform.listener.IInitCallback public void initSuccess() { FaceLiveManager.this.mInitSuccess = true; if (initCallback != null) { FaceInitStatusEnum convertInitStatusCode = FaceInitStatusConvert.getConvertInitStatusCode(0); int state = convertInitStatusCode.getState(); InitCallback initCallback = initCallback; initCallback.onSuccess(state, "[" + convertInitStatusCode + "]"); } } @Override // com.baidu.idl.face.platform.listener.IInitCallback public void initFailure(int i, String str) { FaceLiveManager.this.mInitSuccess = false; if (initCallback != null) { FaceInitStatusEnum convertInitStatusCode = FaceInitStatusConvert.getConvertInitStatusCode(i); int state = convertInitStatusCode.getState(); InitCallback initCallback = initCallback; initCallback.onError(state, "[" + convertInitStatusCode + "]"); } } }); } public void startFaceLiveness(Activity activity, LivenessOption livenessOption, LivenessCallback livenessCallback) { FaceCallbackManager.getInstance().mLivenessCallback = livenessCallback; boolean z = false; if (this.mFaceLiveConfig.isOpenRecord()) { if (!(this.mFaceLiveConfig.getPhoneList() == null || this.mFaceLiveConfig.getPhoneList().size() == 0)) { boolean z2 = false; for (int i = 0; i < this.mFaceLiveConfig.getPhoneList().size(); i++) { String str = this.mFaceLiveConfig.getPhoneList().get(i); String str2 = str.split("_")[0]; String str3 = str.split("_")[1]; if (str2.equals(Build.BRAND) && str3.equals(Build.MODEL)) { z2 = true; } } z = z2; } if (z) { if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.COLORLIVENESS) { Intent intent = new Intent(activity, FaceColorLivenessActivity.class); intent.putExtra("livenessOption", livenessOption); intent.putExtra("frameExtraction", true); intent.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent); } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.SILENTLIVENESS) { Intent intent2 = new Intent(activity, FaceSilenceLivenessActivity.class); intent2.putExtra("livenessOption", livenessOption); intent2.putExtra("frameExtraction", true); intent2.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent2); } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.ACTIONLIVENESS) { Intent intent3 = new Intent(activity, FaceActionLivenessActivity.class); intent3.putExtra("livenessOption", livenessOption); intent3.putExtra("frameExtraction", true); intent3.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent3); } } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.COLORLIVENESS) { Intent intent4 = new Intent(activity, FaceColorLivenessVideoActivity.class); intent4.putExtra("livenessOption", livenessOption); intent4.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent4); } else if (this.mFaceLiveConfig.getFaceLivenessType() != FaceLivenessType.SILENTLIVENESS && this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.ACTIONLIVENESS) { Intent intent5 = new Intent(activity, FaceActionLivenessVideoActivity.class); intent5.putExtra("livenessOption", livenessOption); intent5.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent5); } } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.COLORLIVENESS) { Intent intent6 = new Intent(activity, FaceColorLivenessActivity.class); intent6.putExtra("livenessOption", livenessOption); intent6.putExtra("frameExtraction", false); intent6.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent6); } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.SILENTLIVENESS) { Intent intent7 = new Intent(activity, FaceSilenceLivenessActivity.class); intent7.putExtra("livenessOption", livenessOption); intent7.putExtra("frameExtraction", false); intent7.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent7); } else if (this.mFaceLiveConfig.getFaceLivenessType() == FaceLivenessType.ACTIONLIVENESS) { Intent intent8 = new Intent(activity, FaceActionLivenessActivity.class); intent8.putExtra("livenessOption", livenessOption); intent8.putExtra("frameExtraction", false); intent8.putExtra("initSuccess", this.mInitSuccess); activity.startActivity(intent8); } } public boolean release() { FaceSDKManager.getInstance().release(); IntentUtils.getInstance().release(); return true; } public String getVersion(Context context) { try { return SystemUtils.getVersionInfo(context).getVersionName(); } catch (Exception e) { e.printStackTrace(); return FaceSDKManager.getVersion(); } } }