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 if (about == null || connection == null) {
22 throw new IllegalStateException(
23 "The preference resource file is missing some preferences");
24 }
25 about.setTitle(getString(R.string.title_activity_about_x, BuildConfig.APP_NAME));
26 about.setSummary(
27 String.format(
28 "%s %s %s @ %s · %s · %s",
29 BuildConfig.APP_NAME,
30 BuildConfig.VERSION_NAME,
31 im.conversations.webrtc.BuildConfig.WEBRTC_VERSION,
32 Strings.nullToEmpty(Build.MANUFACTURER),
33 Strings.nullToEmpty(Build.DEVICE),
34 Strings.nullToEmpty(Build.VERSION.RELEASE)));
35 about.setCopyingEnabled(true);
36 if (ConnectionSettingsFragment.hideChannelDiscovery()) {
37 connection.setSummary(R.string.pref_connection_summary);
38 }
39 findPreference("extensions").setOnPreferenceClickListener((p) -> {
40 getFragmentManager().beginTransaction()
41 .replace(R.id.fragment_container, new com.cheogram.android.ExtensionSettingsFragment())
42 .addToBackStack(null)
43 .commit();
44 return true;
45 });
46 }
47
48 @Override
49 public void onStart() {
50 super.onStart();
51 requireActivity().setTitle(R.string.title_activity_settings);
52 }
53}