[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
This commit is contained in:
Jacky Wang
2024-11-15 08:14:51 +08:00
parent f7668f4d06
commit e635f1e0ed
10 changed files with 40 additions and 0 deletions

View File

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