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

Commit e635f1e0 authored by Jacky Wang's avatar Jacky Wang
Browse files

[Catalyst] Support Getter API for settings service

NO_IFTTT=Catalyst only

Bug: 373895596
Flag: com.android.settings.flags.catalyst_service
Test: devtool
Change-Id: I367f350d2192d1285bf355a9e45c2d9bec11fa44
parent f7668f4d
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings
import android.app.Application
import android.content.Intent
import com.android.settings.flags.Flags
import com.android.settingslib.graph.PreferenceGetterRequest
import com.android.settingslib.graph.PreferenceSetterRequest
import com.android.settingslib.ipc.ApiPermissionChecker
import com.android.settingslib.service.PreferenceService
@@ -28,6 +29,7 @@ class SettingsService :
    PreferenceService(
        graphPermissionChecker = ApiPermissionChecker.alwaysAllow(),
        setterPermissionChecker = SetterPermissionChecker(),
        getterPermissionChecker = GetterPermissionChecker(),
    ) {

    override fun onBind(intent: Intent) =
@@ -44,3 +46,14 @@ private class SetterPermissionChecker : ApiPermissionChecker<PreferenceSetterReq
        request: PreferenceSetterRequest,
    ) = true
}

/** Permission checker for external getter API. */
private class GetterPermissionChecker : ApiPermissionChecker<PreferenceGetterRequest> {

    override fun hasPermission(
        application: Application,
        myUid: Int,
        callingUid: Int,
        request: PreferenceGetterRequest,
    ) = true
}
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ class DataSaverMainSwitchPreference(context: Context) :

    override fun storage(context: Context): KeyValueStore = DataSaverStore(dataSaverBackend)

    override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

+3 −0
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ class AutoBrightnessScreen :
    override fun storage(context: Context): KeyValueStore =
        AutoBrightnessDataStore(SettingsSystemStore.get(context))

    override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

+3 −0
Original line number Diff line number Diff line
@@ -48,6 +48,9 @@ class BatteryPercentageSwitchPreference :
                com.android.internal.R.bool.config_battery_percentage_setting_available
            )

    override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

+3 −0
Original line number Diff line number Diff line
@@ -49,6 +49,9 @@ class PeakRefreshRateSwitchPreference :
    override fun storage(context: Context): KeyValueStore =
        PeakRefreshRateStore(context, SettingsSystemStore.get(context))

    override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

Loading