Add requirePreference helper
parent
0eb2f328dc
commit
3e03439259
|
@ -5,10 +5,13 @@
|
||||||
package org.mozilla.fenix.settings
|
package org.mozilla.fenix.settings
|
||||||
|
|
||||||
import android.widget.RadioButton
|
import android.widget.RadioButton
|
||||||
|
import androidx.annotation.StringRes
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import mozilla.components.feature.sitepermissions.SitePermissions
|
import mozilla.components.feature.sitepermissions.SitePermissions
|
||||||
import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelative
|
import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelative
|
||||||
|
import org.mozilla.fenix.ext.getPreferenceKey
|
||||||
import org.mozilla.fenix.theme.ThemeManager
|
import org.mozilla.fenix.theme.ThemeManager
|
||||||
|
|
||||||
fun SitePermissions.toggle(featurePhone: PhoneFeature): SitePermissions {
|
fun SitePermissions.toggle(featurePhone: PhoneFeature): SitePermissions {
|
||||||
|
@ -60,3 +63,10 @@ inline fun <reified T> Preference.setOnPreferenceChangeListener(
|
||||||
(newValue as? T)?.let { onPreferenceChangeListener(preference, it) } ?: false
|
(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 <T : Preference> PreferenceFragmentCompat.requirePreference(@StringRes preferenceId: Int) =
|
||||||
|
requireNotNull(findPreference<T>(getPreferenceKey(preferenceId)))
|
||||||
|
|
Loading…
Reference in New Issue