Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22c74a9a authored by Hyunyoung Song's avatar Hyunyoung Song
Browse files

Migrate WallpaperStatsLog.java to genrule inside Android.bp

Test: build success, logging verified
Bug: 147824671

Change-Id: I9abd57fa3a791167763109053dff44000d5bdcf0
parent 1d296b89
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ LOCAL_USE_AAPT2 := true
LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_ANDROID_LIBRARIES := WallpaperPicker2CommonDepsLib
LOCAL_STATIC_JAVA_LIBRARIES := styleprotosnano
LOCAL_STATIC_JAVA_LIBRARIES := styleprotosnano SystemUI-statsd
LOCAL_PROGUARD_ENABLED := disabled

LOCAL_PACKAGE_NAME := ThemePicker
+14 −13
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.customization.module;
import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED;

import android.stats.style.nano.StyleEnums;

@@ -26,6 +27,7 @@ import androidx.annotation.Nullable;
import com.android.customization.model.clock.Clockface;
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.NoOpUserEventLogger;

import java.util.Map;
@@ -39,33 +41,32 @@ import java.util.Objects;
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) {
        WallpaperStatsLog.write(CODE, StyleEnums.ONRESUME, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONRESUME, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    }

    @Override
    public void logStopped() {
        WallpaperStatsLog.write(CODE, StyleEnums.ONSTOP, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONSTOP, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    }

    @Override
    public void logActionClicked(String collectionId, int actionLabelResId) {
        WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0,
                collectionId.hashCode(), 0, 0, 0);
    }

    @Override
    public void logIndividualWallpaperSelected(String collectionId) {
        WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0, 0,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0, 0,
                collectionId.hashCode(), 0, 0);
    }

    @Override
    public void logCategorySelected(String collectionId) {
        WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_OPEN_CATEGORY,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_OPEN_CATEGORY,
                0, 0, 0, 0, 0,
                collectionId.hashCode(),
                0, 0, 0);
@@ -73,7 +74,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logWallpaperSet(String collectionId, @Nullable String wallpaperId) {
        WallpaperStatsLog.write(CODE, StyleEnums.WALLPAPER_APPLIED,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_APPLIED,
                0, 0, 0, 0, 0,
                collectionId.hashCode(),
                wallpaperId != null ? wallpaperId.hashCode() : 0,
@@ -88,7 +89,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
        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)),
@@ -97,7 +98,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
        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)),
@@ -106,7 +107,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logClockSelected(Clockface clock) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
                0, 0, 0,
                Objects.hashCode(clock.getId()),
                0, 0, 0, 0, 0);
@@ -114,7 +115,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logClockApplied(Clockface clock) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
                0, 0, 0,
                Objects.hashCode(clock.getId()),
                0, 0, 0, 0, 0);
@@ -122,7 +123,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logGridSelected(GridOption grid) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_SELECT,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
                0, 0, 0, 0,
                grid.cols,
                0, 0, 0, 0);
@@ -130,7 +131,7 @@ public class StatsLogUserEventLogger extends NoOpUserEventLogger implements Them

    @Override
    public void logGridApplied(GridOption grid) {
        WallpaperStatsLog.write(CODE, StyleEnums.PICKER_APPLIED,
        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
                0, 0, 0, 0,
                grid.cols,
                0, 0, 0, 0);
+0 −147
Original line number Diff line number Diff line
// 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;
    }

}