[Catalyst] Update getRead/WritePermissions return type

NO_IFTTT=Catalyst only

Bug: 374115149
Flag: com.android.settings.flags.catalyst_mobile_network_list
Test: devtool
Change-Id: I30c93cc1c07691c1e0498916bbdfb423fa1734a0
This commit is contained in:
Jacky Wang
2024-12-20 11:14:46 +08:00
parent 75cae48694
commit 70c56ec8c9
3 changed files with 13 additions and 9 deletions

View File

@@ -24,6 +24,7 @@ import com.android.settings.network.telephony.MobileDataRepository
import com.android.settings.network.telephony.SubscriptionRepository import com.android.settings.network.telephony.SubscriptionRepository
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.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel import com.android.settingslib.metadata.SensitivityLevel
@@ -47,7 +48,7 @@ class MobileDataPreference :
override fun storage(context: Context): KeyValueStore = MobileDataStorage(context) override fun storage(context: Context): KeyValueStore = MobileDataStorage(context)
override fun getReadPermissions(context: Context) = override fun getReadPermissions(context: Context) =
arrayOf( Permissions.allOf(
// required by TelephonyManager.isDataEnabledForReason // required by TelephonyManager.isDataEnabledForReason
Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_PHONE_STATE,
@@ -56,7 +57,7 @@ class MobileDataPreference :
) )
override fun getWritePermissions(context: Context) = override fun getWritePermissions(context: Context) =
arrayOf( Permissions.allOf(
// required by TelephonyManager.setDataEnabledForReason // required by TelephonyManager.setDataEnabledForReason
Manifest.permission.MODIFY_PHONE_STATE Manifest.permission.MODIFY_PHONE_STATE
) )

View File

@@ -31,12 +31,13 @@ import com.android.settingslib.graph.PreferenceGetterRequest
import com.android.settingslib.graph.PreferenceGetterResponse import com.android.settingslib.graph.PreferenceGetterResponse
import com.android.settingslib.graph.PreferenceSetterRequest import com.android.settingslib.graph.PreferenceSetterRequest
import com.android.settingslib.graph.PreferenceSetterResult import com.android.settingslib.graph.PreferenceSetterResult
import com.android.settingslib.graph.preferenceValueProto import com.android.settingslib.graph.getAllPermissions
import com.android.settingslib.graph.proto.PreferenceProto
import com.android.settingslib.graph.proto.PreferenceValueProto
import com.android.settingslib.graph.getText import com.android.settingslib.graph.getText
import com.android.settingslib.graph.preferenceValueProto
import com.android.settingslib.graph.proto.PreferenceGraphProto import com.android.settingslib.graph.proto.PreferenceGraphProto
import com.android.settingslib.graph.proto.PreferenceOrGroupProto import com.android.settingslib.graph.proto.PreferenceOrGroupProto
import com.android.settingslib.graph.proto.PreferenceProto
import com.android.settingslib.graph.proto.PreferenceValueProto
import com.android.settingslib.graph.toIntent import com.android.settingslib.graph.toIntent
import com.android.settingslib.metadata.SensitivityLevel import com.android.settingslib.metadata.SensitivityLevel
@@ -204,7 +205,8 @@ private fun PreferenceProto.toMetadata(
.setWritable(persistent) .setWritable(persistent)
.setLaunchIntent(launchIntent.toIntent()) .setLaunchIntent(launchIntent.toIntent())
.setWriteSensitivity(sensitivity) .setWriteSensitivity(sensitivity)
.setReadPermissions(readPermissionsList) // Returns all the permissions that are used, some of which are exclusive (e.g. p1 or p2)
.setWritePermissions(writePermissionsList) .setReadPermissions(readPermissions.getAllPermissions())
.setWritePermissions(writePermissions.getAllPermissions())
.build() .build()
} }

View File

@@ -31,6 +31,7 @@ import android.service.settings.preferences.SettingsPreferenceValue
import androidx.test.core.app.ApplicationProvider import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.homepage.SettingsHomepageActivity import com.android.settings.homepage.SettingsHomepageActivity
import com.android.settingslib.datastore.Permissions
import com.android.settingslib.flags.Flags.FLAG_SETTINGS_CATALYST import com.android.settingslib.flags.Flags.FLAG_SETTINGS_CATALYST
import com.android.settingslib.graph.PreferenceCoordinate import com.android.settingslib.graph.PreferenceCoordinate
import com.android.settingslib.graph.PreferenceGetterErrorCode import com.android.settingslib.graph.PreferenceGetterErrorCode
@@ -156,8 +157,8 @@ class PreferenceServiceRequestTransformerTest {
restricted = true restricted = true
persistent = true persistent = true
sensitivityLevel = SensitivityLevel.LOW_SENSITIVITY sensitivityLevel = SensitivityLevel.LOW_SENSITIVITY
addReadPermissions("read_permission") readPermissions = Permissions.allOf("read_permission").toProto()
addWritePermissions("write_permission") writePermissions = Permissions.anyOf("write_permission").toProto()
launchIntent = launchIntent =
Intent(context, SettingsHomepageActivity::class.java).toProto() Intent(context, SettingsHomepageActivity::class.java).toProto()
value = preferenceValueProto { booleanValue = true } value = preferenceValueProto { booleanValue = true }