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

View File

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

View File

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