[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
This commit is contained in:
Jacky Wang
2024-12-27 15:44:38 +08:00
parent 82aa6c7e64
commit c1fb46f717

View File

@@ -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?,