Loading core/java/android/util/FeatureFlagUtils.java +6 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +4 −0 Original line number Diff line number Diff line Loading @@ -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) Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +5 −0 Original line number Diff line number Diff line Loading @@ -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. */ Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +14 −6 Original line number Diff line number Diff line Loading @@ -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 * Loading Loading @@ -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(); Loading Loading @@ -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; } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java +8 −48 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading Loading
core/java/android/util/FeatureFlagUtils.java +6 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +4 −0 Original line number Diff line number Diff line Loading @@ -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) Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +5 −0 Original line number Diff line number Diff line Loading @@ -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. */ Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +14 −6 Original line number Diff line number Diff line Loading @@ -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 * Loading Loading @@ -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(); Loading Loading @@ -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; } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java +8 −48 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading