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

Commit 7a855201 authored by Jason Chiu's avatar Jason Chiu Committed by Automerger Merge Worker
Browse files

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

Merge "Support logging intents from Profile select dialog" into rvc-dev am: edc77996 am: 1ca135da

Change-Id: Iebdba206e88f552499371c8b7deac5b41f942b43
parents 09a800f3 1ca135da
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 */))