[Catalyst] Implement metrics logger for Get/Set/Graph API

Bug: 372980186
Flag: com.android.settings.flags.catalyst
Test: statsd_testdrive
Change-Id: I358449612a09ef325e47d0d107e1d72339a9f741
This commit is contained in:
Jacky Wang
2025-01-20 12:30:15 +08:00
parent 777378996f
commit 82100793fd
4 changed files with 179 additions and 45 deletions

View File

@@ -16,11 +16,9 @@
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.settings.metrics.SettingsRemoteOpMetricsLogger
import com.android.settingslib.ipc.ApiPermissionChecker
import com.android.settingslib.service.PreferenceService
@@ -28,32 +26,11 @@ import com.android.settingslib.service.PreferenceService
class SettingsService :
PreferenceService(
graphPermissionChecker = ApiPermissionChecker.alwaysAllow(),
setterPermissionChecker = SetterPermissionChecker(),
getterPermissionChecker = GetterPermissionChecker(),
setterPermissionChecker = ApiPermissionChecker.alwaysAllow(),
getterPermissionChecker = ApiPermissionChecker.alwaysAllow(),
metricsLogger = SettingsRemoteOpMetricsLogger(),
) {
override fun onBind(intent: Intent) =
if (Flags.catalystService()) super.onBind(intent) else null
}
/** Permission checker for external setter API. */
private class SetterPermissionChecker : ApiPermissionChecker<PreferenceSetterRequest> {
override fun hasPermission(
application: Application,
callingPid: Int,
callingUid: Int,
request: PreferenceSetterRequest,
) = true
}
/** Permission checker for external getter API. */
private class GetterPermissionChecker : ApiPermissionChecker<PreferenceGetterRequest> {
override fun hasPermission(
application: Application,
callingPid: Int,
callingUid: Int,
request: PreferenceGetterRequest,
) = true
}