From cbb934e9ef2adaedaa2367d46e45f15681f30459 Mon Sep 17 00:00:00 2001 From: bjoern Date: Wed, 15 May 2024 15:10:19 +0200 Subject: [PATCH] hide IMAP folder options on chatmail (#3050) * remove unused getConfig() variants * hide IMAP folder options if is_chatmail == 1 * hide e2ee, show-system-contacts as well * ignore system-contacts settings on chatmail (in case it was enabled before) --- src/com/b44t/messenger/DcContext.java | 6 ++++-- .../securesms/ContactSelectionListFragment.java | 2 +- .../preferences/AdvancedPreferenceFragment.java | 9 +++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/com/b44t/messenger/DcContext.java b/src/com/b44t/messenger/DcContext.java index 601649ae0..1a7a4ba06 100644 --- a/src/com/b44t/messenger/DcContext.java +++ b/src/com/b44t/messenger/DcContext.java @@ -136,8 +136,6 @@ public class DcContext { public native boolean setConfigFromQr (String qr); public native String getConfig (String key); public int getConfigInt (String key) { try{return Integer.parseInt(getConfig(key));} catch(Exception e) {} return 0; } - @Deprecated public String getConfig (String key, String def) { return getConfig(key); } - @Deprecated public int getConfigInt (String key, int def) { return getConfigInt(key); } public native String getInfo (); public native int getConnectivity (); public native String getConnectivityHtml (); @@ -232,6 +230,10 @@ public class DcContext { return ret.trim(); } + public boolean isChatmail() { + return getConfigInt("is_chatmail") == 1; + } + /** * @return true if at least one chat has location streaming enabled */ diff --git a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java index bfc79e99d..cc0ccec9e 100644 --- a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -116,7 +116,7 @@ public class ContactSelectionListFragment extends Fragment public void onStart() { super.onStart(); this.getLoaderManager().initLoader(0, null, this); - if (dcContext.getConfigInt("ui.android.show_system_contacts") != 0) { + if (dcContext.getConfigInt("ui.android.show_system_contacts") != 0 && !dcContext.isChatmail()) { Permissions.with(this) .request(Manifest.permission.READ_CONTACTS) .ifNecessary() diff --git a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index 531329e08..db4360650 100644 --- a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -207,6 +207,15 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment } return true; })); + + if (dcContext.isChatmail()) { + preferE2eeCheckbox.setVisible(false); + showSystemContacts.setVisible(false); + sentboxWatchCheckbox.setVisible(false); + bccSelfCheckbox.setVisible(false); + mvboxMoveCheckbox.setVisible(false); + onlyFetchMvboxCheckbox.setVisible(false); + } } @Override