diff options
| author | Yu Ping Hu <yph@google.com> | 2013-05-23 10:40:05 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2013-05-23 10:40:05 -0700 |
| commit | 7283aea81c519521a51b783b7dd26da498745daa (patch) | |
| tree | 4430fbccb5a0c4ba94f759a8bb5fe0bd43a27809 /src | |
| parent | bb32ae60aa6222d4940aaf748416084a84a8b6d8 (diff) | |
| parent | 8b4f04a5ab48ab76a131137516edb8abab63b6d2 (diff) | |
| download | android_packages_apps_Email-7283aea81c519521a51b783b7dd26da498745daa.tar.gz android_packages_apps_Email-7283aea81c519521a51b783b7dd26da498745daa.tar.bz2 android_packages_apps_Email-7283aea81c519521a51b783b7dd26da498745daa.zip | |
am 8b4f04a5: Merge "Auto-advance policy accept by triggering syncs." into jb-ub-mail-ur9
* commit '8b4f04a5ab48ab76a131137516edb8abab63b6d2':
Auto-advance policy accept by triggering syncs.
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/email/SecurityPolicy.java | 19 | ||||
| -rw-r--r-- | src/com/android/email/activity/setup/AccountSecurity.java | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/com/android/email/SecurityPolicy.java b/src/com/android/email/SecurityPolicy.java index 419ce1a2c..875eabb4d 100644 --- a/src/com/android/email/SecurityPolicy.java +++ b/src/com/android/email/SecurityPolicy.java @@ -29,11 +29,13 @@ import android.content.Intent; import android.content.OperationApplicationException; import android.database.Cursor; import android.net.Uri; +import android.os.Bundle; import android.os.RemoteException; import android.util.Log; import com.android.email.provider.EmailProvider; import com.android.email.service.EmailBroadcastProcessorService; +import com.android.email.service.EmailServiceUtils; import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; @@ -557,6 +559,7 @@ public class SecurityPolicy { try { context.getContentResolver().applyBatch(EmailContent.AUTHORITY, ops); account.refresh(context); + syncAccount(context, account); } catch (RemoteException e) { // This is fatal to a remote process throw new IllegalStateException("Exception setting account policy."); @@ -565,6 +568,22 @@ public class SecurityPolicy { } } + private static void syncAccount(final Context context, final Account account) { + final EmailServiceUtils.EmailServiceInfo info = + EmailServiceUtils.getServiceInfo(context, account.getProtocol(context)); + final android.accounts.Account amAccount = + new android.accounts.Account(account.mEmailAddress, info.accountType); + final Bundle extras = new Bundle(3); + extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); + extras.putBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, true); + extras.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true); + ContentResolver.requestSync(amAccount, EmailContent.AUTHORITY, extras); + } + + public void syncAccount(final Account account) { + syncAccount(mContext, account); + } + public void setAccountPolicy(long accountId, Policy policy, String securityKey) { Account account = Account.restoreAccountWithId(mContext, accountId); Policy oldPolicy = null; diff --git a/src/com/android/email/activity/setup/AccountSecurity.java b/src/com/android/email/activity/setup/AccountSecurity.java index 8b4e20e50..954afd20e 100644 --- a/src/com/android/email/activity/setup/AccountSecurity.java +++ b/src/com/android/email/activity/setup/AccountSecurity.java @@ -225,6 +225,7 @@ public class AccountSecurity extends Activity { Log.d(TAG, "Security active; clear holds"); } Account.clearSecurityHoldOnAllAccounts(this); + security.syncAccount(account); security.clearNotification(); finish(); return; @@ -282,6 +283,7 @@ public class AccountSecurity extends Activity { Log.d(TAG, "Policies enforced; clear holds"); } Account.clearSecurityHoldOnAllAccounts(this); + security.syncAccount(account); security.clearNotification(); finish(); } |
