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.datastore.SettingsSystemStore
|
||||||
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
||||||
import com.android.settingslib.metadata.SwitchPreference
|
import com.android.settingslib.metadata.SwitchPreference
|
||||||
import com.android.settingslib.preference.SwitchPreferenceBinding
|
|
||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class DialPadTonePreference :
|
class DialPadTonePreference :
|
||||||
SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title),
|
SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title),
|
||||||
SwitchPreferenceBinding, PreferenceAvailabilityProvider {
|
PreferenceAvailabilityProvider {
|
||||||
|
|
||||||
override fun storage(context: Context) = SettingsSystemStore.get(context)
|
override fun storage(context: Context) = SettingsSystemStore.get(context)
|
||||||
|
|
||||||
override fun isAvailable(context: Context) = Utils.isVoiceCapable(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.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settingslib.datastore.SettingsSystemStore
|
import com.android.settingslib.datastore.SettingsSystemStore
|
||||||
|
import com.android.settingslib.preference.DefaultPreferenceBindingFactory
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
@@ -61,7 +62,7 @@ class DialPadTonePreferenceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun performClick_shouldPreferenceChangeToChecked() {
|
fun performClick_shouldPreferenceChangeToChecked() {
|
||||||
setDialPadToneEnabled(false)
|
enableDialPadTone(false)
|
||||||
|
|
||||||
val preference = getSwitchPreference().apply { performClick() }
|
val preference = getSwitchPreference().apply { performClick() }
|
||||||
|
|
||||||
@@ -70,7 +71,7 @@ class DialPadTonePreferenceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun performClick_shouldPreferenceChangeToUnchecked() {
|
fun performClick_shouldPreferenceChangeToUnchecked() {
|
||||||
setDialPadToneEnabled(true)
|
enableDialPadTone(true)
|
||||||
|
|
||||||
val preference = getSwitchPreference().apply { performClick() }
|
val preference = getSwitchPreference().apply { performClick() }
|
||||||
|
|
||||||
@@ -79,28 +80,26 @@ class DialPadTonePreferenceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun dialToneEnabled_shouldCheckedPreference() {
|
fun dialToneEnabled_shouldCheckedPreference() {
|
||||||
setDialPadToneEnabled(true)
|
enableDialPadTone(true)
|
||||||
|
|
||||||
assertThat(getSwitchPreference().isChecked).isTrue()
|
assertThat(getSwitchPreference().isChecked).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun dialToneDisabled_shouldUncheckedPreference() {
|
fun dialToneDisabled_shouldUncheckedPreference() {
|
||||||
setDialPadToneEnabled(false)
|
enableDialPadTone(false)
|
||||||
|
|
||||||
assertThat(getSwitchPreference().isChecked).isFalse()
|
assertThat(getSwitchPreference().isChecked).isFalse()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getSwitchPreference(): SwitchPreferenceCompat =
|
private fun getSwitchPreference(): SwitchPreferenceCompat =
|
||||||
dialPadTonePreference.run {
|
DefaultPreferenceBindingFactory.getPreferenceBinding(dialPadTonePreference).run {
|
||||||
val preference = createWidget(context)
|
val preference = createWidget(context)
|
||||||
bind(preference, this)
|
bind(preference, dialPadTonePreference)
|
||||||
preference as SwitchPreferenceCompat
|
preference as SwitchPreferenceCompat
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setDialPadToneEnabled(enabled: Boolean) {
|
private fun enableDialPadTone(enabled: Boolean) =
|
||||||
SettingsSystemStore.get(context)
|
SettingsSystemStore.get(context).setBoolean(DTMF_TONE_WHEN_DIALING, enabled)
|
||||||
.setValue(DTMF_TONE_WHEN_DIALING, Boolean::class.javaObjectType, enabled)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// LINT.ThenChange(DialPadTonePreferenceControllerTest.java)
|
// LINT.ThenChange(DialPadTonePreferenceControllerTest.java)
|
||||||
|
Reference in New Issue
Block a user