Merge "Support logging intents from Profile select dialog" into rvc-dev
This commit is contained in:
@@ -169,6 +169,22 @@ public class MetricsFeatureProvider {
|
|||||||
sourceMetricsCategory);
|
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) {
|
private boolean logSettingsTileClick(String logKey, int sourceMetricsCategory) {
|
||||||
if (TextUtils.isEmpty(logKey)) {
|
if (TextUtils.isEmpty(logKey)) {
|
||||||
// Not loggable
|
// Not loggable
|
||||||
|
|||||||
@@ -163,6 +163,38 @@ public class MetricsFeatureProviderTest {
|
|||||||
0);
|
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
|
@Test
|
||||||
public void getAttribution_noActivity_shouldReturnUnknown() {
|
public void getAttribution_noActivity_shouldReturnUnknown() {
|
||||||
assertThat(mProvider.getAttribution(null /* activity */))
|
assertThat(mProvider.getAttribution(null /* activity */))
|
||||||
|
|||||||
Reference in New Issue
Block a user