1
0
Fork 0

Replace requireNotNull(findPreference())

master
Tiger Oakes 2020-06-15 11:04:36 -07:00 committed by Emily Kager
parent 3e03439259
commit 45ef88f6b9
4 changed files with 40 additions and 70 deletions

View File

@ -13,7 +13,6 @@ import androidx.preference.PreferenceFragmentCompat
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getPreferenceKey
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
@ -69,8 +68,7 @@ class CustomizationFragment : PreferenceFragmentCompat() {
} }
private fun bindLightTheme() { private fun bindLightTheme() {
val keyLightTheme = getPreferenceKey(R.string.pref_key_light_theme) radioLightTheme = requirePreference(R.string.pref_key_light_theme)
radioLightTheme = requireNotNull(findPreference(keyLightTheme))
radioLightTheme.onClickListener { radioLightTheme.onClickListener {
setNewTheme(AppCompatDelegate.MODE_NIGHT_NO) setNewTheme(AppCompatDelegate.MODE_NIGHT_NO)
} }
@ -79,16 +77,14 @@ class CustomizationFragment : PreferenceFragmentCompat() {
@SuppressLint("WrongConstant") @SuppressLint("WrongConstant")
// Suppressing erroneous lint warning about using MODE_NIGHT_AUTO_BATTERY, a likely library bug // Suppressing erroneous lint warning about using MODE_NIGHT_AUTO_BATTERY, a likely library bug
private fun bindAutoBatteryTheme() { private fun bindAutoBatteryTheme() {
val keyBatteryTheme = getPreferenceKey(R.string.pref_key_auto_battery_theme) radioAutoBatteryTheme = requirePreference(R.string.pref_key_auto_battery_theme)
radioAutoBatteryTheme = requireNotNull(findPreference(keyBatteryTheme))
radioAutoBatteryTheme.onClickListener { radioAutoBatteryTheme.onClickListener {
setNewTheme(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY) setNewTheme(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY)
} }
} }
private fun bindDarkTheme() { private fun bindDarkTheme() {
val keyDarkTheme = getPreferenceKey(R.string.pref_key_dark_theme) radioDarkTheme = requirePreference(R.string.pref_key_dark_theme)
radioDarkTheme = requireNotNull(findPreference(keyDarkTheme))
radioDarkTheme.onClickListener { radioDarkTheme.onClickListener {
requireContext().components.analytics.metrics.track( requireContext().components.analytics.metrics.track(
Event.DarkThemeSelected( Event.DarkThemeSelected(
@ -100,8 +96,7 @@ class CustomizationFragment : PreferenceFragmentCompat() {
} }
private fun bindFollowDeviceTheme() { private fun bindFollowDeviceTheme() {
val keyDeviceTheme = getPreferenceKey(R.string.pref_key_follow_device_theme) radioFollowDeviceTheme = requirePreference(R.string.pref_key_follow_device_theme)
radioFollowDeviceTheme = requireNotNull(findPreference(keyDeviceTheme))
if (SDK_INT >= Build.VERSION_CODES.P) { if (SDK_INT >= Build.VERSION_CODES.P) {
radioFollowDeviceTheme.onClickListener { radioFollowDeviceTheme.onClickListener {
setNewTheme(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) setNewTheme(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
@ -120,16 +115,14 @@ class CustomizationFragment : PreferenceFragmentCompat() {
} }
private fun setupToolbarCategory() { private fun setupToolbarCategory() {
val keyToolbarTop = getPreferenceKey(R.string.pref_key_toolbar_top) val topPreference = requirePreference<RadioButtonPreference>(R.string.pref_key_toolbar_top)
val topPreference = requireNotNull(findPreference<RadioButtonPreference>(keyToolbarTop))
topPreference.onClickListener { topPreference.onClickListener {
requireContext().components.analytics.metrics.track(Event.ToolbarPositionChanged( requireContext().components.analytics.metrics.track(Event.ToolbarPositionChanged(
Event.ToolbarPositionChanged.Position.TOP Event.ToolbarPositionChanged.Position.TOP
)) ))
} }
val keyToolbarBottom = getPreferenceKey(R.string.pref_key_toolbar_bottom) val bottomPreference = requirePreference<RadioButtonPreference>(R.string.pref_key_toolbar_top)
val bottomPreference = requireNotNull(findPreference<RadioButtonPreference>(keyToolbarBottom))
bottomPreference.onClickListener { bottomPreference.onClickListener {
requireContext().components.analytics.metrics.track(Event.ToolbarPositionChanged( requireContext().components.analytics.metrics.track(Event.ToolbarPositionChanged(
Event.ToolbarPositionChanged.Position.BOTTOM Event.ToolbarPositionChanged.Position.BOTTOM

View File

@ -16,7 +16,6 @@ import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getPreferenceKey
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.settings
@ -56,11 +55,10 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() {
showToolbar(getString(R.string.preference_enhanced_tracking_protection)) showToolbar(getString(R.string.preference_enhanced_tracking_protection))
// Tracking Protection Switch // Tracking Protection Switch
val trackingProtectionKey = getPreferenceKey(R.string.pref_key_tracking_protection) val preferenceTP = requirePreference<SwitchPreference>(R.string.pref_key_tracking_protection)
val preferenceTP = findPreference<SwitchPreference>(trackingProtectionKey)
preferenceTP?.isChecked = requireContext().settings().shouldUseTrackingProtection preferenceTP.isChecked = requireContext().settings().shouldUseTrackingProtection
preferenceTP?.setOnPreferenceChangeListener<Boolean> { preference, trackingProtectionOn -> preferenceTP.setOnPreferenceChangeListener<Boolean> { preference, trackingProtectionOn ->
preference.context.settings().shouldUseTrackingProtection = preference.context.settings().shouldUseTrackingProtection =
trackingProtectionOn trackingProtectionOn
with(preference.context.components) { with(preference.context.components) {
@ -72,10 +70,8 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() {
true true
} }
val trackingProtectionLearnMore = val learnMorePreference = requirePreference<Preference>(R.string.pref_key_etp_learn_more)
requireContext().getPreferenceKey(R.string.pref_key_etp_learn_more) learnMorePreference.setOnPreferenceClickListener {
val learnMorePreference = findPreference<Preference>(trackingProtectionLearnMore)
learnMorePreference?.setOnPreferenceClickListener {
(activity as HomeActivity).openToBrowserAndLoad( (activity as HomeActivity).openToBrowserAndLoad(
searchTermOrURL = SupportUtils.getGenericSumoURLForTopic searchTermOrURL = SupportUtils.getGenericSumoURLForTopic
(SupportUtils.SumoTopic.TRACKING_PROTECTION), (SupportUtils.SumoTopic.TRACKING_PROTECTION),
@ -84,22 +80,19 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() {
) )
true true
} }
learnMorePreference?.summary = getString( learnMorePreference.summary = getString(
R.string.preference_enhanced_tracking_protection_explanation, R.string.preference_enhanced_tracking_protection_explanation,
getString(R.string.app_name) getString(R.string.app_name)
) )
val exceptions = getPreferenceKey(R.string.pref_key_tracking_protection_exceptions) val preferenceExceptions = requirePreference<Preference>(R.string.pref_key_tracking_protection_exceptions)
val preferenceExceptions = findPreference<Preference>(exceptions) preferenceExceptions.onPreferenceClickListener = exceptionsClickListener
preferenceExceptions?.onPreferenceClickListener = exceptionsClickListener
} }
private fun bindTrackingProtectionRadio( private fun bindTrackingProtectionRadio(
mode: TrackingProtectionMode mode: TrackingProtectionMode
): RadioButtonInfoPreference { ): RadioButtonInfoPreference {
val radio = requireNotNull(findPreference<RadioButtonInfoPreference>( val radio = requirePreference<RadioButtonInfoPreference>(mode.preferenceKey)
getPreferenceKey(mode.preferenceKey)
))
radio.contentDescription = getString(mode.contentDescriptionRes) radio.contentDescription = getString(mode.contentDescriptionRes)
val metrics = requireComponents.analytics.metrics val metrics = requireComponents.analytics.metrics
@ -132,37 +125,23 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() {
private fun bindCustom(): RadioButtonInfoPreference { private fun bindCustom(): RadioButtonInfoPreference {
val radio = bindTrackingProtectionRadio(TrackingProtectionMode.CUSTOM) val radio = bindTrackingProtectionRadio(TrackingProtectionMode.CUSTOM)
customCookies = requireNotNull( customCookies =
findPreference( requirePreference(R.string.pref_key_tracking_protection_custom_cookies)
getString(R.string.pref_key_tracking_protection_custom_cookies)
)
)
customCookiesSelect = requireNotNull( customCookiesSelect =
findPreference( requirePreference(R.string.pref_key_tracking_protection_custom_cookies_select)
getString(R.string.pref_key_tracking_protection_custom_cookies_select)
) customTracking =
) requirePreference(R.string.pref_key_tracking_protection_custom_tracking_content)
customTracking = requireNotNull(
findPreference( customTrackingSelect =
getString(R.string.pref_key_tracking_protection_custom_tracking_content) requirePreference(R.string.pref_key_tracking_protection_custom_tracking_content_select)
)
) customCryptominers =
customTrackingSelect = requireNotNull( requirePreference(R.string.pref_key_tracking_protection_custom_cryptominers)
findPreference(
getString(R.string.pref_key_tracking_protection_custom_tracking_content_select) customFingerprinters =
) requirePreference(R.string.pref_key_tracking_protection_custom_fingerprinters)
)
customCryptominers = requireNotNull(
findPreference(
getString(R.string.pref_key_tracking_protection_custom_cryptominers)
)
)
customFingerprinters = requireNotNull(
findPreference(
getString(R.string.pref_key_tracking_protection_custom_fingerprinters)
)
)
customCookies.onPreferenceChangeListener = object : SharedPreferenceUpdater() { customCookies.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {

View File

@ -14,6 +14,7 @@ import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.settings.RadioButtonPreference import org.mozilla.fenix.settings.RadioButtonPreference
import org.mozilla.fenix.settings.SharedPreferenceUpdater import org.mozilla.fenix.settings.SharedPreferenceUpdater
import org.mozilla.fenix.settings.requirePreference
class SavedLoginsSettingFragment : PreferenceFragmentCompat() { class SavedLoginsSettingFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@ -29,9 +30,8 @@ class SavedLoginsSettingFragment : PreferenceFragmentCompat() {
} }
private fun bindSave(): RadioButtonPreference { private fun bindSave(): RadioButtonPreference {
val keySave = getString(R.string.pref_key_save_logins) val preferenceSave = requirePreference<RadioButtonPreference>(R.string.pref_key_save_logins)
val preferenceSave = findPreference<RadioButtonPreference>(keySave) preferenceSave.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
preferenceSave?.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
if (newValue == true) { if (newValue == true) {
context?.metrics?.track( context?.metrics?.track(
@ -45,13 +45,12 @@ class SavedLoginsSettingFragment : PreferenceFragmentCompat() {
return super.onPreferenceChange(preference, newValue) return super.onPreferenceChange(preference, newValue)
} }
} }
return requireNotNull(preferenceSave) return preferenceSave
} }
private fun bindNeverSave(): RadioButtonPreference { private fun bindNeverSave(): RadioButtonPreference {
val keyNeverSave = getString(R.string.pref_key_never_save_logins) val preferenceNeverSave = requirePreference<RadioButtonPreference>(R.string.pref_key_never_save_logins)
val preferenceNeverSave = findPreference<RadioButtonPreference>(keyNeverSave) preferenceNeverSave.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
preferenceNeverSave?.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
if (newValue == true) { if (newValue == true) {
context?.metrics?.track( context?.metrics?.track(
@ -65,7 +64,7 @@ class SavedLoginsSettingFragment : PreferenceFragmentCompat() {
return super.onPreferenceChange(preference, newValue) return super.onPreferenceChange(preference, newValue)
} }
} }
return requireNotNull(preferenceNeverSave) return preferenceNeverSave
} }
private fun setupRadioGroups( private fun setupRadioGroups(

View File

@ -18,13 +18,13 @@ import kotlinx.coroutines.withContext
import mozilla.components.feature.sitepermissions.SitePermissions import mozilla.components.feature.sitepermissions.SitePermissions
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getPreferenceKey
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.settings.PhoneFeature import org.mozilla.fenix.settings.PhoneFeature
import org.mozilla.fenix.settings.PhoneFeature.CAMERA import org.mozilla.fenix.settings.PhoneFeature.CAMERA
import org.mozilla.fenix.settings.PhoneFeature.LOCATION import org.mozilla.fenix.settings.PhoneFeature.LOCATION
import org.mozilla.fenix.settings.PhoneFeature.MICROPHONE import org.mozilla.fenix.settings.PhoneFeature.MICROPHONE
import org.mozilla.fenix.settings.PhoneFeature.NOTIFICATION import org.mozilla.fenix.settings.PhoneFeature.NOTIFICATION
import org.mozilla.fenix.settings.requirePreference
class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() { class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() {
private lateinit var sitePermissions: SitePermissions private lateinit var sitePermissions: SitePermissions
@ -75,8 +75,7 @@ class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() {
} }
private fun bindClearPermissionsButton() { private fun bindClearPermissionsButton() {
val keyPreference = getPreferenceKey(R.string.pref_key_exceptions_clear_site_permissions) val button: Preference = requirePreference(R.string.pref_key_exceptions_clear_site_permissions)
val button: Preference = requireNotNull(findPreference(keyPreference))
button.onPreferenceClickListener = Preference.OnPreferenceClickListener { button.onPreferenceClickListener = Preference.OnPreferenceClickListener {
AlertDialog.Builder(requireContext()).apply { AlertDialog.Builder(requireContext()).apply {