diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2016-02-06 14:17:49 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2016-02-06 14:17:49 +0100 |
commit | 2c7e5ab8df69f461758c112f0e0e8d44f479b7e8 (patch) | |
tree | 75dda98111cc15eef8fdca548bc518255f0cd705 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java | |
parent | cbf6f15d91f53f460584d959fcd16440c9309be1 (diff) | |
parent | d2cf56f42ed0b37f9a51418c0eefdc951abe10e5 (diff) | |
download | open-keychain-2c7e5ab8df69f461758c112f0e0e8d44f479b7e8.tar.gz open-keychain-2c7e5ab8df69f461758c112f0e0e8d44f479b7e8.tar.bz2 open-keychain-2c7e5ab8df69f461758c112f0e0e8d44f479b7e8.zip |
Merge pull request #1713 from open-keychain/unlink-contact
Deletes linked OpenKeychain contacts if sync is disabled
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java index 2985c2030..4107e3167 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java @@ -18,7 +18,6 @@ package org.sufficientlysecure.keychain.service; import android.accounts.Account; -import android.accounts.AccountManager; import android.app.PendingIntent; import android.app.Service; import android.content.AbstractThreadedSyncAdapter; @@ -35,6 +34,7 @@ import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationManagerCompat; import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.KeychainApplication; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.SettingsActivity; import org.sufficientlysecure.keychain.util.ContactHelper; @@ -151,10 +151,25 @@ public class ContactSyncAdapterService extends Service { } public static void enableContactsSync(Context context) { - AccountManager manager = AccountManager.get(context); - Account account = manager.getAccountsByType(Constants.ACCOUNT_TYPE)[0]; + Account account = KeychainApplication.createAccountIfNecessary(context); + + if (account == null) { + // nothing we can do + return; + } ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true); } + + public static void deleteIfSyncDisabled(Context context) { + Account account = KeychainApplication.createAccountIfNecessary(context); + if (account == null) { + return; + } + // if user has disabled automatic sync, delete linked OpenKeychain contacts + if(!ContentResolver.getSyncAutomatically(account, ContactsContract.AUTHORITY)) { + new ContactHelper(context).deleteAllContacts(); + } + } } |