aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-08 11:30:31 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-08 11:30:31 +0200
commit8ab2491645fb34677ee4bdbb9b8302f242419844 (patch)
treeeafc0ac41a084d639bae9bd0284959ccd2a2b52f
parentf4592c8b950f263e53edf55b86f13a1be4913704 (diff)
downloadopen-keychain-8ab2491645fb34677ee4bdbb9b8302f242419844.tar.gz
open-keychain-8ab2491645fb34677ee4bdbb9b8302f242419844.tar.bz2
open-keychain-8ab2491645fb34677ee4bdbb9b8302f242419844.zip
Make preferences safe across multiple processes
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java
index e9ae5f99f..aa4621893 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java
@@ -47,11 +47,18 @@ public class Preferences {
public static synchronized Preferences getPreferences(Context context, boolean forceNew) {
if (sPreferences == null || forceNew) {
sPreferences = new Preferences(context);
+ } else {
+ // to make it safe for multiple processes, call getSharedPreferences everytime
+ sPreferences.updateSharedPreferences(context);
}
return sPreferences;
}
private Preferences(Context context) {
+ updateSharedPreferences(context);
+ }
+
+ public void updateSharedPreferences(Context context) {
// multi-process preferences
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mSharedPreferences = context.getSharedPreferences("APG.main", Context.MODE_MULTI_PROCESS);