Add clicked event for metric log writer

- Add adb metric log flag
- Add clicked method in LogWriter

Bug: 243820251
Test: robotest & manual
Change-Id: I58f5a18a04e1ea65131579ecd89f062fb2f190de
This commit is contained in:
Edgar Wang
2022-08-25 03:30:45 +08:00
parent ac5cbb5ebe
commit c1c9d6f4f1
5 changed files with 37 additions and 54 deletions

View File

@@ -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;

View File

@@ -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)

View File

@@ -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.
*/

View File

@@ -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;
}
}

View File

@@ -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