Loading src/com/android/settings/accounts/AccountSyncSettings.java +10 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,16 @@ public class AccountSyncSettings extends AccountPreferenceBase { extras); } else { ContentResolver.cancelSyncAsUser(account, authority, mUserHandle.getIdentifier()); cancelMailSync(account, authority); } } private void cancelMailSync(Account account, String authority) { if (MailAccountSyncHelper.MAIL_SYNC_AUTHORITY.equals(authority)) { final Context context = getPrefContext().getApplicationContext(); final AccountManager accountManager = AccountManager.get(context); final String email = accountManager.getUserData(account, "email_address"); MailAccountSyncHelper.getInstance().disableSync(context, email); } } Loading src/com/android/settings/accounts/MailAccountSyncHelper.java +15 −4 Original line number Diff line number Diff line Loading @@ -24,9 +24,12 @@ import android.os.Build; public class MailAccountSyncHelper { public static final String MAIL_SYNC_AUTHORITY = "foundation.e.mail.provider.AppContentProvider"; private static final String MAIL_PACKAGE = "foundation.e.mail"; private static final String MAIL_RECEIVER_CLASS = "com.fsck.k9.account.AccountSyncReceiver"; private static final String ACTION_PREFIX = "foundation.e.accountmanager.account."; private static final String ACCOUNT = "account"; private static MailAccountSyncHelper instance = null; Loading @@ -40,12 +43,20 @@ public class MailAccountSyncHelper { } public void accountLoggedOut(Context applicationContext, String email) { if (applicationContext == null || email == null || !email.contains("@")) { sendBroadCast(applicationContext, email, "remove"); } public void disableSync(Context applicationContext, String email) { sendBroadCast(applicationContext, email, "disablesync"); } private void sendBroadCast(Context applicationContext, String email, String action) { if (applicationContext == null || email == null || !email.contains("@") || action == null) { return; } Intent intent = getIntent(); intent.setAction(ACTION_PREFIX + "remove"); intent.putExtra("account", email); final Intent intent = getIntent(); intent.setAction(ACTION_PREFIX + action); intent.putExtra(ACCOUNT, email); applicationContext.sendBroadcast(intent); } Loading Loading
src/com/android/settings/accounts/AccountSyncSettings.java +10 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,16 @@ public class AccountSyncSettings extends AccountPreferenceBase { extras); } else { ContentResolver.cancelSyncAsUser(account, authority, mUserHandle.getIdentifier()); cancelMailSync(account, authority); } } private void cancelMailSync(Account account, String authority) { if (MailAccountSyncHelper.MAIL_SYNC_AUTHORITY.equals(authority)) { final Context context = getPrefContext().getApplicationContext(); final AccountManager accountManager = AccountManager.get(context); final String email = accountManager.getUserData(account, "email_address"); MailAccountSyncHelper.getInstance().disableSync(context, email); } } Loading
src/com/android/settings/accounts/MailAccountSyncHelper.java +15 −4 Original line number Diff line number Diff line Loading @@ -24,9 +24,12 @@ import android.os.Build; public class MailAccountSyncHelper { public static final String MAIL_SYNC_AUTHORITY = "foundation.e.mail.provider.AppContentProvider"; private static final String MAIL_PACKAGE = "foundation.e.mail"; private static final String MAIL_RECEIVER_CLASS = "com.fsck.k9.account.AccountSyncReceiver"; private static final String ACTION_PREFIX = "foundation.e.accountmanager.account."; private static final String ACCOUNT = "account"; private static MailAccountSyncHelper instance = null; Loading @@ -40,12 +43,20 @@ public class MailAccountSyncHelper { } public void accountLoggedOut(Context applicationContext, String email) { if (applicationContext == null || email == null || !email.contains("@")) { sendBroadCast(applicationContext, email, "remove"); } public void disableSync(Context applicationContext, String email) { sendBroadCast(applicationContext, email, "disablesync"); } private void sendBroadCast(Context applicationContext, String email, String action) { if (applicationContext == null || email == null || !email.contains("@") || action == null) { return; } Intent intent = getIntent(); intent.setAction(ACTION_PREFIX + "remove"); intent.putExtra("account", email); final Intent intent = getIntent(); intent.setAction(ACTION_PREFIX + action); intent.putExtra(ACCOUNT, email); applicationContext.sendBroadcast(intent); } Loading