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

Commit be9f4bba authored by Edgar Wang's avatar Edgar Wang Committed by Android (Google) Code Review
Browse files

Merge "Add clicked event for metric log writer"

parents a96f4784 c1c9d6f4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -122,6 +122,11 @@ public class FeatureFlagUtils {
     */
    public static final String SETTINGS_ENABLE_SPA = "settings_enable_spa";

    /** Flag to enable/disable adb log metrics
     *  @hide
     */
    public static final String SETTINGS_ADB_METRICS_WRITER = "settings_adb_metrics_writer";

    private static final Map<String, String> DEFAULT_FLAGS;

    static {
@@ -155,6 +160,7 @@ public class FeatureFlagUtils {
        DEFAULT_FLAGS.put(SETTINGS_ACCESSIBILITY_SIMPLE_CURSOR, "false");
        DEFAULT_FLAGS.put(SETTINGS_NEW_KEYBOARD_UI, "false");
        DEFAULT_FLAGS.put(SETTINGS_ENABLE_SPA, "false");
        DEFAULT_FLAGS.put(SETTINGS_ADB_METRICS_WRITER, "false");
    }

    private static final Set<String> PERSISTENT_FLAGS;
+4 −0
Original line number Diff line number Diff line
@@ -48,6 +48,10 @@ public class EventLogWriter implements LogWriter {
        MetricsLogger.action(logMaker);
    }

    @Override
    public void clicked(int sourceCategory, String key) {
    }

    @Override
    public void action(Context context, int category, Pair<Integer, Object>... taggedData) {
        final LogMaker logMaker = new LogMaker(category)
+5 −0
Original line number Diff line number Diff line
@@ -33,6 +33,11 @@ public interface LogWriter {
     */
    void hidden(Context context, int category, int visibleTime);

    /**
     * Logs a click event when user click item.
     */
    void clicked(int category, String key);

    /**
     * Logs an user action.
     */
+14 −6
Original line number Diff line number Diff line
@@ -95,6 +95,18 @@ public class MetricsFeatureProvider {
        }
    }

    /**
     * Logs an event when user click item.
     *
     * @param category the target page id
     * @param key the key id that user clicked
     */
    public void clicked(int category, String key) {
        for (LogWriter writer : mLoggerWriters) {
            writer.clicked(category, key);
        }
    }

    /**
     * Logs a simple action without page id or attribution
     *
@@ -138,7 +150,7 @@ public class MetricsFeatureProvider {
    }

    public int getMetricsCategory(Object object) {
        if (object == null || !(object instanceof Instrumentable)) {
        if (!(object instanceof Instrumentable)) {
            return MetricsEvent.VIEW_UNKNOWN;
        }
        return ((Instrumentable) object).getMetricsCategory();
@@ -198,11 +210,7 @@ public class MetricsFeatureProvider {
            // Not loggable
            return false;
        }
        action(sourceMetricsCategory,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                logKey,
                0);
        clicked(sourceMetricsCategory, logKey);
        return true;
    }
}
+8 −48
Original line number Diff line number Diff line
@@ -80,12 +80,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                key,
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, key);
    }

    @Test
@@ -98,12 +93,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                Intent.ACTION_ASSIST,
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, Intent.ACTION_ASSIST);
    }

    @Test
@@ -116,12 +106,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                fragment,
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, fragment);
    }

    @Test
@@ -140,12 +125,7 @@ public class MetricsFeatureProviderTest {
        final boolean loggable = mProvider.logStartedIntent(intent, MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                Intent.ACTION_ASSIST,
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, Intent.ACTION_ASSIST);
    }

    @Test
@@ -155,12 +135,7 @@ public class MetricsFeatureProviderTest {
        final boolean loggable = mProvider.logStartedIntent(intent, MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                "pkg/cls",
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, "pkg/cls");
    }

    @Test
@@ -171,12 +146,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES, false);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                "pkg/cls/personal",
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, "pkg/cls/personal");
    }

    @Test
@@ -187,12 +157,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES, true);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                "pkg/cls/work",
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, "pkg/cls/work");
    }

    @Test
@@ -226,12 +191,7 @@ public class MetricsFeatureProviderTest {
                MetricsEvent.SETTINGS_GESTURES);

        assertThat(loggable).isTrue();
        verify(mLogWriter).action(
                MetricsEvent.SETTINGS_GESTURES,
                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
                SettingsEnums.PAGE_UNKNOWN,
                key,
                0);
        verify(mLogWriter).clicked(MetricsEvent.SETTINGS_GESTURES, key);
    }

    @Test