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}