summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYu Ping Hu <yph@google.com>2013-05-23 10:40:05 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-23 10:40:05 -0700
commit7283aea81c519521a51b783b7dd26da498745daa (patch)
tree4430fbccb5a0c4ba94f759a8bb5fe0bd43a27809 /src
parentbb32ae60aa6222d4940aaf748416084a84a8b6d8 (diff)
parent8b4f04a5ab48ab76a131137516edb8abab63b6d2 (diff)
downloadandroid_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.java19
-rw-r--r--src/com/android/email/activity/setup/AccountSecurity.java2
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();
}