导航菜单

页面标题

页面副标题

Oolka v2.4.42 - HVFaceActivity.java 源代码

正在查看: Oolka v2.4.42 应用的 HVFaceActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package co.hyperverge.hypersnapsdk.activities;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Spanned;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.appcompat.app.b;
import co.hyperverge.hypersnapsdk.HyperSnapSDK;
import co.hyperverge.hypersnapsdk.R;
import co.hyperverge.hypersnapsdk.helpers.CustomTextStringConst;
import co.hyperverge.hypersnapsdk.helpers.SDKInternalConfig;
import co.hyperverge.hypersnapsdk.helpers.TimingUtils;
import co.hyperverge.hypersnapsdk.listeners.FaceCaptureCompletionHandler;
import co.hyperverge.hypersnapsdk.listeners.PermDialogCallback;
import co.hyperverge.hypersnapsdk.liveness.ui.texturetracker.TextureContract;
import co.hyperverge.hypersnapsdk.liveness.ui.texturetracker.TextureFragment;
import co.hyperverge.hypersnapsdk.liveness.ui.texturetracker.TexturePresenter;
import co.hyperverge.hypersnapsdk.model.HVJSONObject;
import co.hyperverge.hypersnapsdk.objects.HVBaseConfig;
import co.hyperverge.hypersnapsdk.objects.HVError;
import co.hyperverge.hypersnapsdk.objects.HVFaceConfig;
import co.hyperverge.hypersnapsdk.objects.HyperSnapParams;
import co.hyperverge.hypersnapsdk.objects.HyperSnapSDKConfig;
import co.hyperverge.hypersnapsdk.providers.CallbackProvider;
import co.hyperverge.hypersnapsdk.service.location.LocationServiceImpl;
import co.hyperverge.hypersnapsdk.utils.AppConstants;
import co.hyperverge.hypersnapsdk.utils.HVLogUtils;
import co.hyperverge.hypersnapsdk.utils.PermissionManager;
import co.hyperverge.hypersnapsdk.utils.TextConfigUtils;
import co.hyperverge.hypersnapsdk.utils.Utils;
import java.util.ArrayList;
import java.util.Arrays;
import org.json.JSONObject;

public class HVFaceActivity extends HVBaseActivity {
    private static final int INSTRUCTIONS_REQUEST_CODE = 1002;
    private static final int LOCATION_SETTINGS_REQUEST_CODE = 1001;
    private static final String TAG = "co.hyperverge.hypersnapsdk.activities.HVFaceActivity";
    HVFaceConfig faceConfig;
    private boolean isCheckingForPerms;
    TextureFragment mFragment;
    PermissionManager permissionManager;
    public final String camViewTag = "faceCaptureCameraPreview";
    private boolean isFromRetake = false;
    private final TimingUtils permissionTimingUtils = new TimingUtils();
    private final TimingUtils screenLoadSuccessTimingUtils = new TimingUtils();
    private boolean shouldAllowActivityClose = true;

    private void addTextureFragment() {
        HVLogUtils.d(TAG, "addTextureFragment() called");
        try {
            if (this.mFragment == null) {
                this.mFragment = new TextureFragment();
            }
            if (this.mFragment.getPresenter() == null) {
                TexturePresenter texturePresenter = new TexturePresenter();
                texturePresenter.setFaceConfig(this.faceConfig);
                texturePresenter.setView(this.mFragment);
                this.mFragment.setPresenter((TextureContract.Presenter) texturePresenter);
                texturePresenter.setMode(this.faceConfig.getMode());
                texturePresenter.setClientId(this.faceConfig.getClientID());
            }
            this.mFragment.setConfig(this.faceConfig);
            getSupportFragmentManager().p().q(R.id.texture_container, this.mFragment).i();
            if (!SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() || SDKInternalConfig.getInstance().getAnalyticsTrackerService() == null) {
                return;
            }
            long longValue = this.screenLoadSuccessTimingUtils.getTimeDifferenceLong().longValue();
            SDKInternalConfig.getInstance().getAnalyticsTrackerService().logSelfieCaptureScreenOpened(this.faceConfig);
            SDKInternalConfig.getInstance().getAnalyticsTrackerService().logSelfieCaptureScreenLoadSuccess(longValue);
            SDKInternalConfig.getInstance().getAnalyticsTrackerService().logSelfieCaptureScreenLaunched();
        } catch (Exception e) {
            HVLogUtils.e(TAG, "addTextureFragment(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() && SDKInternalConfig.getInstance().getAnalyticsTrackerService() != null) {
                SDKInternalConfig.getInstance().getAnalyticsTrackerService().logSelfieCaptureScreenLoadFailure(new HVError(2, Utils.getErrorMessage(e)));
            }
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
        }
    }

