1package eu.siacs.conversations.ui.fragment.settings;
 2
 3import android.os.Build;
 4import android.os.Bundle;
 5
 6import androidx.annotation.Nullable;
 7import androidx.preference.PreferenceFragmentCompat;
 8
 9import com.google.common.base.Strings;
10
11import eu.siacs.conversations.BuildConfig;
12import eu.siacs.conversations.R;
13
14public class MainSettingsFragment extends PreferenceFragmentCompat {
15
16    @Override
17    public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
18        setPreferencesFromResource(R.xml.preferences_main, rootKey);
19        final var about = findPreference("about");
20        final var connection = findPreference("connection");
21        final var up = findPreference("up");
22        if (about == null || connection == null || up == null) {
23            throw new IllegalStateException(
24                    "The preference resource file is missing some preferences");
25        }
26        about.setTitle(getString(R.string.title_activity_about_x, BuildConfig.APP_NAME));
27        about.setSummary(
28                String.format(
29                        "%s %s %s @ %s · %s · %s",
30                        BuildConfig.APP_NAME,
31                        BuildConfig.VERSION_NAME,
32                        im.conversations.webrtc.BuildConfig.WEBRTC_VERSION,
33                        Strings.nullToEmpty(Build.MANUFACTURER),
34                        Strings.nullToEmpty(Build.DEVICE),
35                        Strings.nullToEmpty(Build.VERSION.RELEASE)));
36        about.setCopyingEnabled(true);
37        if (ConnectionSettingsFragment.hideChannelDiscovery()) {
38            connection.setSummary(R.string.pref_connection_summary);
39        }
40        findPreference("extensions").setOnPreferenceClickListener((p) -> {
41            getFragmentManager().beginTransaction()
42                .replace(R.id.fragment_container, new com.cheogram.android.ExtensionSettingsFragment())
43                .addToBackStack(null)
44                .commit();
45            return true;
46        });
47
48        up.setVisible(!Strings.isNullOrEmpty(getString(R.string.default_push_server)));
49    }
50
51    @Override
52    public void onStart() {
53        super.onStart();
54        requireActivity().setTitle(R.string.title_activity_settings);
55    }
56}