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

Commit e8a0b1ea authored by Jason Chiu's avatar Jason Chiu
Browse files

[Catalyst] Update Get/Set API for Dial pad tones

NO_IFTTT=Catalyst only, update get/set API

Fix: 389130737
Test: manual, devtool
Flag: EXEMPT update get/set API
Change-Id: If425deeb2d181b61c6ac2b360edfbd0a92b25d44
parent 2926ac83
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -114,6 +114,12 @@ const val KEY_NOTIFICATION_VOLUME = "notification_volume"
/** Contract key for the "Alarm volume" setting. */
const val KEY_ALARM_VOLUME = "alarm_volume"

/**
 * Contract key for the "Dial pad tones" setting, identical to
 * [android.provider.Settings.System.DTMF_TONE_WHEN_DIALING].
 */
const val KEY_DIAL_PAD_TONE = "dtmf_tone"

/** Contract key for the "Remove animation" setting. */
const val KEY_REMOVE_ANIMATION = "remove_animation"

+23 −0
Original line number Diff line number Diff line
@@ -15,21 +15,44 @@
 */
package com.android.settings.notification

import android.app.settings.SettingsEnums.ACTION_DIAL_PAD_TONE
import android.content.Context
import android.provider.Settings.System.DTMF_TONE_WHEN_DIALING
import com.android.settings.R
import com.android.settings.Utils
import com.android.settings.contract.KEY_DIAL_PAD_TONE
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.datastore.SettingsSystemStore
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
import com.android.settingslib.metadata.SwitchPreference

// LINT.IfChange
class DialPadTonePreference :
    SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title),
    PreferenceActionMetricsProvider,
    PreferenceAvailabilityProvider {
    override val preferenceActionMetrics: Int
        get() = ACTION_DIAL_PAD_TONE

    override fun tags(context: Context) = arrayOf(KEY_DIAL_PAD_TONE)

    override fun storage(context: Context) = SettingsSystemStore.get(context)

    override fun isAvailable(context: Context) = Utils.isVoiceCapable(context)

    override fun getReadPermissions(context: Context) = SettingsSystemStore.getReadPermissions()

    override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun getWritePermissions(context: Context) = SettingsSystemStore.getWritePermissions()

    override fun getWritePermit(context: Context, callingPid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override val sensitivityLevel
        get() = SensitivityLevel.NO_SENSITIVITY
}
// LINT.ThenChange(DialPadTonePreferenceController.java)