The Android developer Settings guide is the best place to start before contributing to Chromium for Android's settings.
Many common utility functions that are useful for developing settings screens in Chromium for Android can be found in //components/browser_ui/settings/android
.
The widget
subdirectory contains a number of extensions of AndroidX Preference classes that provide Chromium-specific behavior (like Managed preferences) or common Chromium UI components (like buttons).
The base Preference classes included in the AndroidX Preference library can also be used directly in Chromium for Android Settings screens.
Historically, the term “preferences” is heavily overloaded in Chromium for Android. Some disambiguations are already conventional in Chromium for Android, but are not always applied consistently, so we document those usages explicitly below.
Because the screens shown above tend to be informally referred to as “Settings” (and are labeled as such in the application), going forward we will prefer the term “Settings” in code over “Preferences” to refer to classes and target names dealing with these UIs.
More information see go/clank-preferences-refactor.
“Preferences” Usage | Disambiguation |
---|---|
Activity name, as in Preferences.java | Use “Settings” i.e. SettingsActivity |
Preference fragment, extending PreferenceFragment | Suffix with ‘Settings’.Fragment suffix is still also acceptable i.e. ‘SettingsFragment’ |
Individual preferences, extending androidx.preference.Preference | No change, adhere to Android conventions |
Collection of individual preferences in XML, used with addPreferencesFromResource() | No change, adhere to Android conventions |
Android SharedPreferences, as in android.content.SharedPreferences | Always keep “Shared” prefix |
Chrome Native preferences, as in components/prefs/pref_service.h | Always refer to with the abbreviated “prefs”, adhering to Chrome conventions |