diff options
author | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2016-01-27 23:54:38 +0530 |
---|---|---|
committer | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2016-01-27 23:58:55 +0530 |
commit | 160362d2bfa6254748b84027db958005a16c92f2 (patch) | |
tree | 70895ede073df6264a8c6de3de770e4188a93b2a /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service | |
parent | 025d2c5d29d8d9730e5ef5a3b01b425ba6c99957 (diff) | |
download | open-keychain-160362d2bfa6254748b84027db958005a16c92f2.tar.gz open-keychain-160362d2bfa6254748b84027db958005a16c92f2.tar.bz2 open-keychain-160362d2bfa6254748b84027db958005a16c92f2.zip |
prevent rare KeyserverSyncAdapterService crash
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeyserverSyncAdapterService.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeyserverSyncAdapterService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeyserverSyncAdapterService.java index bacf56302..1c59782fc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeyserverSyncAdapterService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeyserverSyncAdapterService.java @@ -1,7 +1,6 @@ package org.sufficientlysecure.keychain.service; import android.accounts.Account; -import android.accounts.AccountManager; import android.app.AlarmManager; import android.app.Notification; import android.app.NotificationManager; @@ -28,6 +27,7 @@ import android.os.SystemClock; import android.support.v4.app.NotificationCompat; import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.KeychainApplication; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; import org.sufficientlysecure.keychain.operations.ImportOperation; @@ -510,8 +510,12 @@ public class KeyserverSyncAdapterService extends Service { } public static void enableKeyserverSync(Context context) { - AccountManager manager = AccountManager.get(context); - Account account = manager.getAccountsByType(Constants.ACCOUNT_TYPE)[0]; + Account account = KeychainApplication.createAccountIfNecessary(context); + + if (account == null) { + // account failed to be created for some reason, nothing we can do here + return; + } ContentResolver.setIsSyncable(account, Constants.PROVIDER_AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, Constants.PROVIDER_AUTHORITY, true); @@ -524,10 +528,11 @@ public class KeyserverSyncAdapterService extends Service { } private boolean isSyncEnabled() { - AccountManager manager = AccountManager.get(this); - Account account = manager.getAccountsByType(Constants.ACCOUNT_TYPE)[0]; + Account account = KeychainApplication.createAccountIfNecessary(this); - return ContentResolver.getSyncAutomatically(account, Constants.PROVIDER_AUTHORITY); + // if account is null, it could not be created for some reason, so sync cannot exist + return account != null + && ContentResolver.getSyncAutomatically(account, Constants.PROVIDER_AUTHORITY); } private void startServiceWithUpdateAll() { |