diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java index b7621b29d8ea39b0d7c5b477111b2408352e0e03..23b6157c97dca0a6abbccd26e41ea4cb128aff1e 100644 --- a/src/com/android/settings/accounts/AccountSyncSettings.java +++ b/src/com/android/settings/accounts/AccountSyncSettings.java @@ -386,16 +386,6 @@ 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); } } diff --git a/src/com/android/settings/accounts/MailAccountSyncHelper.java b/src/com/android/settings/accounts/MailAccountSyncHelper.java deleted file mode 100644 index ddb547b1fe390984ae6aa9dd0d316c5e996a8fd9..0000000000000000000000000000000000000000 --- a/src/com/android/settings/accounts/MailAccountSyncHelper.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright ECORP SAS 2022 - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.android.settings.accounts; - -import android.annotation.TargetApi; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -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; - - public void accountLoggedIn(Context applicationContext) { - if (applicationContext == null) { - return; - } - Intent intent = getIntent(); - intent.setAction(ACTION_PREFIX + "create"); - applicationContext.sendBroadcast(intent); - } - - public void accountLoggedOut(Context applicationContext, String email) { - 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; - } - final Intent intent = getIntent(); - intent.setAction(ACTION_PREFIX + action); - intent.putExtra(ACCOUNT, email); - applicationContext.sendBroadcast(intent); - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) - private Intent getIntent() { - Intent intent = new Intent(); - intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); - intent.setComponent(new ComponentName(MAIL_PACKAGE, MAIL_RECEIVER_CLASS)); - return intent; - } - - - public static MailAccountSyncHelper getInstance() { - if (instance == null) { - synchronized (MailAccountSyncHelper.class) { - if (instance == null) { - instance = new MailAccountSyncHelper(); - } - } - } - return instance; - } - - private MailAccountSyncHelper() { - } -} diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java index 66e6c0719be3b76ac535c6d9377726b5b433c168..2ce220619072b0dccf7f148e3dd49c4579b1ca17 100644 --- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java +++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java @@ -159,10 +159,7 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl @Override public void onClick(DialogInterface dialog, int which) { Activity activity = getTargetFragment().getActivity(); - AccountManager accountManager = AccountManager.get(activity); - String email = accountManager.getUserData(mAccount, "email_address"); - - accountManager.removeAccountAsUser(mAccount, activity, + AccountManager.get(activity).removeAccountAsUser(mAccount, activity, future -> { final Activity targetActivity = getTargetFragment().getActivity(); if (targetActivity == null || targetActivity.isFinishing()) { @@ -184,7 +181,6 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl } Log.i(TAG, "failed: " + failed); if (!failed) { - MailAccountSyncHelper.getInstance().accountLoggedOut(targetActivity.getApplicationContext(), email); targetActivity.finish(); } }, null, mUserHandle);