Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 089e6378 authored by Jacky Wang's avatar Jacky Wang
Browse files

[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
parent 60c6d8ea
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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
+2 −4
Original line number Diff line number Diff line
@@ -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
+3 −1
Original line number Diff line number Diff line
@@ -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)
+2 −6
Original line number Diff line number Diff line
@@ -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