Support logging intents from Profile select dialog

Bug: 137559984
Test: robotest
Change-Id: Ibb8cf01eb0483b83d57542456198731f78a41b60
This commit is contained in:
Jason Chiu
2020-03-20 18:55:07 +08:00
parent f6f91b34f3
commit 39e7d17aeb
2 changed files with 48 additions and 0 deletions

View File

@@ -169,6 +169,22 @@ public class MetricsFeatureProvider {
sourceMetricsCategory);
}
/**
* Logs an event when the intent is started by Profile select dialog.
*
* @return true if the intent is loggable, otherwise false
*/
public boolean logStartedIntentWithProfile(Intent intent, int sourceMetricsCategory,
boolean isWorkProfile) {
if (intent == null) {
return false;
}
final ComponentName cn = intent.getComponent();
final String key = cn != null ? cn.flattenToString() : intent.getAction();
return logSettingsTileClick(key + (isWorkProfile ? "/work" : "/personal"),
sourceMetricsCategory);
}
private boolean logSettingsTileClick(String logKey, int sourceMetricsCategory) {
if (TextUtils.isEmpty(logKey)) {
// Not loggable

View File

@@ -163,6 +163,38 @@ public class MetricsFeatureProviderTest {
0);
}
@Test
public void logStartedIntentWithProfile_isPersonalProfile_shouldTagPersonal() {
final Intent intent = new Intent().setComponent(new ComponentName("pkg", "cls"));
final boolean loggable = mProvider.logStartedIntentWithProfile(intent,
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);
}
@Test
public void logStartedIntentWithProfile_isWorkProfile_shouldTagWork() {
final Intent intent = new Intent().setComponent(new ComponentName("pkg", "cls"));
final boolean loggable = mProvider.logStartedIntentWithProfile(intent,
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);
}
@Test
public void getAttribution_noActivity_shouldReturnUnknown() {
assertThat(mProvider.getAttribution(null /* activity */))