From 3352d10f0733eb8b8715ce89346378444fbfe3b2 Mon Sep 17 00:00:00 2001 From: Dan Egnor Date: Wed, 10 Feb 2010 19:29:47 -0800 Subject: [PATCH] Perform master clear via Intent broadcast, rather than using ICheckinService. --- src/com/android/settings/MasterClear.java | 27 ++----------------- .../android/settings/SecuritySettings.java | 25 +++-------------- 2 files changed, 5 insertions(+), 47 deletions(-) diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java index d33e1e86754..4cf05466c1e 100644 --- a/src/com/android/settings/MasterClear.java +++ b/src/com/android/settings/MasterClear.java @@ -60,35 +60,12 @@ public class MasterClear extends Activity { */ private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() { public void onClick(View v) { - if (Utils.isMonkeyRunning()) { return; } - ICheckinService service = - ICheckinService.Stub.asInterface(ServiceManager.getService("checkin")); - if (service != null) { - try { - // This RPC should never return - service.masterClear(); - } catch (android.os.RemoteException e) { - // Intentionally blank - there's nothing we can do here - Log.w("MasterClear", "Unable to invoke ICheckinService.masterClear()"); - } - } else { - Log.w("MasterClear", "Unable to locate ICheckinService"); - } - - /* If we reach this point, the master clear didn't happen -- the - * service might have been unregistered with the ServiceManager, - * the RPC might have thrown an exception, or for some reason - * the implementation of masterClear() may have returned instead - * of resetting the device. - */ - new AlertDialog.Builder(MasterClear.this) - .setMessage(getText(R.string.master_clear_failed)) - .setPositiveButton(getText(android.R.string.ok), null) - .show(); + sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); + // Intent handling is asynchronous -- assume it will happen soon. } }; diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 1ef137d74e3..f646d9d0ee6 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -32,8 +32,6 @@ import android.content.Intent; import android.database.Cursor; import android.location.LocationManager; import android.os.Bundle; -import android.os.ICheckinService; -import android.os.ServiceManager; import android.os.SystemProperties; import android.preference.CheckBoxPreference; import android.preference.ListPreference; @@ -444,26 +442,9 @@ public class SecuritySettings extends PreferenceActivity { } } else { if (button == DialogInterface.BUTTON_POSITIVE) { - // Perform action - // Reboot and toggle Encrypted File Systems - ICheckinService service = - ICheckinService.Stub.asInterface(ServiceManager.getService("checkin")); - if (service != null) { - try { - // This RPC should never return - if (mWillEnableEncryptedFS) { - service.masterClearAndToggleEFS(true); - } else { - service.masterClearAndToggleEFS(false); - } - } catch (android.os.RemoteException e) { - // Intentionally blank - there's nothing we can do here - Log.w("SecuritySettings", - "Unable to invoke ICheckinService.masterClearAndToggleEFS()"); - } - } else { - Log.w("SecuritySettings", "Unable to locate ICheckinService"); - } + Intent intent = new Intent("android.intent.action.MASTER_CLEAR"); + intent.putExtra("enableEFS", mWillEnableEncryptedFS); + sendBroadcast(intent); updatePreferences(mState); } else if (button == DialogInterface.BUTTON_NEGATIVE) { // Cancel action