From 089e6378b5730d71b9a3cce3347e5e4643aee9c1 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Sat, 8 Feb 2025 10:12:45 +0800 Subject: [PATCH] [Catalyst] Take write permit into account for SettingsPreferenceMetadata.writable NO_IFTTT=Catalyst only Fix: 394973168 Flag: com.android.settings.flags.catalyst Test: manual Change-Id: I4c09ab50d3a08ab50f4fced29ea70bb50b14e5d7 --- .../android/settings/display/BrightnessLevelPreference.kt | 3 +-- .../android/settings/fuelgauge/BatteryHeaderPreference.kt | 6 ++---- .../service/PreferenceServiceRequestTransformer.kt | 4 +++- .../supervision/SupervisionMainSwitchPreference.kt | 8 ++------ 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/com/android/settings/display/BrightnessLevelPreference.kt b/src/com/android/settings/display/BrightnessLevelPreference.kt index 7d762319af8..84f88c8abdd 100644 --- a/src/com/android/settings/display/BrightnessLevelPreference.kt +++ b/src/com/android/settings/display/BrightnessLevelPreference.kt @@ -15,7 +15,6 @@ */ package com.android.settings.display -import android.Manifest import android.app.ActivityOptions import android.content.Context import android.content.Intent @@ -111,7 +110,7 @@ class BrightnessLevelPreference : override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.ALLOW - override fun getWritePermit(context: Context, value: Int?, callingPid: Int, callingUid: Int) = + override fun getWritePermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.DISALLOW override val sensitivityLevel diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt b/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt index e08a111d683..268dea2778a 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt @@ -37,9 +37,7 @@ import com.android.settingslib.widget.UsageProgressBarPreference // LINT.IfChange class BatteryHeaderPreference : - IntRangeValuePreference, - PreferenceBinding, - PreferenceLifecycleProvider { + IntRangeValuePreference, PreferenceBinding, PreferenceLifecycleProvider { @VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null @@ -108,7 +106,7 @@ class BatteryHeaderPreference : override fun getWritePermissions(context: Context) = Permissions.EMPTY - override fun getWritePermit(context: Context, value: Int?, callingPid: Int, callingUid: Int) = + override fun getWritePermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.DISALLOW override val sensitivityLevel: Int diff --git a/src/com/android/settings/service/PreferenceServiceRequestTransformer.kt b/src/com/android/settings/service/PreferenceServiceRequestTransformer.kt index 55903a02446..6b33b07af88 100644 --- a/src/com/android/settings/service/PreferenceServiceRequestTransformer.kt +++ b/src/com/android/settings/service/PreferenceServiceRequestTransformer.kt @@ -40,6 +40,7 @@ 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.PreferenceCoordinate +import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel /** Transform Catalyst Graph result to Framework GET METADATA result */ @@ -215,13 +216,14 @@ private fun PreferenceProto.toMetadata( extras.putBundle(KEY_INT_RANGE, intRange) } if (tagsCount > 0) extras.putStringArray(KEY_TAGS, tagsList.toTypedArray()) + val writePermit = ReadWritePermit.getWritePermit(readWritePermit) return SettingsPreferenceMetadata.Builder(screenKey, key) .setTitle(title.getText(context)) .setSummary(summary.getText(context)) .setEnabled(enabled) .setAvailable(available) .setRestricted(restricted) - .setWritable(persistent) + .setWritable(persistent && writePermit == ReadWritePermit.ALLOW) .setLaunchIntent(launchIntent.toIntent()) .setWriteSensitivity(sensitivity) // Returns all the permissions that are used, some of which are exclusive (e.g. p1 or p2) diff --git a/src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt b/src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt index eaf73a1d6ff..400c4ccaee2 100644 --- a/src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt +++ b/src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt @@ -39,12 +39,8 @@ class SupervisionMainSwitchPreference : override fun getReadPermit(context: Context, callingPid: Int, callingUid: Int) = ReadWritePermit.DISALLOW - override fun getWritePermit( - context: Context, - value: Boolean?, - callingPid: Int, - callingUid: Int, - ) = ReadWritePermit.DISALLOW + override fun getWritePermit(context: Context, callingPid: Int, callingUid: Int) = + ReadWritePermit.DISALLOW override val sensitivityLevel: Int get() = SensitivityLevel.HIGH_SENSITIVITY