[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
This commit is contained in:
Jacky Wang
2025-02-08 10:12:45 +08:00
parent 60c6d8ead5
commit 089e6378b5
4 changed files with 8 additions and 13 deletions

View File

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

View File

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

View File

@@ -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)

View File

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