Loading src/com/android/customization/module/logging/StatsLogUserEventLogger.kt +65 −27 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.text.TextUtils import com.android.customization.model.color.ColorOption import com.android.customization.model.grid.GridOption import com.android.customization.module.SysUiStatsLogger import com.android.customization.module.logging.ThemesUserEventLogger.ClockSize import com.android.systemui.shared.system.SysUiStatsLog import com.android.wallpaper.module.WallpaperPersister.DEST_BOTH import com.android.wallpaper.module.WallpaperPersister.DEST_HOME_SCREEN Loading @@ -37,18 +38,6 @@ import com.android.wallpaper.util.LaunchSourceUtils class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : NoOpUserEventLogger(), ThemesUserEventLogger { override fun logAppLaunched(launchSource: Intent) { SysUiStatsLogger(SysUiStatsLog.STYLE_UICHANGED__ACTION__APP_LAUNCHED) .setLaunchedPreference(getAppLaunchSource(launchSource)) .log() } override fun logActionClicked(collectionId: String, actionLabelResId: Int) { SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE) .setWallpaperCategoryHash(getIdHashCode(collectionId)) .log() } override fun logSnapshot() { SysUiStatsLogger(StyleEnums.SNAPSHOT) .setWallpaperCategoryHash(preferences.getHomeCategoryHash()) Loading @@ -59,6 +48,12 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : .log() } override fun logAppLaunched(launchSource: Intent) { SysUiStatsLogger(StyleEnums.APP_LAUNCHED) .setLaunchedPreference(launchSource.getAppLaunchSource()) .log() } override fun logWallpaperApplied( collectionId: String?, wallpaperId: String?, Loading Loading @@ -114,20 +109,69 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : .log() } override fun logColorApplied(action: Int, colorOption: ColorOption) { SysUiStatsLogger(action) override fun logResetApplied() { SysUiStatsLogger(StyleEnums.RESET_APPLIED).log() } override fun logWallpaperExploreButtonClicked() { SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE).log() } override fun logThemeColorApplied(colorOption: ColorOption) { SysUiStatsLogger(StyleEnums.THEME_COLOR_APPLIED) .setColorPreference(colorOption.index) .setColorVariant(colorOption.style.ordinal + 1) .log() } override fun logGridApplied(grid: GridOption) { SysUiStatsLogger(StyleEnums.PICKER_APPLIED).setLauncherGrid(grid.cols).log() SysUiStatsLogger(StyleEnums.GRID_APPLIED).setLauncherGrid(grid.getLauncherGridInt()).log() } override fun logClockApplied(clockId: String) { SysUiStatsLogger(StyleEnums.CLOCK_APPLIED).setClockPackageHash(getIdHashCode(clockId)).log() } override fun logClockColorApplied(seedColor: Int) { SysUiStatsLogger(StyleEnums.CLOCK_COLOR_APPLIED).setSeedColor(seedColor).log() } override fun logClockSizeApplied(@ClockSize clockSize: Int) { SysUiStatsLogger(StyleEnums.CLOCK_SIZE_APPLIED).setClockSize(clockSize).log() } override fun logThemedIconApplied(useThemeIcon: Boolean) { SysUiStatsLogger(StyleEnums.THEMED_ICON_APPLIED).setToggleOn(useThemeIcon).log() } override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) { SysUiStatsLogger(StyleEnums.LOCK_SCREEN_NOTIFICATION_APPLIED) .setToggleOn(showLockScreenNotifications) .log() } override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) { SysUiStatsLogger(StyleEnums.SHORTCUT_APPLIED) .setShortcut(shortcut) .setShortcutSlotId(shortcutSlotId) .log() } private fun getAppLaunchSource(launchSource: Intent): Int { return if (launchSource.hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { when (launchSource.getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { override fun logDarkThemeApplied(useDarkTheme: Boolean) { SysUiStatsLogger(StyleEnums.DARK_THEME_APPLIED).setToggleOn(useDarkTheme).log() } /** * The grid integer depends on the column and row numbers. For example: 4x5 is 405 13x37 is 1337 * The upper limit for the column / row count is 99. */ private fun GridOption.getLauncherGridInt(): Int { return cols * 100 + rows } private fun Intent.getAppLaunchSource(): Int { return if (hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { when (getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER -> SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS -> Loading @@ -142,17 +186,11 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : SysUiStatsLog .STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED } } else if (launchSource.hasExtra(LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH)) { } else if (hasExtra(LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH)) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH } else if ( launchSource.action != null && launchSource.action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER ) { } else if (action != null && action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION } else if ( launchSource.categories != null && launchSource.categories.contains(Intent.CATEGORY_LAUNCHER) ) { } else if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON } else { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED Loading src/com/android/customization/module/logging/ThemesUserEventLogger.kt +26 −7 Original line number Diff line number Diff line Loading @@ -15,19 +15,38 @@ */ package com.android.customization.module.logging import android.stats.style.StyleEnums import androidx.annotation.IntDef import com.android.customization.model.color.ColorOption import com.android.customization.model.grid.GridOption import com.android.wallpaper.module.logging.UserEventLogger /** Extension of [UserEventLogger] that adds ThemePicker specific events. */ interface ThemesUserEventLogger : UserEventLogger { /** * Logs the color usage while color is applied. * * @param action color applied action. * @param colorOption applied color option. */ fun logColorApplied(action: Int, colorOption: ColorOption) fun logThemeColorApplied(colorOption: ColorOption) fun logGridApplied(grid: GridOption) fun logClockApplied(clockId: String) fun logClockColorApplied(seedColor: Int) fun logClockSizeApplied(@ClockSize clockSize: Int) fun logThemedIconApplied(useThemeIcon: Boolean) fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) fun logShortcutApplied(shortcut: String, shortcutSlotId: String) fun logDarkThemeApplied(useDarkTheme: Boolean) @IntDef( StyleEnums.CLOCK_SIZE_UNSPECIFIED, StyleEnums.CLOCK_SIZE_DYNAMIC, StyleEnums.CLOCK_SIZE_SMALL, ) @Retention(AnnotationRetention.SOURCE) annotation class ClockSize } tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.kt +15 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,21 @@ import com.android.wallpaper.testing.TestUserEventLogger /** Test implementation of [ThemesUserEventLogger]. */ class TestThemesUserEventLogger : TestUserEventLogger(), ThemesUserEventLogger { override fun logColorApplied(action: Int, colorOption: ColorOption) {} override fun logThemeColorApplied(colorOption: ColorOption) {} override fun logGridApplied(grid: GridOption) {} override fun logClockApplied(clockId: String) {} override fun logClockColorApplied(seedColor: Int) {} override fun logClockSizeApplied(clockSize: Int) {} override fun logThemedIconApplied(useThemeIcon: Boolean) {} override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) {} override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) {} override fun logDarkThemeApplied(useDarkTheme: Boolean) {} } Loading
src/com/android/customization/module/logging/StatsLogUserEventLogger.kt +65 −27 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.text.TextUtils import com.android.customization.model.color.ColorOption import com.android.customization.model.grid.GridOption import com.android.customization.module.SysUiStatsLogger import com.android.customization.module.logging.ThemesUserEventLogger.ClockSize import com.android.systemui.shared.system.SysUiStatsLog import com.android.wallpaper.module.WallpaperPersister.DEST_BOTH import com.android.wallpaper.module.WallpaperPersister.DEST_HOME_SCREEN Loading @@ -37,18 +38,6 @@ import com.android.wallpaper.util.LaunchSourceUtils class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : NoOpUserEventLogger(), ThemesUserEventLogger { override fun logAppLaunched(launchSource: Intent) { SysUiStatsLogger(SysUiStatsLog.STYLE_UICHANGED__ACTION__APP_LAUNCHED) .setLaunchedPreference(getAppLaunchSource(launchSource)) .log() } override fun logActionClicked(collectionId: String, actionLabelResId: Int) { SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE) .setWallpaperCategoryHash(getIdHashCode(collectionId)) .log() } override fun logSnapshot() { SysUiStatsLogger(StyleEnums.SNAPSHOT) .setWallpaperCategoryHash(preferences.getHomeCategoryHash()) Loading @@ -59,6 +48,12 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : .log() } override fun logAppLaunched(launchSource: Intent) { SysUiStatsLogger(StyleEnums.APP_LAUNCHED) .setLaunchedPreference(launchSource.getAppLaunchSource()) .log() } override fun logWallpaperApplied( collectionId: String?, wallpaperId: String?, Loading Loading @@ -114,20 +109,69 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : .log() } override fun logColorApplied(action: Int, colorOption: ColorOption) { SysUiStatsLogger(action) override fun logResetApplied() { SysUiStatsLogger(StyleEnums.RESET_APPLIED).log() } override fun logWallpaperExploreButtonClicked() { SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE).log() } override fun logThemeColorApplied(colorOption: ColorOption) { SysUiStatsLogger(StyleEnums.THEME_COLOR_APPLIED) .setColorPreference(colorOption.index) .setColorVariant(colorOption.style.ordinal + 1) .log() } override fun logGridApplied(grid: GridOption) { SysUiStatsLogger(StyleEnums.PICKER_APPLIED).setLauncherGrid(grid.cols).log() SysUiStatsLogger(StyleEnums.GRID_APPLIED).setLauncherGrid(grid.getLauncherGridInt()).log() } override fun logClockApplied(clockId: String) { SysUiStatsLogger(StyleEnums.CLOCK_APPLIED).setClockPackageHash(getIdHashCode(clockId)).log() } override fun logClockColorApplied(seedColor: Int) { SysUiStatsLogger(StyleEnums.CLOCK_COLOR_APPLIED).setSeedColor(seedColor).log() } override fun logClockSizeApplied(@ClockSize clockSize: Int) { SysUiStatsLogger(StyleEnums.CLOCK_SIZE_APPLIED).setClockSize(clockSize).log() } override fun logThemedIconApplied(useThemeIcon: Boolean) { SysUiStatsLogger(StyleEnums.THEMED_ICON_APPLIED).setToggleOn(useThemeIcon).log() } override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) { SysUiStatsLogger(StyleEnums.LOCK_SCREEN_NOTIFICATION_APPLIED) .setToggleOn(showLockScreenNotifications) .log() } override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) { SysUiStatsLogger(StyleEnums.SHORTCUT_APPLIED) .setShortcut(shortcut) .setShortcutSlotId(shortcutSlotId) .log() } private fun getAppLaunchSource(launchSource: Intent): Int { return if (launchSource.hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { when (launchSource.getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { override fun logDarkThemeApplied(useDarkTheme: Boolean) { SysUiStatsLogger(StyleEnums.DARK_THEME_APPLIED).setToggleOn(useDarkTheme).log() } /** * The grid integer depends on the column and row numbers. For example: 4x5 is 405 13x37 is 1337 * The upper limit for the column / row count is 99. */ private fun GridOption.getLauncherGridInt(): Int { return cols * 100 + rows } private fun Intent.getAppLaunchSource(): Int { return if (hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { when (getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) { LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER -> SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS -> Loading @@ -142,17 +186,11 @@ class StatsLogUserEventLogger(private val preferences: WallpaperPreferences) : SysUiStatsLog .STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED } } else if (launchSource.hasExtra(LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH)) { } else if (hasExtra(LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH)) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH } else if ( launchSource.action != null && launchSource.action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER ) { } else if (action != null && action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION } else if ( launchSource.categories != null && launchSource.categories.contains(Intent.CATEGORY_LAUNCHER) ) { } else if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON } else { SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED Loading
src/com/android/customization/module/logging/ThemesUserEventLogger.kt +26 −7 Original line number Diff line number Diff line Loading @@ -15,19 +15,38 @@ */ package com.android.customization.module.logging import android.stats.style.StyleEnums import androidx.annotation.IntDef import com.android.customization.model.color.ColorOption import com.android.customization.model.grid.GridOption import com.android.wallpaper.module.logging.UserEventLogger /** Extension of [UserEventLogger] that adds ThemePicker specific events. */ interface ThemesUserEventLogger : UserEventLogger { /** * Logs the color usage while color is applied. * * @param action color applied action. * @param colorOption applied color option. */ fun logColorApplied(action: Int, colorOption: ColorOption) fun logThemeColorApplied(colorOption: ColorOption) fun logGridApplied(grid: GridOption) fun logClockApplied(clockId: String) fun logClockColorApplied(seedColor: Int) fun logClockSizeApplied(@ClockSize clockSize: Int) fun logThemedIconApplied(useThemeIcon: Boolean) fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) fun logShortcutApplied(shortcut: String, shortcutSlotId: String) fun logDarkThemeApplied(useDarkTheme: Boolean) @IntDef( StyleEnums.CLOCK_SIZE_UNSPECIFIED, StyleEnums.CLOCK_SIZE_DYNAMIC, StyleEnums.CLOCK_SIZE_SMALL, ) @Retention(AnnotationRetention.SOURCE) annotation class ClockSize }
tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.kt +15 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,21 @@ import com.android.wallpaper.testing.TestUserEventLogger /** Test implementation of [ThemesUserEventLogger]. */ class TestThemesUserEventLogger : TestUserEventLogger(), ThemesUserEventLogger { override fun logColorApplied(action: Int, colorOption: ColorOption) {} override fun logThemeColorApplied(colorOption: ColorOption) {} override fun logGridApplied(grid: GridOption) {} override fun logClockApplied(clockId: String) {} override fun logClockColorApplied(seedColor: Int) {} override fun logClockSizeApplied(clockSize: Int) {} override fun logThemedIconApplied(useThemeIcon: Boolean) {} override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) {} override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) {} override fun logDarkThemeApplied(useDarkTheme: Boolean) {} }