diff --git a/src/main/java/com/b44t/messenger/DcAccounts.java b/src/main/java/com/b44t/messenger/DcAccounts.java index 630932408..782979921 100644 --- a/src/main/java/com/b44t/messenger/DcAccounts.java +++ b/src/main/java/com/b44t/messenger/DcAccounts.java @@ -42,4 +42,14 @@ public class DcAccounts { private native long getJsonrpcInstanceCPtr (); private native long getAccountCPtr (int accountId); private native long getSelectedAccountCPtr (); + + public boolean isAllChatmail() { + for (int accountId : getAll()) { + DcContext dcContext = getAccount(accountId); + if (!dcContext.isChatmail()) { + return false; + } + } + return true; + } } diff --git a/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java b/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java index a6bcab74c..611dc8a6b 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java +++ b/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java @@ -109,18 +109,9 @@ public class DozeReminder { } } - private static boolean isAllChatmail() { - for (int accountId : ApplicationContext.dcAccounts.getAll()) { - DcContext context = ApplicationContext.dcAccounts.getAccount(accountId); - if (!context.isChatmail()) { - return false; - } - } - return true; - } - private static boolean isPushAvailableAndSufficient() { - return isAllChatmail() && FcmReceiveService.getToken() != null; + return ApplicationContext.dcAccounts.isAllChatmail() + && FcmReceiveService.getToken() != null; } public static void maybeAskDirectly(Context context) { diff --git a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java index 8096857e5..0b625d274 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java @@ -214,36 +214,18 @@ public class Prefs { return result==null? null : Uri.parse(result); } - private static boolean isAllChatmail(Context context) { - DcAccounts dcAccounts = DcHelper.getAccounts(context); - for (int accountId : dcAccounts.getAll()) { - DcContext dcContext = dcAccounts.getAccount(accountId); - if (!dcContext.isChatmail()) { - return false; - } - } - return true; - } - public static boolean reliableService(Context context) { final String key = "pref_reliable_service"; - boolean value = false; - try { - value = getBooleanPreference(context, key, false); - } catch(Exception e) {} - boolean value2; - try { - value2 = getBooleanPreference(context, key, !value); - } catch(Exception e) { - value2 = !value; + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + if (prefs.contains(key)) { + try { + return prefs.getBoolean(key, true); + } catch(Exception e) {} } // if the key was unset, then calculate default value - if (value != value2) { - value = FcmReceiveService.getToken() == null || !isAllChatmail(context); - } - - return value; + return FcmReceiveService.getToken() == null + || !DcHelper.getAccounts(context).isAllChatmail(); } // vibrate