From 5da3d3390a15c76768fb6207dbc97f1177bff6f8 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Thu, 26 Dec 2024 10:31:34 +0000 Subject: [PATCH] [Catalyst] Implement get{Read,Write}Permissions for Ring volume NO_IFTTT=Catalyst only Fix: 386143268 Test: devtool Flag: com.android.settings.flags.catalyst_sound_screen Change-Id: I8ed7fa1d6a857d64896b33a80e17f7e08808bbaf --- .../notification/SeparateRingVolumePreference.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/com/android/settings/notification/SeparateRingVolumePreference.kt b/src/com/android/settings/notification/SeparateRingVolumePreference.kt index 0e557c419a1..4cdac1434bf 100644 --- a/src/com/android/settings/notification/SeparateRingVolumePreference.kt +++ b/src/com/android/settings/notification/SeparateRingVolumePreference.kt @@ -16,6 +16,8 @@ package com.android.settings.notification +import android.Manifest.permission.MODIFY_AUDIO_SETTINGS +import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED import android.app.INotificationManager import android.app.NotificationManager import android.app.NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED @@ -24,6 +26,7 @@ import android.content.Context import android.content.Context.NOTIFICATION_SERVICE import android.content.Intent import android.content.IntentFilter +import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE import android.media.AudioManager import android.media.AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION import android.media.AudioManager.RINGER_MODE_NORMAL @@ -40,6 +43,8 @@ import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable +import com.android.settingslib.datastore.Permissions +import com.android.settingslib.datastore.and import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceIconProvider @@ -94,9 +99,19 @@ open class SeparateRingVolumePreference : } } + override fun getReadPermissions(context: Context) = Permissions.EMPTY + override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.ALLOW + override fun getWritePermissions(context: Context): Permissions? { + var permissions = Permissions.allOf(MODIFY_AUDIO_SETTINGS) + if (context.packageManager.hasSystemFeature(FEATURE_AUTOMOTIVE)) { + permissions = permissions and MODIFY_AUDIO_SETTINGS_PRIVILEGED + } + return permissions + } + override fun getWritePermit(context: Context, value: Int?, callingPid: Int, callingUid: Int) = ReadWritePermit.ALLOW