am 214c6c6c
: Fix remote wipe with mobile sync server
Merge commit '214c6c6c8173cf90a3e45615a6896a48dc643e68' into gingerbread-plus-aosp * commit '214c6c6c8173cf90a3e45615a6896a48dc643e68': Fix remote wipe with mobile sync server
This commit is contained in:
commit
1e64175c7a
@ -1282,17 +1282,28 @@ public class EasSyncService extends AbstractSyncService {
|
||||
}
|
||||
if (pp.getRemoteWipe()) {
|
||||
// We've gotten a remote wipe command
|
||||
SyncManager.alwaysLog("!!! Remote wipe request received");
|
||||
// Start by setting the account to security hold
|
||||
sp.setAccountHoldFlag(mAccount, true);
|
||||
// Force a stop to any running syncs for this account (except this one)
|
||||
SyncManager.stopNonAccountMailboxSyncsForAccount(mAccount.mId);
|
||||
|
||||
// If we're not the admin, we can't do the wipe, so just return
|
||||
if (!sp.isActiveAdmin()) return false;
|
||||
if (!sp.isActiveAdmin()) {
|
||||
SyncManager.alwaysLog("!!! Not device admin; can't wipe");
|
||||
return false;
|
||||
}
|
||||
// First, we've got to acknowledge it, but wrap the wipe in try/catch so that
|
||||
// we wipe the device regardless of any errors in acknowledgment
|
||||
try {
|
||||
SyncManager.alwaysLog("!!! Acknowledging remote wipe to server");
|
||||
acknowledgeRemoteWipe(pp.getPolicyKey());
|
||||
} catch (Exception e) {
|
||||
// Because remote wipe is such a high priority task, we don't want to
|
||||
// circumvent it if there's an exception in acknowledgment
|
||||
}
|
||||
// Then, tell SecurityPolicy to wipe the device
|
||||
SyncManager.alwaysLog("!!! Executing remote wipe");
|
||||
sp.remoteWipe();
|
||||
return false;
|
||||
} else if (sp.isActive(ps)) {
|
||||
|
@ -1232,7 +1232,7 @@ public class SyncManager extends Service implements Runnable {
|
||||
*
|
||||
* @param acctId
|
||||
*/
|
||||
static public void folderListReloaded(long acctId) {
|
||||
static public void stopNonAccountMailboxSyncsForAccount(long acctId) {
|
||||
SyncManager syncManager = INSTANCE;
|
||||
if (syncManager != null) {
|
||||
syncManager.stopAccountSyncs(acctId, false);
|
||||
|
@ -114,7 +114,7 @@ public class FolderSyncParser extends AbstractSyncParser {
|
||||
mContentResolver.delete(Mailbox.CONTENT_URI, ALL_BUT_ACCOUNT_MAILBOX,
|
||||
new String[] {Long.toString(mAccountId)});
|
||||
// Stop existing syncs and reconstruct _main
|
||||
SyncManager.folderListReloaded(mAccountId);
|
||||
SyncManager.stopNonAccountMailboxSyncsForAccount(mAccountId);
|
||||
res = true;
|
||||
resetFolders = true;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user