summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaLogger.kt16
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/EntryLogger.kt18
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/PageLogger.kt27
-rw-r--r--packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/tests/testutils/SpaEnvironmentForTest.kt2
4 files changed, 37 insertions, 26 deletions
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaLogger.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaLogger.kt
index 00a0362abd91..6ecb7fa94c3c 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaLogger.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaLogger.kt
@@ -16,6 +16,7 @@
package com.android.settingslib.spa.framework.common
+import android.os.Bundle
import android.util.Log
// Defines the category of the log, for quick filter
@@ -38,10 +39,13 @@ enum class LogEvent {
// Entry related events.
ENTRY_CLICK,
- ENTRY_SWITCH_ON,
- ENTRY_SWITCH_OFF,
+ ENTRY_SWITCH,
}
+internal const val LOG_DATA_DISPLAY_NAME = "name"
+internal const val LOG_DATA_SESSION_NAME = "session"
+internal const val LOG_DATA_SWITCH_STATUS = "switch"
+
/**
* The interface of logger in Spa
*/
@@ -54,7 +58,7 @@ interface SpaLogger {
id: String,
event: LogEvent,
category: LogCategory = LogCategory.DEFAULT,
- details: String? = null
+ extraData: Bundle = Bundle.EMPTY
) {
}
}
@@ -64,8 +68,8 @@ class LocalLogger : SpaLogger {
Log.d("SpaMsg-$category", "[$tag] $msg")
}
- override fun event(id: String, event: LogEvent, category: LogCategory, details: String?) {
- val extraMsg = if (details == null) "" else " ($details)"
- Log.d("SpaEvent-$category", "[$id] $event$extraMsg")
+ override fun event(id: String, event: LogEvent, category: LogCategory, extraData: Bundle) {
+ val extraMsg = extraData.toString().removeRange(0, 6)
+ Log.d("SpaEvent-$category", "[$id] $event $extraMsg")
}
} \ No newline at end of file
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/EntryLogger.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/EntryLogger.kt
index 8d0a35c371e3..1c881878f751 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/EntryLogger.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/EntryLogger.kt
@@ -16,17 +16,22 @@
package com.android.settingslib.spa.framework.util
+import android.os.Bundle
import androidx.compose.runtime.Composable
+import androidx.core.os.bundleOf
+import com.android.settingslib.spa.framework.common.LOG_DATA_SWITCH_STATUS
import com.android.settingslib.spa.framework.common.LocalEntryDataProvider
import com.android.settingslib.spa.framework.common.LogCategory
import com.android.settingslib.spa.framework.common.LogEvent
import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
@Composable
-fun logEntryEvent(): (event: LogEvent) -> Unit {
- val entryId = LocalEntryDataProvider.current.entryId ?: return {}
- return {
- SpaEnvironmentFactory.instance.logger.event(entryId, it, category = LogCategory.VIEW)
+fun logEntryEvent(): (event: LogEvent, extraData: Bundle) -> Unit {
+ val entryId = LocalEntryDataProvider.current.entryId ?: return { _, _ -> }
+ return { event, extraData ->
+ SpaEnvironmentFactory.instance.logger.event(
+ entryId, event, category = LogCategory.VIEW, extraData = extraData
+ )
}
}
@@ -35,7 +40,7 @@ fun wrapOnClickWithLog(onClick: (() -> Unit)?): (() -> Unit)? {
if (onClick == null) return null
val logEvent = logEntryEvent()
return {
- logEvent(LogEvent.ENTRY_CLICK)
+ logEvent(LogEvent.ENTRY_CLICK, Bundle.EMPTY)
onClick()
}
}
@@ -45,8 +50,7 @@ fun wrapOnSwitchWithLog(onSwitch: ((checked: Boolean) -> Unit)?): ((checked: Boo
if (onSwitch == null) return null
val logEvent = logEntryEvent()
return {
- val event = if (it) LogEvent.ENTRY_SWITCH_ON else LogEvent.ENTRY_SWITCH_OFF
- logEvent(event)
+ logEvent(LogEvent.ENTRY_SWITCH, bundleOf(LOG_DATA_SWITCH_STATUS to it))
onSwitch(it)
}
}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/PageLogger.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/PageLogger.kt
index b9e4b782455d..a88125472b52 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/PageLogger.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/PageLogger.kt
@@ -21,8 +21,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalLifecycleOwner
+import androidx.core.os.bundleOf
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
+import com.android.settingslib.spa.framework.common.LOG_DATA_DISPLAY_NAME
+import com.android.settingslib.spa.framework.common.LOG_DATA_SESSION_NAME
import com.android.settingslib.spa.framework.common.LogCategory
import com.android.settingslib.spa.framework.common.LogEvent
import com.android.settingslib.spa.framework.common.SettingsPageProvider
@@ -37,21 +40,21 @@ internal fun SettingsPageProvider.PageEvent(arguments: Bundle? = null) {
val navController = LocalNavController.current
DisposableEffect(lifecycleOwner) {
val observer = LifecycleEventObserver { _, event ->
- val spaLogger = SpaEnvironmentFactory.instance.logger
- if (event == Lifecycle.Event.ON_START) {
- spaLogger.event(
- page.id,
- LogEvent.PAGE_ENTER,
+ val logPageEvent: (event: LogEvent) -> Unit = {
+ SpaEnvironmentFactory.instance.logger.event(
+ id = page.id,
+ event = it,
category = LogCategory.FRAMEWORK,
- details = navController.sessionSourceName ?: page.displayName,
+ extraData = bundleOf(
+ LOG_DATA_DISPLAY_NAME to page.displayName,
+ LOG_DATA_SESSION_NAME to navController.sessionSourceName,
+ )
)
+ }
+ if (event == Lifecycle.Event.ON_START) {
+ logPageEvent(LogEvent.PAGE_ENTER)
} else if (event == Lifecycle.Event.ON_STOP) {
- spaLogger.event(
- page.id,
- LogEvent.PAGE_LEAVE,
- category = LogCategory.FRAMEWORK,
- details = navController.sessionSourceName ?: page.displayName,
- )
+ logPageEvent(LogEvent.PAGE_LEAVE)
}
}
diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/tests/testutils/SpaEnvironmentForTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/tests/testutils/SpaEnvironmentForTest.kt
index 63859546d5f6..f38bd088060a 100644
--- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/tests/testutils/SpaEnvironmentForTest.kt
+++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/tests/testutils/SpaEnvironmentForTest.kt
@@ -51,7 +51,7 @@ class SpaLoggerForTest : SpaLogger {
messageCount[key] = (messageCount[key] ?: 0) + 1
}
- override fun event(id: String, event: LogEvent, category: LogCategory, details: String?) {
+ override fun event(id: String, event: LogEvent, category: LogCategory, extraData: Bundle) {
val key = EventCountKey(id, event, category)
eventCount[key] = (eventCount[key] ?: 0) + 1
}