Simplify settings datastore calls
NO_IFTTT=Code refactor Bug: 364899400 Flag: EXEMPT test Test: atest DialPadTonePreferenceTest Change-Id: Ifb4ab11e07b37952dfb3cc78d25383d563d5749d
This commit is contained in:
@@ -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)
|
||||
// LINT.ThenChange(DialPadTonePreferenceController.java)
|
||||
|
@@ -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)
|
||||
// LINT.ThenChange(DialPadTonePreferenceControllerTest.java)
|
||||
|
Reference in New Issue
Block a user