[Catalyst] Implement get{Read,Write}Permissions for Media volume

NO_IFTTT=Catalyst only

Fix: 386143376
Test: devtool
Flag: com.android.settings.flags.catalyst_sound_screen
Change-Id: I1909c32ae1d067b095208b4a65ad53bd7080acf1
This commit is contained in:
Mill Chen
2024-12-26 10:28:16 +00:00
parent 0f1c0f3ceb
commit c210dc981c

View File

@@ -16,7 +16,10 @@
package com.android.settings.notification package com.android.settings.notification
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
import android.content.Context import android.content.Context
import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE
import android.media.AudioManager.STREAM_MUSIC import android.media.AudioManager.STREAM_MUSIC
import android.os.UserManager import android.os.UserManager
import androidx.preference.Preference import androidx.preference.Preference
@@ -24,6 +27,8 @@ import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R import com.android.settings.R
import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable 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.PersistentPreference
import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceIconProvider import com.android.settingslib.metadata.PreferenceIconProvider
@@ -77,9 +82,19 @@ open class MediaVolumePreference :
} }
} }
override fun getReadPermissions(context: Context) = Permissions.EMPTY
override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) = override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) =
ReadWritePermit.ALLOW 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) = override fun getWritePermit(context: Context, value: Int?, callingPid: Int, callingUid: Int) =
ReadWritePermit.ALLOW ReadWritePermit.ALLOW