Perform master clear via Intent broadcast, rather than using ICheckinService.
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index d33e1e8..4cf0546 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -60,35 +60,12 @@
*/
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 1ef137d..f646d9d 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -32,8 +32,6 @@
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 @@
}
} 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