正在查看: Oolka v2.4.42 应用的 HVFaceActivity.java JAVA 源代码文件
本页面展示 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);
}
}