From db3b6ee073a278075e693ffb0bd971e614abf9ba Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Wed, 16 Oct 2024 22:24:28 +0800 Subject: [PATCH] Simplify settings datastore calls NO_IFTTT=Code refactor Bug: 364899400 Flag: EXEMPT test Test: atest DialPadTonePreferenceTest Change-Id: Ifb4ab11e07b37952dfb3cc78d25383d563d5749d --- .../notification/DialPadTonePreference.kt | 6 +++--- .../notification/DialPadTonePreferenceTest.kt | 21 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/com/android/settings/notification/DialPadTonePreference.kt b/src/com/android/settings/notification/DialPadTonePreference.kt index 9f1818063ab..32bc42ea10c 100644 --- a/src/com/android/settings/notification/DialPadTonePreference.kt +++ b/src/com/android/settings/notification/DialPadTonePreference.kt @@ -22,14 +22,14 @@ import com.android.settings.Utils import com.android.settingslib.datastore.SettingsSystemStore import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.SwitchPreference -import com.android.settingslib.preference.SwitchPreferenceBinding // LINT.IfChange class DialPadTonePreference : SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title), - SwitchPreferenceBinding, PreferenceAvailabilityProvider { + PreferenceAvailabilityProvider { + override fun storage(context: Context) = SettingsSystemStore.get(context) override fun isAvailable(context: Context) = Utils.isVoiceCapable(context) } -// LINT.ThenChange(DialPadTonePreferenceController.java) \ No newline at end of file +// LINT.ThenChange(DialPadTonePreferenceController.java) diff --git a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt index 02ee0ee5d1e..63e8e3d53ef 100644 --- a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt +++ b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt @@ -23,6 +23,7 @@ import androidx.preference.SwitchPreferenceCompat import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settingslib.datastore.SettingsSystemStore +import com.android.settingslib.preference.DefaultPreferenceBindingFactory import com.google.common.truth.Truth.assertThat import org.junit.Test import org.junit.runner.RunWith @@ -61,7 +62,7 @@ class DialPadTonePreferenceTest { @Test fun performClick_shouldPreferenceChangeToChecked() { - setDialPadToneEnabled(false) + enableDialPadTone(false) val preference = getSwitchPreference().apply { performClick() } @@ -70,7 +71,7 @@ class DialPadTonePreferenceTest { @Test fun performClick_shouldPreferenceChangeToUnchecked() { - setDialPadToneEnabled(true) + enableDialPadTone(true) val preference = getSwitchPreference().apply { performClick() } @@ -79,28 +80,26 @@ class DialPadTonePreferenceTest { @Test fun dialToneEnabled_shouldCheckedPreference() { - setDialPadToneEnabled(true) + enableDialPadTone(true) assertThat(getSwitchPreference().isChecked).isTrue() } @Test fun dialToneDisabled_shouldUncheckedPreference() { - setDialPadToneEnabled(false) + enableDialPadTone(false) assertThat(getSwitchPreference().isChecked).isFalse() } private fun getSwitchPreference(): SwitchPreferenceCompat = - dialPadTonePreference.run { + DefaultPreferenceBindingFactory.getPreferenceBinding(dialPadTonePreference).run { val preference = createWidget(context) - bind(preference, this) + bind(preference, dialPadTonePreference) preference as SwitchPreferenceCompat } - private fun setDialPadToneEnabled(enabled: Boolean) { - SettingsSystemStore.get(context) - .setValue(DTMF_TONE_WHEN_DIALING, Boolean::class.javaObjectType, enabled) - } + private fun enableDialPadTone(enabled: Boolean) = + SettingsSystemStore.get(context).setBoolean(DTMF_TONE_WHEN_DIALING, enabled) } -// LINT.ThenChange(DialPadTonePreferenceControllerTest.java) \ No newline at end of file +// LINT.ThenChange(DialPadTonePreferenceControllerTest.java)