diff --git a/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt b/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt index 2bc63e2bc..98cc7be96 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt @@ -5,10 +5,13 @@ package org.mozilla.fenix.settings import android.widget.RadioButton +import androidx.annotation.StringRes import androidx.appcompat.content.res.AppCompatResources import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat import mozilla.components.feature.sitepermissions.SitePermissions import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelative +import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.theme.ThemeManager fun SitePermissions.toggle(featurePhone: PhoneFeature): SitePermissions { @@ -60,3 +63,10 @@ inline fun Preference.setOnPreferenceChangeListener( (newValue as? T)?.let { onPreferenceChangeListener(preference, it) } ?: false } } + +/** + * Find a preference with the corresponding key and throw if it does not exist. + * @param preferenceId Resource ID from preference_keys + */ +fun PreferenceFragmentCompat.requirePreference(@StringRes preferenceId: Int) = + requireNotNull(findPreference(getPreferenceKey(preferenceId)))