From 8ab2491645fb34677ee4bdbb9b8302f242419844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 8 Sep 2014 11:30:31 +0200 Subject: Make preferences safe across multiple processes --- .../java/org/sufficientlysecure/keychain/helper/Preferences.java | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure') 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); -- cgit v1.2.3