hide UP settings when default push server is empty

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/fragment/settings/MainSettingsFragment.java | 4 
src/main/res/xml/preferences_main.xml                                               | 5 
2 files changed, 6 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/fragment/settings/MainSettingsFragment.java 🔗

@@ -18,7 +18,8 @@ public class MainSettingsFragment extends PreferenceFragmentCompat {
         setPreferencesFromResource(R.xml.preferences_main, rootKey);
         final var about = findPreference("about");
         final var connection = findPreference("connection");
-        if (about == null || connection == null) {
+        final var up = findPreference("up");
+        if (about == null || connection == null || up == null) {
             throw new IllegalStateException(
                     "The preference resource file is missing some preferences");
         }
@@ -35,6 +36,7 @@ public class MainSettingsFragment extends PreferenceFragmentCompat {
         if (ConnectionSettingsFragment.hideChannelDiscovery()) {
             connection.setSummary(R.string.pref_connection_summary);
         }
+        up.setVisible(!Strings.isNullOrEmpty(getString(R.string.default_push_server)));
     }
 
     @Override

src/main/res/xml/preferences_main.xml 🔗

@@ -35,11 +35,12 @@
     <Preference
         android:icon="@drawable/ic_archive_24dp"
         android:key="backup"
-        app:fragment="eu.siacs.conversations.ui.fragment.settings.BackupSettingsFragment"
         android:summary="@string/pref_backup_summary"
-        android:title="@string/backup" />
+        android:title="@string/backup"
+        app:fragment="eu.siacs.conversations.ui.fragment.settings.BackupSettingsFragment" />
     <Preference
         android:icon="@drawable/ic_cloud_sync_24dp"
+        android:key="up"
         app:fragment="eu.siacs.conversations.ui.fragment.settings.UpSettingsFragment"
         app:summary="@string/unified_push_summary"
         app:title="@string/unified_push_distributor" />