From 654a78b56ec1d7040033e733d162b55c9c8124cd Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Fri, 22 Mar 2019 15:06:56 +0000 Subject: [PATCH] Do no crash when profile is deleted Catch the exception and finish the activity. Change-Id: I45deec32fd49119ab7943a941158bca82b63c432 Fix: 122823738 Test: manual --- .../password/ConfirmDeviceCredentialBaseActivity.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java index 56e6573d76..82883ca938 100644 --- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java +++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java @@ -21,6 +21,7 @@ import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricManager; import android.os.Bundle; import android.os.UserManager; +import android.util.Log; import android.view.MenuItem; import android.view.WindowManager; import android.widget.LinearLayout; @@ -35,6 +36,7 @@ import com.android.settings.Utils; public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivity { private static final String STATE_IS_KEYGUARD_LOCKED = "STATE_IS_KEYGUARD_LOCKED"; + private static final String TAG = "ConfirmDeviceCredentialBaseActivity"; enum ConfirmCredentialTheme { NORMAL, @@ -56,8 +58,15 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi @Override protected void onCreate(Bundle savedState) { - int credentialOwnerUserId = Utils.getCredentialOwnerUserId(this, - Utils.getUserIdFromBundle(this, getIntent().getExtras(), isInternalActivity())); + final int credentialOwnerUserId; + try { + credentialOwnerUserId = Utils.getCredentialOwnerUserId(this, + Utils.getUserIdFromBundle(this, getIntent().getExtras(), isInternalActivity())); + } catch (SecurityException e) { + Log.e(TAG, "Invalid user Id supplied", e); + finish(); + return; + } if (UserManager.get(this).isManagedProfile(credentialOwnerUserId)) { setTheme(R.style.Theme_ConfirmDeviceCredentialsWork); mConfirmCredentialTheme = ConfirmCredentialTheme.WORK; -- 2.11.0