From 3e04288198bc9bf8f97b9f30e0dbcd9bbb27d837 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 22 Feb 2010 12:51:42 -0800 Subject: [PATCH] Fix issue #2396296: An admin is already set --- src/com/android/settings/DeviceAdminAdd.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java index 126af6bdb25..26ad70c8d9b 100644 --- a/src/com/android/settings/DeviceAdminAdd.java +++ b/src/com/android/settings/DeviceAdminAdd.java @@ -137,8 +137,18 @@ public class DeviceAdminAdd extends Activity { mActionButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (mAdding) { - mDPM.setActiveAdmin(mDeviceAdmin.getComponent()); - setResult(Activity.RESULT_OK); + try { + mDPM.setActiveAdmin(mDeviceAdmin.getComponent()); + setResult(Activity.RESULT_OK); + } catch (RuntimeException e) { + // Something bad happened... could be that it was + // already set, though. + Log.w(TAG, "Exception trying to activate admin " + + mDeviceAdmin.getComponent(), e); + if (mDPM.isAdminActive(mDeviceAdmin.getComponent())) { + setResult(Activity.RESULT_OK); + } + } finish(); } else { mDPM.getRemoveWarning(mDeviceAdmin.getComponent(),