Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0901eb73 authored by Jacky Wang's avatar Jacky Wang Committed by Android (Google) Code Review
Browse files

Merge "Simplify settings datastore calls" into main

parents 115f4a80 db3b6ee0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -22,12 +22,12 @@ 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)
+10 −11
Original line number Diff line number Diff line
@@ -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)