summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
authorJohn Pan <johnpan@google.com>2022-04-21 21:35:51 +0800
committerJohn Pan <johnpan@google.com>2022-05-25 08:26:52 +0000
commit9411d98950ae02a31643025a9c1b83c2101545ee (patch)
treed4277ca20bda520e42d3b88fb50c5a471a68bc80 /src/com/android
parent5677cd0a08162680a158ff94d7120c18eefcd57d (diff)
downloadThemePicker-9411d98950ae02a31643025a9c1b83c2101545ee.tar.gz
Refactor StatsLogUserEventLogger with SysUiStatsLogBuilder
Bug: 229954483 Test: Manual Change-Id: Ic60a673c3efc06418c71702dfdf3e7239b41b58c
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/customization/module/StatsLogUserEventLogger.java167
-rw-r--r--src/com/android/customization/module/SysUiStatsLogger.kt136
2 files changed, 226 insertions, 77 deletions
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
index 216395d3..590c6f1e 100644
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ b/src/com/android/customization/module/StatsLogUserEventLogger.java
@@ -28,7 +28,6 @@ import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__
import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED;
import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH;
import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK;
import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER;
@@ -49,7 +48,6 @@ import com.android.customization.model.clock.Clockface;
import com.android.customization.model.color.ColorOption;
import com.android.customization.model.grid.GridOption;
import com.android.customization.model.theme.ThemeBundle;
-import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.wallpaper.module.Injector;
import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.module.NoOpUserEventLogger;
@@ -78,60 +76,67 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logAppLaunched(Intent launchSource) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, STYLE_UICHANGED__ACTION__APP_LAUNCHED,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, getAppLaunchSource(launchSource), 0, 0,
- 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(STYLE_UICHANGED__ACTION__APP_LAUNCHED)
+ .setLaunchedPreference(getAppLaunchSource(launchSource))
+ .log();
}
@Override
public void logResumed(boolean provisioned, boolean wallpaper) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONRESUME,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.ONRESUME)
+ .log();
}
@Override
public void logStopped() {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONSTOP,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.ONSTOP)
+ .log();
}
@Override
public void logActionClicked(String collectionId, int actionLabelResId) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0,
- getIdHashCode(collectionId), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.WALLPAPER_EXPLORE)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .log();
}
@Override
public void logIndividualWallpaperSelected(String collectionId) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0,
- getIdHashCode(collectionId), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.WALLPAPER_SELECT)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .log();
}
@Override
public void logCategorySelected(String collectionId) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_OPEN_CATEGORY,
- 0, 0, 0, 0, 0,
- getIdHashCode(collectionId),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.WALLPAPER_OPEN_CATEGORY)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .log();
}
@Override
public void logLiveWallpaperInfoSelected(String collectionId, @Nullable String wallpaperId) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.LIVE_WALLPAPER_INFO_SELECT,
- 0, 0, 0, 0, 0,
- getIdHashCode(collectionId),
- getIdHashCode(wallpaperId),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.LIVE_WALLPAPER_INFO_SELECT)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .setWallpaperIdHash(getIdHashCode(wallpaperId))
+ .log();
}
@Override
public void logLiveWallpaperCustomizeSelected(String collectionId,
@Nullable String wallpaperId) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.LIVE_WALLPAPER_CUSTOMIZE_SELECT,
- 0, 0, 0, 0, 0,
- getIdHashCode(collectionId),
- getIdHashCode(wallpaperId),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger().setAction(StyleEnums.LIVE_WALLPAPER_CUSTOMIZE_SELECT)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .setWallpaperIdHash(getIdHashCode(wallpaperId))
+ .log();
+
}
@Override
@@ -146,35 +151,36 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
String lockWallpaperId = isLockWallpaperSet ? mPreferences.getLockWallpaperRemoteId()
: homeWallpaperId;
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.SNAPSHOT,
- 0, 0, 0, 0, 0,
- getIdHashCode(homeCollectionId),
- getIdHashCode(homeWallpaperId),
- 0, 0, 0, 0, 0, 0,
- getIdHashCode(lockCollectionId),
- getIdHashCode(lockWallpaperId),
- mPreferences.getFirstLaunchDateSinceSetup(),
- mPreferences.getFirstWallpaperApplyDateSinceSetup(),
- mPreferences.getAppLaunchCount(),
- 0);
+ new SysUiStatsLogger().setAction(StyleEnums.SNAPSHOT)
+ .setWallpaperCategoryHash(getIdHashCode(homeCollectionId))
+ .setWallpaperIdHash(getIdHashCode(homeWallpaperId))
+ .setLockWallpaperCategoryHash(getIdHashCode(lockCollectionId))
+ .setLockWallpaperIdHash(getIdHashCode(lockWallpaperId))
+ .setFirstLaunchDateSinceSetup(mPreferences.getFirstLaunchDateSinceSetup())
+ .setFirstWallpaperApplyDateSinceSetup(
+ mPreferences.getFirstWallpaperApplyDateSinceSetup())
+ .setAppLaunchCount(mPreferences.getAppLaunchCount())
+ .log();
}
@Override
public void logWallpaperSet(String collectionId, @Nullable String wallpaperId,
@Nullable String effects) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_APPLIED,
- 0, 0, 0, 0, 0,
- getIdHashCode(collectionId),
- getIdHashCode(wallpaperId),
- 0, 0, 0, 0, 0, effects != null ? effects.hashCode() : 0,
- 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.WALLPAPER_APPLIED)
+ .setWallpaperCategoryHash(getIdHashCode(collectionId))
+ .setWallpaperIdHash(getIdHashCode(wallpaperId))
+ .setEffectIdHash(getIdHashCode(effects))
+ .log();
}
@Override
public void logEffectApply(String effect, @EffectStatus int status) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_EFFECT_APPLIED,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, status, effect != null ? effect.hashCode() : 0,
- 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.WALLPAPER_EFFECT_APPLIED)
+ .setEffectPreference(status)
+ .setEffectIdHash(getIdHashCode(effect))
+ .log();
}
@Nullable
@@ -185,60 +191,67 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
- Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
- Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
- Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_SELECT)
+ .setColorPackageHash(
+ Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
+ .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
+ .setShapePackageHash(
+ Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
+ .log();
}
@Override
public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
- Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
- Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
- Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_APPLIED)
+ .setColorPackageHash(
+ Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
+ .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
+ .setShapePackageHash(
+ Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
+ .log();
}
@Override
public void logColorApplied(int action, ColorOption colorOption) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, action,
- 0, 0, 0, 0, 0, 0, 0,
- colorOption.getIndex(),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, colorOption.getStyle().ordinal() + 1);
+ new SysUiStatsLogger()
+ .setAction(action)
+ .setColorPreference(colorOption.getIndex())
+ .setColorVariant(colorOption.getStyle().ordinal() + 1)
+ .log();
}
@Override
public void logClockSelected(Clockface clock) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
- 0, 0, 0,
- Objects.hashCode(clock.getId()),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_SELECT)
+ .setClockPackageHash(Objects.hashCode(clock.getId()))
+ .log();
}
@Override
public void logClockApplied(Clockface clock) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
- 0, 0, 0,
- Objects.hashCode(clock.getId()),
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_APPLIED)
+ .setClockPackageHash(Objects.hashCode(clock.getId()))
+ .log();
}
@Override
public void logGridSelected(GridOption grid) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
- 0, 0, 0, 0,
- grid.cols,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_SELECT)
+ .setLauncherGrid(grid.cols)
+ .log();
}
@Override
public void logGridApplied(GridOption grid) {
- SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
- 0, 0, 0, 0,
- grid.cols,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ new SysUiStatsLogger()
+ .setAction(StyleEnums.PICKER_APPLIED)
+ .setLauncherGrid(grid.cols)
+ .log();
}
private int getAppLaunchSource(Intent launchSource) {
diff --git a/src/com/android/customization/module/SysUiStatsLogger.kt b/src/com/android/customization/module/SysUiStatsLogger.kt
new file mode 100644
index 00000000..eb3bcc04
--- /dev/null
+++ b/src/com/android/customization/module/SysUiStatsLogger.kt
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.module
+
+import android.stats.style.StyleEnums
+import com.android.systemui.shared.system.SysUiStatsLog
+import com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED
+
+/**
+ * The builder for [SysUiStatsLog].
+ */
+class SysUiStatsLogger {
+
+ private var atom = STYLE_UI_CHANGED
+ private var action = StyleEnums.DEFAULT_ACTION
+ private var colorPackageHash = 0
+ private var fontPackageHash = 0
+ private var shapePackageHash = 0
+ private var clockPackageHash = 0
+ private var launcherGrid = 0
+ private var wallpaperCategoryHash = 0
+ private var wallpaperIdHash = 0
+ private var colorPreference = 0
+ private var locationPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+ private var datePreference = StyleEnums.DATE_PREFERENCE_UNSPECIFIED
+ private var launchedPreference = StyleEnums.LAUNCHED_PREFERENCE_UNSPECIFIED
+ private var effectPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+ private var effectIdHash = 0
+ private var lockWallpaperCategoryHash = 0
+ private var lockWallpaperIdHash = 0
+ private var firstLaunchDateSinceSetup = 0
+ private var firstWallpaperApplyDateSinceSetup = 0
+ private var appLaunchCount = 0
+ private var colorVariant = 0
+
+ fun setAction(action: Int) =
+ apply { this.action = action }
+
+ fun setColorPackageHash(color_package_hash: Int) =
+ apply { this.colorPackageHash = color_package_hash }
+
+ fun setFontPackageHash(font_package_hash: Int) =
+ apply { this.fontPackageHash = font_package_hash }
+
+ fun setShapePackageHash(shape_package_hash: Int) =
+ apply { this.shapePackageHash = shape_package_hash }
+
+ fun setClockPackageHash(clock_package_hash: Int) =
+ apply { this.clockPackageHash = clock_package_hash }
+
+ fun setLauncherGrid(launcher_grid: Int) =
+ apply { this.launcherGrid = launcher_grid }
+
+ fun setWallpaperCategoryHash(wallpaper_category_hash: Int) =
+ apply { this.wallpaperCategoryHash = wallpaper_category_hash }
+
+ fun setWallpaperIdHash(wallpaper_id_hash: Int) =
+ apply { this.wallpaperIdHash = wallpaper_id_hash }
+
+ fun setColorPreference(color_preference: Int) =
+ apply { this.colorPreference = color_preference }
+
+ fun setLocationPreference(location_preference: Int) =
+ apply { this.locationPreference = location_preference }
+
+ fun setDatePreference(date_preference: Int) =
+ apply { this.datePreference = date_preference }
+
+ fun setLaunchedPreference(launched_preference: Int) =
+ apply { this.launchedPreference = launched_preference }
+
+ fun setEffectPreference(effect_preference: Int) =
+ apply { this.effectPreference = effect_preference }
+
+ fun setEffectIdHash(effect_id_hash: Int) =
+ apply { this.effectIdHash = effect_id_hash }
+
+ fun setLockWallpaperCategoryHash(lock_wallpaper_category_hash: Int) =
+ apply { this.lockWallpaperCategoryHash = lock_wallpaper_category_hash }
+
+ fun setLockWallpaperIdHash(lock_wallpaper_id_hash: Int) =
+ apply { this.lockWallpaperIdHash = lock_wallpaper_id_hash }
+
+ fun setFirstLaunchDateSinceSetup(first_launch_date_since_setup: Int) =
+ apply { this.firstLaunchDateSinceSetup = first_launch_date_since_setup }
+
+ fun setFirstWallpaperApplyDateSinceSetup(first_wallpaper_apply_date_since_setup: Int) =
+ apply {
+ this.firstWallpaperApplyDateSinceSetup = first_wallpaper_apply_date_since_setup
+ }
+
+ fun setAppLaunchCount(app_launch_count: Int) =
+ apply { this.appLaunchCount = app_launch_count }
+
+ fun setColorVariant(color_variant: Int) =
+ apply { this.colorVariant = color_variant }
+
+ fun log() {
+ SysUiStatsLog.write(
+ atom,
+ action,
+ colorPackageHash,
+ fontPackageHash,
+ shapePackageHash,
+ clockPackageHash,
+ launcherGrid,
+ wallpaperCategoryHash,
+ wallpaperIdHash,
+ colorPreference,
+ locationPreference,
+ datePreference,
+ launchedPreference,
+ effectPreference,
+ effectIdHash,
+ lockWallpaperCategoryHash,
+ lockWallpaperIdHash,
+ firstLaunchDateSinceSetup,
+ firstWallpaperApplyDateSinceSetup,
+ appLaunchCount,
+ colorVariant
+ )
+ }
+} \ No newline at end of file