From 36ecb3de9d3c7a79ba463bf3b713e1eecfe85f4f Mon Sep 17 00:00:00 2001 From: Edgar Wang Date: Thu, 30 Apr 2020 01:12:18 +0800 Subject: [PATCH] Public logSettingsTileClick for log some widget in Settings Bug: 137559984 Test: robotest Change-Id: I0b3d425556df0d1a717e7a156d05d0157653fc01 --- .../MetricsFeatureProvider.java | 7 +++++- .../MetricsFeatureProviderTest.java | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java index 7ef080178a2fe..bd0b9e93b09da 100644 --- a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +++ b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java @@ -185,7 +185,12 @@ public class MetricsFeatureProvider { sourceMetricsCategory); } - private boolean logSettingsTileClick(String logKey, int sourceMetricsCategory) { + /** + * Logs an event when the setting key is clicked. + * + * @return true if the key is loggable, otherwise false + */ + public boolean logSettingsTileClick(String logKey, int sourceMetricsCategory) { if (TextUtils.isEmpty(logKey)) { // Not loggable return false; diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java index 204a93333d812..0e2a3cbbbd755 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java @@ -218,4 +218,29 @@ public class MetricsFeatureProviderTest { assertThat(mProvider.getAttribution(activity)).isEqualTo(100); } + + @Test + public void logSettingsTileClick_hasKey_shouldLog() { + final String key = "abc"; + final boolean loggable = mProvider.logSettingsTileClick(key, + MetricsEvent.SETTINGS_GESTURES); + + assertThat(loggable).isTrue(); + verify(mLogWriter).action( + MetricsEvent.SETTINGS_GESTURES, + MetricsEvent.ACTION_SETTINGS_TILE_CLICK, + SettingsEnums.PAGE_UNKNOWN, + key, + 0); + } + + @Test + public void logSettingsTileClick_keyEmpty_shouldNotLog() { + final String key = ""; + boolean loggable = mProvider.logSettingsTileClick(key, + MetricsEvent.SETTINGS_GESTURES); + + assertThat(loggable).isFalse(); + verifyNoMoreInteractions(mLogWriter); + } }