[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.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable
import com.android.settingslib.datastore.Permissions
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
@@ -47,7 +48,7 @@ class MobileDataPreference :
override fun storage(context: Context): KeyValueStore = MobileDataStorage(context)
override fun getReadPermissions(context: Context) =
arrayOf(
Permissions.allOf(
// required by TelephonyManager.isDataEnabledForReason
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.READ_PHONE_STATE,
@@ -56,7 +57,7 @@ class MobileDataPreference :
)
override fun getWritePermissions(context: Context) =
arrayOf(
Permissions.allOf(
// required by TelephonyManager.setDataEnabledForReason
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.PreferenceSetterRequest
import com.android.settingslib.graph.PreferenceSetterResult
import com.android.settingslib.graph.preferenceValueProto
import com.android.settingslib.graph.proto.PreferenceProto
import com.android.settingslib.graph.proto.PreferenceValueProto
import com.android.settingslib.graph.getAllPermissions
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.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.metadata.SensitivityLevel
@@ -204,7 +205,8 @@ private fun PreferenceProto.toMetadata(
.setWritable(persistent)
.setLaunchIntent(launchIntent.toIntent())
.setWriteSensitivity(sensitivity)
.setReadPermissions(readPermissionsList)
.setWritePermissions(writePermissionsList)
// Returns all the permissions that are used, some of which are exclusive (e.g. p1 or p2)
.setReadPermissions(readPermissions.getAllPermissions())
.setWritePermissions(writePermissions.getAllPermissions())
.build()
}

View File

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