[Catalyst] Support restriction for Sound settings

NO_IFTTT=Catalyst only

Bug: 377600992
Flag: com.android.settings.flags.catalyst_sound_screen
Test: testdpc
Change-Id: I2d768155f450f415c2279bbff69f94e8934b4383
This commit is contained in:
Jacky Wang
2024-11-06 11:58:10 +08:00
parent f18e3bafe6
commit d33b0a5114
3 changed files with 28 additions and 55 deletions

View File

@@ -18,18 +18,16 @@ package com.android.settings.notification
import android.content.Context
import android.media.AudioManager.STREAM_MUSIC
import android.os.UserHandle
import android.os.UserManager
import androidx.preference.Preference
import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R
import com.android.settingslib.RestrictedLockUtilsInternal
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable
import com.android.settingslib.metadata.PersistentPreference
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceIconProvider
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceRestrictionProvider
import com.android.settingslib.metadata.RangeValue
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.preference.PreferenceBinding
@@ -42,7 +40,7 @@ open class MediaVolumePreference :
RangeValue,
PreferenceAvailabilityProvider,
PreferenceIconProvider,
PreferenceRestrictionProvider {
PreferenceRestrictionMixin {
override val key: String
get() = KEY
@@ -58,17 +56,10 @@ open class MediaVolumePreference :
override fun isAvailable(context: Context) =
context.resources.getBoolean(R.bool.config_show_media_volume)
override fun isRestricted(context: Context) =
RestrictedLockUtilsInternal.hasBaseUserRestriction(
context,
UserManager.DISALLOW_ADJUST_VOLUME,
UserHandle.myUserId(),
) ||
RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
context,
UserManager.DISALLOW_ADJUST_VOLUME,
UserHandle.myUserId(),
) != null
override fun isEnabled(context: Context) = super<PreferenceRestrictionMixin>.isEnabled(context)
override val restrictionKey: String
get() = UserManager.DISALLOW_ADJUST_VOLUME
override fun storage(context: Context): KeyValueStore {
val helper = createAudioHelper(context)
@@ -107,9 +98,9 @@ open class MediaVolumePreference :
open fun createAudioHelper(context: Context) = AudioHelper(context)
fun updateContentDescription(preference: VolumeSeekBarPreference) {
private fun updateContentDescription(preference: VolumeSeekBarPreference) {
when {
preference.isMuted() ->
preference.isMuted ->
preference.updateContentDescription(
preference.context.getString(
R.string.volume_content_description_silent_mode,