summaryrefslogtreecommitdiffstats
path: root/src/com/android/customization/module
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2019-07-17 00:08:04 -0700
committerHyunyoung Song <hyunyoungs@google.com>2019-07-18 04:32:16 +0000
commit6da5b98055c42d5bb4ad45aaf8d08a774f430033 (patch)
treeb3b925f996c02d558d2c4fca2112d454f4c4b36a /src/com/android/customization/module
parent8ae0fc78185351e1649b48c7cb8d7b28b157dae0 (diff)
downloadandroid_packages_apps_ThemePicker-6da5b98055c42d5bb4ad45aaf8d08a774f430033.tar.gz
android_packages_apps_ThemePicker-6da5b98055c42d5bb4ad45aaf8d08a774f430033.tar.bz2
android_packages_apps_ThemePicker-6da5b98055c42d5bb4ad45aaf8d08a774f430033.zip
Make ThemePicker unbundled and not crash when sideloaded
Bug: 136199516 1. source: qt-r1-dev branch 2. command: stats-log-api-gen --java WallpaperStatsLog.java --module style --javaPackage com.android.customization.module --javaClass "WallpaperStatsLog" Change-Id: Ibddba41ccc4922944262df739c621e99aa39f3cb
Diffstat (limited to 'src/com/android/customization/module')
-rw-r--r--src/com/android/customization/module/StatsLogUserEventLogger.java25
-rw-r--r--src/com/android/customization/module/WallpaperStatsLog.java147
2 files changed, 160 insertions, 12 deletions
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
index b77d7dc..37c64ac 100644
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ b/src/com/android/customization/module/StatsLogUserEventLogger.java
@@ -39,32 +39,33 @@ import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY
public class StatsLogUserEventLogger extends NoOpUserEventLogger implements ThemesUserEventLogger {
private static final String TAG = "StatsLogUserEventLogger";
+ private static final int CODE = 179;
@Override
public void logResumed(boolean provisioned, boolean wallpaper) {
- StatsLogCompat.write(StyleEnums.ONRESUME, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ WallpaperStatsLog.write(CODE, StyleEnums.ONRESUME, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
@Override
public void logStopped() {
- StatsLogCompat.write(StyleEnums.ONSTOP, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ WallpaperStatsLog.write(CODE, StyleEnums.ONSTOP, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
@Override
public void logActionClicked(String collectionId, int actionLabelResId) {
- StatsLogCompat.write(StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0, collectionId.hashCode(),
+ WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0, collectionId.hashCode(),
0, 0, 0);
}
@Override
public void logIndividualWallpaperSelected(String collectionId) {
- StatsLogCompat.write(StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0, 0,
+ WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0, 0,
collectionId.hashCode(), 0, 0);
}
@Override
public void logCategorySelected(String collectionId) {
- StatsLogCompat.write(StyleEnums.WALLPAPER_SELECT,
+ WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_SELECT,
0, 0, 0, 0, 0,
collectionId.hashCode(),
0, 0, 0);
@@ -72,7 +73,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logWallpaperSet(String collectionId, @Nullable String wallpaperId) {
- StatsLogCompat.write(StyleEnums.WALLPAPER_SELECT,
+ WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_SELECT,
0, 0, 0, 0, 0,
collectionId.hashCode(),
0, 0, 0);
@@ -86,7 +87,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
- StatsLogCompat.write(StyleEnums.PICKER_SELECT,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
@@ -95,7 +96,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
- StatsLogCompat.write(StyleEnums.PICKER_APPLIED,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
@@ -104,7 +105,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logClockSelected(Clockface clock) {
- StatsLogCompat.write(StyleEnums.PICKER_SELECT,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
0, 0, 0,
Objects.hashCode(clock.getId()),
0, 0, 0, 0, 0);
@@ -112,7 +113,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logClockApplied(Clockface clock) {
- StatsLogCompat.write(StyleEnums.PICKER_APPLIED,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
0, 0, 0,
Objects.hashCode(clock.getId()),
0, 0, 0, 0, 0);
@@ -120,7 +121,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logGridSelected(GridOption grid) {
- StatsLogCompat.write(StyleEnums.PICKER_SELECT,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
0, 0, 0, 0,
grid.cols,
0, 0, 0, 0);
@@ -128,7 +129,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them
@Override
public void logGridApplied(GridOption grid) {
- StatsLogCompat.write(StyleEnums.PICKER_APPLIED,
+ WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
0, 0, 0, 0,
grid.cols,
0, 0, 0, 0);
diff --git a/src/com/android/customization/module/WallpaperStatsLog.java b/src/com/android/customization/module/WallpaperStatsLog.java
new file mode 100644
index 0000000..9f5761f
--- /dev/null
+++ b/src/com/android/customization/module/WallpaperStatsLog.java
@@ -0,0 +1,147 @@
+// This file is autogenerated
+
+package com.android.customization.module;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import android.util.StatsLog;
+import android.os.SystemClock;
+
+import java.util.ArrayList;
+
+
+/**
+ * Utility class for logging statistics events.
+ */
+public class WallpaperStatsLog {
+ private static final int LOGGER_ENTRY_MAX_PAYLOAD = 4068;
+ private static final int MAX_EVENT_PAYLOAD = LOGGER_ENTRY_MAX_PAYLOAD - 4;
+ private static final byte INT_TYPE = 0;
+ private static final byte LONG_TYPE = 1;
+ private static final byte STRING_TYPE = 2;
+ private static final byte LIST_TYPE = 3;
+ private static final byte FLOAT_TYPE = 4;
+ private static final int INT_TYPE_SIZE = 5;
+ private static final int FLOAT_TYPE_SIZE = 5;
+ private static final int LONG_TYPE_SIZE = 9;
+ private static final int STRING_TYPE_OVERHEAD = 5;
+ private static final int LIST_TYPE_OVERHEAD = 2;
+ // Constants for atom codes.
+
+ /**
+ * StyleUIChanged style_ui_changed<br>
+ * Usage: StatsLog.write(StatsLog.STYLE_UI_CHANGED, int action, int color_package_hash, int font_package_hash, int shape_package_hash, int clock_package_hash, int launcher_grid, int wallpaper_category_hash, int wallpaper_id_hash, int color_preference, int location_preference);<br>
+ */
+ public static final int STYLE_UI_CHANGED = 179;
+
+ // Constants for enum values.
+
+ // Values for StyleUIChanged.action
+ public static final int STYLE_UICHANGED__ACTION__DEFAULT_ACTION = 0;
+ public static final int STYLE_UICHANGED__ACTION__ONRESUME = 1;
+ public static final int STYLE_UICHANGED__ACTION__ONSTOP = 2;
+ public static final int STYLE_UICHANGED__ACTION__PICKER_SELECT = 3;
+ public static final int STYLE_UICHANGED__ACTION__PICKER_APPLIED = 4;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_OPEN_CATEGORY = 5;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_SELECT = 6;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_APPLIED = 7;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_EXPLORE = 8;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_DOWNLOAD = 9;
+ public static final int STYLE_UICHANGED__ACTION__WALLPAPER_REMOVE = 10;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_DOWNLOAD_SUCCESS = 11;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_DOWNLOAD_FAILED = 12;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_DOWNLOAD_CANCELLED = 13;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_DELETE_SUCCESS = 14;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_DELETE_FAILED = 15;
+ public static final int STYLE_UICHANGED__ACTION__LIVE_WALLPAPER_APPLIED = 16;
+
+ // Values for StyleUIChanged.location_preference
+ public static final int STYLE_UICHANGED__LOCATION_PREFERENCE__LOCATION_PREFERENCE_UNSPECIFIED = 0;
+ public static final int STYLE_UICHANGED__LOCATION_PREFERENCE__LOCATION_UNAVAILABLE = 1;
+ public static final int STYLE_UICHANGED__LOCATION_PREFERENCE__LOCATION_CURRENT = 2;
+ public static final int STYLE_UICHANGED__LOCATION_PREFERENCE__LOCATION_MANUAL = 3;
+
+ // Write methods
+ public static void write(int code, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10) {
+ // Initial overhead of the list, timestamp, and atom tag.
+ int needed = LIST_TYPE_OVERHEAD + LONG_TYPE_SIZE + INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ needed += INT_TYPE_SIZE;
+ if (needed > MAX_EVENT_PAYLOAD) {
+ return;
+ }
+ byte[] buff = new byte[needed];
+ int pos = 0;
+ buff[pos] = LIST_TYPE;
+ buff[pos + 1] = 12;
+ pos += LIST_TYPE_OVERHEAD;
+ long elapsedRealtime = SystemClock.elapsedRealtimeNanos();
+ buff[pos] = LONG_TYPE;
+ copyLong(buff, pos + 1, elapsedRealtime);
+ pos += LONG_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, code);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg1);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg2);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg3);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg4);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg5);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg6);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg7);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg8);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg9);
+ pos += INT_TYPE_SIZE;
+ buff[pos] = INT_TYPE;
+ copyInt(buff, pos + 1, arg10);
+ pos += INT_TYPE_SIZE;
+ StatsLog.writeRaw(buff, pos);
+ }
+
+ // Helper methods for copying primitives
+ private static void copyInt(byte[] buff, int pos, int val) {
+ buff[pos] = (byte) (val);
+ buff[pos + 1] = (byte) (val >> 8);
+ buff[pos + 2] = (byte) (val >> 16);
+ buff[pos + 3] = (byte) (val >> 24);
+ return;
+ }
+
+ private static void copyLong(byte[] buff, int pos, long val) {
+ buff[pos] = (byte) (val);
+ buff[pos + 1] = (byte) (val >> 8);
+ buff[pos + 2] = (byte) (val >> 16);
+ buff[pos + 3] = (byte) (val >> 24);
+ buff[pos + 4] = (byte) (val >> 32);
+ buff[pos + 5] = (byte) (val >> 40);
+ buff[pos + 6] = (byte) (val >> 48);
+ buff[pos + 7] = (byte) (val >> 56);
+ return;
+ }
+
+}