From 9a8fe4107db1e6ca8cdc31dd73ffaa604fd4ed71 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Wed, 13 Nov 2024 07:43:40 +0800 Subject: [PATCH] [Catalyst] Update SettingsService Bug: 373895596 Flag: com.android.settings.flags.catalyst_service Test: Manual Change-Id: I64d0b7bac3415894a8478fafe09b5f5d1a0ebb51 --- src/com/android/settings/SettingsService.kt | 26 +++++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/SettingsService.kt b/src/com/android/settings/SettingsService.kt index 2cd706b9b14..33385280ed9 100644 --- a/src/com/android/settings/SettingsService.kt +++ b/src/com/android/settings/SettingsService.kt @@ -16,15 +16,31 @@ package com.android.settings +import android.app.Application import android.content.Intent -import android.os.IBinder import com.android.settings.flags.Flags +import com.android.settingslib.graph.PreferenceSetterRequest +import com.android.settingslib.ipc.ApiPermissionChecker import com.android.settingslib.service.PreferenceService /** Service to expose settings APIs. */ -class SettingsService : PreferenceService({ _, _, _ -> true }) { +class SettingsService : + PreferenceService( + graphPermissionChecker = ApiPermissionChecker.alwaysAllow(), + setterPermissionChecker = SetterPermissionChecker(), + ) { - override fun onBind(intent: Intent): IBinder? { - return if (!Flags.catalystService()) null else super.onBind(intent) - } + override fun onBind(intent: Intent) = + if (Flags.catalystService()) super.onBind(intent) else null +} + +/** Permission checker for external setter API. */ +private class SetterPermissionChecker : ApiPermissionChecker { + + override fun hasPermission( + application: Application, + myUid: Int, + callingUid: Int, + request: PreferenceSetterRequest, + ) = true }