[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

@@ -20,18 +20,16 @@ import android.content.Context
import android.media.AudioManager
import android.media.AudioManager.STREAM_BLUETOOTH_SCO
import android.media.AudioManager.STREAM_VOICE_CALL
import android.os.UserHandle
import android.os.UserManager.DISALLOW_ADJUST_VOLUME
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
@@ -44,7 +42,7 @@ open class CallVolumePreference :
RangeValue,
PreferenceAvailabilityProvider,
PreferenceIconProvider,
PreferenceRestrictionProvider {
PreferenceRestrictionMixin {
override val key: String
get() = KEY
@@ -55,18 +53,12 @@ open class CallVolumePreference :
override fun isAvailable(context: Context) =
context.resources.getBoolean(R.bool.config_show_call_volume) &&
!createAudioHelper(context).isSingleVolume()
!createAudioHelper(context).isSingleVolume
override fun isRestricted(context: Context) =
RestrictedLockUtilsInternal.hasBaseUserRestriction(
context,
DISALLOW_ADJUST_VOLUME,
UserHandle.myUserId()
) || RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
context,
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)