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

Commit edc77996 authored by Jason Chiu's avatar Jason Chiu Committed by Android (Google) Code Review
Browse files

Merge "Support logging intents from Profile select dialog" into rvc-dev

parents aef65ab0 39e7d17a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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
+32 −0
Original line number Diff line number Diff line
@@ -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 */))