From c1fb46f717a6ed6edb1657fd79af8003caa8b668 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Fri, 27 Dec 2024 15:44:38 +0800 Subject: [PATCH] [Catalyst] Implement get{Read,Write}Permissions for Use Wi-Fi Calling Bug: 385288187 Flag: com.android.settings.flags.catalyst_wifi_calling Test: devtool Change-Id: I28d51248285ee153bdbfe04dd31e137107bef501 --- .../wifi/calling/WifiCallingMainSwitchPreference.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt b/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt index 07adac04f58..dc6737310d3 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt +++ b/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt @@ -16,6 +16,9 @@ package com.android.settings.wifi.calling +import android.Manifest.permission.MODIFY_PHONE_STATE +import android.Manifest.permission.READ_PRECISE_PHONE_STATE +import android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE import android.content.Context import android.telephony.SubscriptionManager import android.telephony.TelephonyManager @@ -28,6 +31,8 @@ import com.android.settings.widget.SettingsMainSwitchPreference import com.android.settings.wifi.calling.WifiCallingSettingsForSub.getCarrierActivityIntent 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.PreferenceAvailabilityProvider import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel @@ -60,9 +65,16 @@ class WifiCallingMainSwitchPreference(private val subId: Int) : override fun createWidget(context: Context) = SettingsMainSwitchPreference(context) + override fun getReadPermissions(context: Context) = + Permissions.anyOf(READ_PRIVILEGED_PHONE_STATE, READ_PRECISE_PHONE_STATE) + override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.ALLOW + override fun getWritePermissions(context: Context) = + Permissions.anyOf(READ_PRIVILEGED_PHONE_STATE, READ_PRECISE_PHONE_STATE) and + MODIFY_PHONE_STATE + override fun getWritePermit( context: Context, value: Boolean?,