    private void getLocation() {
        HVLogUtils.d(TAG, "getLocation() called");
        if (!LocationServiceImpl.getInstance(this).isGPSSwitchedOn()) {
            showLocationSettingsDialog();
        } else {
            LocationServiceImpl.getInstance(this).getLastKnownLocation();
            LocationServiceImpl.getInstance(this).startLocationUpdates();
        }
    }

    public void lambda$showLocationSettingsDialog$0(DialogInterface dialogInterface, int i) {
        startActivityForResult(new Intent("android.settings.LOCATION_SOURCE_SETTINGS"), LOCATION_SETTINGS_REQUEST_CODE);
    }

    public void lambda$showLocationSettingsDialog$1(Spanned spanned, DialogInterface dialogInterface, int i) {
        String string = getString(R.string.hv_gps_access_denied_by_user);
        if (spanned != null) {
            string = spanned.toString();
        }
        HVBaseActivity.callCompletionHandler(CallbackProvider.get().injectCallback(), new HVError(33, string), null);
        finish();
    }

    private void reinitTimingUtils() {
        HVLogUtils.d(TAG, "reinitTimingUtils() called");
        try {
            this.permissionTimingUtils.init();
            this.screenLoadSuccessTimingUtils.init();
            TextureFragment textureFragment = this.mFragment;
            if (textureFragment != null) {
                textureFragment.reinitTimingUtils();
            }
        } catch (Exception e) {
            HVLogUtils.e(TAG, "reinitTimingUtils(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
        }
    }

    private void sendError(HVError hVError) {
        HVLogUtils.d(TAG, "sendError() called with: hvError = [" + hVError + "]");
        try {
            HVBaseActivity.callCompletionHandler(CallbackProvider.get().injectCallback(), hVError, null);
        } catch (Exception e) {
            HVLogUtils.e(TAG, "reinitTimingUtils(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
        }
    }

    public void sendInsufficientPermissions(String str) {
        HVLogUtils.d(TAG, "sendInsufficientPermissions() called with: message = [" + str + "]");
        try {
            HVBaseActivity.callCompletionHandler(CallbackProvider.get().injectCallback(), new HVError(4, str), null);
        } catch (Exception e) {
            HVLogUtils.e(TAG, "reinitTimingUtils(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
        }
    }

    private void sendOperationCancelled() {
        HVLogUtils.d(TAG, "sendOperationCancelled() called");
        try {
            HVBaseActivity.callCompletionHandler(CallbackProvider.get().injectCallback(), new HVError(3, getResources().getString(R.string.operation_cancelled)), null);
        } catch (Exception e) {
            HVLogUtils.e(TAG, "reinitTimingUtils(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
        }
    }

    private void showLocationSettingsDialog() {
        HVLogUtils.d(TAG, "showLocationSettingsDialog() called");
        HVJSONObject customUIStrings = this.faceConfig.getCustomUIStrings();
        Spanned text = TextConfigUtils.getText(customUIStrings, "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_LOCATION_PERMISSION_TITLE, getString(R.string.hv_gps_switched_off));
        Spanned text2 = TextConfigUtils.getText(customUIStrings, "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_LOCATION_PERMISSION_DESC, getString(R.string.hv_please_enable_gps_to_continue));
        Spanned text3 = TextConfigUtils.getText(customUIStrings, "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_LOCATION_PERMISSION_SETTINGS_BUTTON, getString(R.string.hv_open_settings));
        Spanned text4 = TextConfigUtils.getText(customUIStrings, "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_LOCATION_PERMISSION_CANCEL_BUTTON, getString(R.string.hv_cancel));
        final Spanned text5 = TextConfigUtils.getText(customUIStrings, "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_LOCATION_PERMISSION_ERROR, getString(R.string.hv_gps_access_denied_by_user));
        b.a aVar = new b.a(this);
        aVar.setTitle(text);
        aVar.f(text2);
        aVar.b(false);
        aVar.j(text3, new DialogInterface.OnClickListener() {
            @Override
            public final void onClick(DialogInterface dialogInterface, int i) {
                HVFaceActivity.this.lambda$showLocationSettingsDialog$0(dialogInterface, i);
            }
        });
        aVar.g(text4, new DialogInterface.OnClickListener() {
            @Override
            public final void onClick(DialogInterface dialogInterface, int i) {
                HVFaceActivity.this.lambda$showLocationSettingsDialog$1(text5, dialogInterface, i);
            }
        });
        aVar.m();
    }

    public static void start(@NonNull Context context, @NonNull HVFaceConfig hVFaceConfig, @NonNull FaceCaptureCompletionHandler faceCaptureCompletionHandler) {
        Intent intent;
        String str = TAG;
        HVLogUtils.d(str, "start() called with: context = [" + context + "], faceConfig = [" + hVFaceConfig + "], handler = [" + faceCaptureCompletionHandler + "]");
        if (faceCaptureCompletionHandler == null) {
            return;
        }
        CallbackProvider.get().setCallback(faceCaptureCompletionHandler);
        if (context == null) {
            HVBaseActivity.callCompletionHandler(faceCaptureCompletionHandler, new HVError(6, "Context object is null"), null);
            return;
        }
        HyperSnapSDK hyperSnapSDK = HyperSnapSDK.getInstance();
        HyperSnapSDKConfig hyperSnapSDKConfig = hyperSnapSDK.getHyperSnapSDKConfig();
        if (!hyperSnapSDK.isHyperSnapSDKInitialised() || ((hyperSnapSDKConfig.getAppId() != null && hyperSnapSDKConfig.getAppId().isEmpty()) || (hyperSnapSDKConfig.getAppKey() != null && hyperSnapSDKConfig.getAppKey().isEmpty()))) {
            HVError hVError = new HVError(11, context.getResources().getString(R.string.initialised_error));
            if (SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() && SDKInternalConfig.getInstance().getAnalyticsTrackerService() != null) {
                SDKInternalConfig.getInstance().getAnalyticsTrackerService().logHyperSnapSDKInitError(hVError.getErrorMessage());
            }
            HVLogUtils.d(str, "start: error = [" + hVError + "]");
            HVBaseActivity.callCompletionHandler(faceCaptureCompletionHandler, hVError, null);
            return;
        }
        if (hyperSnapSDKConfig.getHyperSnapRegion() == HyperSnapParams.Region.ASIA_PACIFIC && !HyperSnapSDK.isUserSessionActive()) {
            HVError hVError2 = new HVError(11, context.getResources().getString(R.string.user_session_not_created_error));
            HVLogUtils.d(str, "start: error = [" + hVError2 + "]");
            HVBaseActivity.callCompletionHandler(faceCaptureCompletionHandler, hVError2, null);
            return;
        }
        if (hVFaceConfig == null) {
            HVError hVError3 = new HVError(6, context.getResources().getString(R.string.face_config_error));
            HVLogUtils.d(str, "start: error = [" + hVError3 + "]");
            HVBaseActivity.callCompletionHandler(faceCaptureCompletionHandler, hVError3, null);
            return;
        }
        if (hVFaceConfig.isShouldShowInstructionPage()) {
            intent = new Intent(context, (Class<?>) HVFaceInstructionActivity.class);
            if (hVFaceConfig.getCustomUIStrings() != null) {
                intent.putExtra("customUIStrings", hVFaceConfig.getCustomUIStrings().toString());
            }
            intent.putExtra("shouldUseBackCam", hVFaceConfig.getShouldUseBackCamera());
        } else {
            intent = new Intent(context, (Class<?>) HVFaceActivity.class);
        }
        intent.putExtra("hvFaceConfig", hVFaceConfig);
        context.startActivity(intent);
    }

    @Override
    public void lambda$checkAndWaitForRemoteConfig$0() {
        super.lambda$checkAndWaitForRemoteConfig$0();
    }

    public void checkForPermissions() {
        HVLogUtils.d(TAG, "checkForPermissions() called");
        this.isCheckingForPerms = true;
        this.permissionTimingUtils.init();
        ArrayList arrayList = new ArrayList(Arrays.asList("android.permission.CAMERA"));
        this.permissionManager.checkAndRequestPermissions(this, arrayList);
        if (this.permissionManager.getStatus(this, arrayList).denied.isEmpty()) {
            SDKInternalConfig.getInstance().getAnalyticsTrackerService(getApplicationContext()).logCameraPermissionsGranted(this.permissionTimingUtils.getTimeDifferenceLong().longValue());
            this.isCheckingForPerms = false;
            startFaceCapture();
        }
    }

    @Override
    public HVBaseConfig getBaseConfig() {
        return this.faceConfig;
    }

    @Override
    public void handleCloseAction() {
        super.handleCloseAction();
    }

    public void onActivityResult(int i, int i2, Intent intent) {
        TextureFragment textureFragment;
        super/*androidx.fragment.app.FragmentActivity*/.onActivityResult(i, i2, intent);
        HVLogUtils.d(TAG, "onActivityResult() called with: requestCode = [" + i + "], resultCode = [" + i2 + "], data = [" + intent + "]");
        reinitTimingUtils();
        HVFaceConfig hVFaceConfig = this.faceConfig;
        if (hVFaceConfig != null && hVFaceConfig.isShouldRecordVideo() && (textureFragment = this.mFragment) != null) {
            textureFragment.reinitVideoRecording();
        }
        if (i2 == 18) {
            sendError((HVError) intent.getSerializableExtra("hvError"));
            finish();
        } else if (i2 == 21) {
            this.isFromRetake = true;
        }
        if (i != LOCATION_SETTINGS_REQUEST_CODE) {
            return;
        }
        try {
            getLocation();
        } catch (NoClassDefFoundError unused) {
        }
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

    @Override
    public void onCloseActivity() {
        HVLogUtils.d(TAG, "onCloseActivity() called");
        try {
            TextureFragment textureFragment = this.mFragment;
            if (textureFragment != null) {
                textureFragment.onBackPress();
            }
            if (!SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() || SDKInternalConfig.getInstance().getAnalyticsTrackerService() == null) {
                return;
            }
            SDKInternalConfig.getInstance().getAnalyticsTrackerService(getApplicationContext()).logSelfieCaptureScreenBackPressed();
        } catch (Exception e) {
            HVLogUtils.e(TAG, "onCloseActivity(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
        }
    }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.hv_activity_face_capture);
        getWindow().getDecorView().getRootView().setTag("faceCaptureCameraPreview");
        String str = TAG;
        HVLogUtils.d(str, "onCreate() called with: savedInstanceState = [" + bundle + "]");
        if (bundle != null) {
            HVLogUtils.d(str, "onCreate() savedInstance is not null, finishing activity");
            finish();
            return;
        }
        this.permissionManager = new PermissionManager();
        HVFaceConfig hVFaceConfig = (HVFaceConfig) getIntent().getSerializableExtra("hvFaceConfig");
        this.faceConfig = hVFaceConfig;
        HVFaceConfig.setFaceConfigInstance(hVFaceConfig);
        if (SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() && SDKInternalConfig.getInstance().getAnalyticsTrackerService() != null) {
            SDKInternalConfig.getInstance().getAnalyticsTrackerService().logSelfieFlowStarted(this.faceConfig);
        }
        this.screenLoadSuccessTimingUtils.init();
        if (HyperSnapSDK.getInstance().getHyperSnapSDKConfig().isShouldUseLocation()) {
            try {
                getLocation();
            } catch (NoClassDefFoundError unused) {
            }
        }
    }

    @Override
    public void onRemoteConfigFetchDone() {
        HVLogUtils.d(TAG, "onRemoteConfigFetchDone() called");
        if (HyperSnapSDK.getInstance().getHyperSnapSDKConfig().isShouldUseSensorBiometrics()) {
            String sensorDataZipFileName = Utils.getSensorDataZipFileName("face");
            if (SDKInternalConfig.getInstance().getHvSensorBiometrics() != null) {
                SDKInternalConfig.getInstance().getHvSensorBiometrics().registerSensorBiometrics(sensorDataZipFileName);
                SDKInternalConfig.getInstance().getHvSensorBiometrics().updateSensorDataEvents(System.currentTimeMillis(), "selfieFlowStarted");
            }
            JSONObject headers = this.faceConfig.getHeaders();
            try {
                headers.put(AppConstants.SENSOR_DATA_ZIP_FILE_NAME, sensorDataZipFileName);
                this.faceConfig.setLivenessAPIHeaders(headers);
            } catch (Exception e) {
                HVLogUtils.e(TAG, "onRemoteConfigFetchDone(): exception = [" + Utils.getErrorMessage(e) + "]", e);
                StringBuilder sb = new StringBuilder();
                sb.append("start() livenessHeaders :- JSON Exception :");
                sb.append(Utils.getErrorMessage(e));
            }
        }
        addTextureFragment();
    }

    public void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr) {
        HVLogUtils.d(TAG, "onRequestPermissionsResult() called with: requestCode = [" + i + "], permissions = [" + strArr + "], grantResults = [" + iArr + "]");
        final PermissionManager.StatusArray status = this.permissionManager.getStatus(this, new ArrayList(Arrays.asList("android.permission.CAMERA")));
        this.isCheckingForPerms = false;
        if (status.denied.isEmpty()) {
            if (SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() && SDKInternalConfig.getInstance().getAnalyticsTrackerService() != null) {
                SDKInternalConfig.getInstance().getAnalyticsTrackerService().logCameraPermissionsGranted(this.permissionTimingUtils.getTimeDifferenceLong().longValue());
            }
            startFaceCapture();
        } else {
            showCameraPermissionBS(TextConfigUtils.getText(this.faceConfig.getCustomUIStrings(), "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_CAMERA_PERMISSION_TITLE), TextConfigUtils.getText(this.faceConfig.getCustomUIStrings(), "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_CAMERA_PERMISSION_DESC), TextConfigUtils.getText(this.faceConfig.getCustomUIStrings(), "", CustomTextStringConst.FaceCaptureTextConfigs.TEXT_CONFIG_FACE_CAMERA_PERMISSION_BUTTON), new PermDialogCallback() {
                @Override
                public void onActionClick() {
                    if (androidx.core.app.b.z(HVFaceActivity.this, "android.permission.CAMERA")) {
                        HVFaceActivity.this.checkForPermissions();
                        return;
                    }
                    HVFaceActivity.this.startActivity(new Intent("android.settings.APPLICATION_DETAILS_SETTINGS", Uri.parse("package:" + HVFaceActivity.this.getApplicationContext().getPackageName())));
                }

                @Override
                public void onCancel() {
                    String join = TextUtils.join(",", status.denied);
                    HVFaceActivity.this.sendInsufficientPermissions("Following Permissions not granted by user: " + join);
                    HVError hVError = new HVError(4, "Following Permissions not granted by user: " + join);
                    if (SDKInternalConfig.getInstance().isShouldLogAnalyticsForThisUser() && SDKInternalConfig.getInstance().getAnalyticsTrackerService() != null) {
                        SDKInternalConfig.getInstance().getAnalyticsTrackerService().logCameraPermissionsRejected(hVError, HVFaceActivity.this.permissionTimingUtils.getTimeDifferenceLong().longValue());
                    }
                    HVFaceActivity.this.finish();
                }
            });
        }
        super/*androidx.fragment.app.FragmentActivity*/.onRequestPermissionsResult(i, strArr, iArr);
    }

    @Override
    public void onResume() {
        super.onResume();
        HVLogUtils.d(TAG, "onResume() called");
    }

    public void onSaveInstanceState(Bundle bundle) {
        super/*androidx.activity.ComponentActivity*/.onSaveInstanceState(bundle);
    }

    public void onStart() {
        super.onStart();
        HVLogUtils.d(TAG, "onStart() called");
        if (this.isCheckingForPerms || this.isFromRetake) {
            this.isFromRetake = false;
        } else {
            checkForPermissions();
        }
    }

    @Override
    public boolean onSupportNavigateUp() {
        return super.onSupportNavigateUp();
    }

    public void setShouldAllowActivityClose(boolean z) {
        this.shouldAllowActivityClose = z;
    }

    @Override
    public boolean shouldAllowActivityClose() {
        return this.shouldAllowActivityClose;
    }

    @Override
    public boolean shouldShowCloseAlert() {
        boolean z = !this.faceConfig.isShouldShowInstructionPage() && this.faceConfig.shouldShowCloseAlert();
        HVLogUtils.d(TAG, "shouldShowCloseAlert() returned: " + z);
        return z;
    }

    @Override
    public void showCameraPermissionBS(Spanned spanned, Spanned spanned2, Spanned spanned3, PermDialogCallback permDialogCallback) {
        super.showCameraPermissionBS(spanned, spanned2, spanned3, permDialogCallback);
    }

    public void startFaceCapture() {
        HVLogUtils.d(TAG, "startFaceCapture() called");
        lambda$checkAndWaitForRemoteConfig$0();
    }

    public void startFaceInstruction() {
        HVLogUtils.d(TAG, "startFaceInstruction() called");
        try {
            Intent intent = new Intent((Context) this, (Class<?>) HVFaceInstructionActivity.class);
            if (this.faceConfig.getCustomUIStrings() != null) {
                intent.putExtra("customUIStrings", this.faceConfig.getCustomUIStrings().toString());
            }
            intent.putExtra("shouldUseBackCam", this.faceConfig.getShouldUseBackCamera());
            startActivityForResult(intent, INSTRUCTIONS_REQUEST_CODE);
        } catch (Exception | NoClassDefFoundError e) {
            HVLogUtils.e(TAG, "startFaceInstruction(): exception = [" + Utils.getErrorMessage(e) + "]", e);
            Utils.getErrorMessage(e);
            if (SDKInternalConfig.getInstance().getErrorMonitoringService() != null) {
                SDKInternalConfig.getInstance().getErrorMonitoringService().sendErrorMessage(e);
            }
            HVBaseActivity.callCompletionHandler(CallbackProvider.get().injectCallback(), new HVError(31, getResources().getString(R.string.instructions_error)), null);
            finish();
        }
    }

    @Override
    public Context updateBaseContextLocale(Context context) {
        return super.updateBaseContextLocale(context);
    }
}