OSDN Git Service

Do no crash when profile is deleted
authorRubin Xu <rubinxu@google.com>
Fri, 22 Mar 2019 15:06:56 +0000 (15:06 +0000)
committerRubin Xu <rubinxu@google.com>
Fri, 22 Mar 2019 15:06:56 +0000 (15:06 +0000)
Catch the exception and finish the activity.

Change-Id: I45deec32fd49119ab7943a941158bca82b63c432
Fix: 122823738
Test: manual

src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java

index 56e6573..82883ca 100644 (file)
@@ -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;