Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +6 −2 Original line number Diff line number Diff line Loading @@ -40,8 +40,12 @@ public class EventLogWriter implements LogWriter { } @Override public void hidden(Context context, int category) { MetricsLogger.hidden(context, category); public void hidden(Context context, int category, int visibleTime) { final LogMaker logMaker = new LogMaker(category) .setType(MetricsProto.MetricsEvent.TYPE_CLOSE) .addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, visibleTime); MetricsLogger.action(logMaker); } @Override Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ public interface LogWriter { /** * Logs a visibility event when view becomes hidden. */ void hidden(Context context, int category); void hidden(Context context, int category, int visibleTime); /** * Logs an user action. Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +8 −2 Original line number Diff line number Diff line Loading @@ -83,9 +83,15 @@ public class MetricsFeatureProvider { } } public void hidden(Context context, int category) { /** * Logs an event when target page is hidden. * * @param category the target page id * @param visibleTime the time spending on target page since being visible */ public void hidden(Context context, int category, int visibleTime) { for (LogWriter writer : mLoggerWriters) { writer.hidden(context, category); writer.hidden(context, category, visibleTime); } } Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixin.java +10 −7 Original line number Diff line number Diff line Loading @@ -40,7 +40,8 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { private MetricsFeatureProvider mMetricsFeature; private int mSourceMetricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN; private long mTimestamp; private long mCreationTimestamp; private long mVisibleTimestamp; public VisibilityLoggerMixin(int metricsCategory, MetricsFeatureProvider metricsFeature) { mMetricsCategory = metricsCategory; Loading @@ -49,7 +50,7 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { @Override public void onAttach() { mTimestamp = SystemClock.elapsedRealtime(); mCreationTimestamp = SystemClock.elapsedRealtime(); } @OnLifecycleEvent(Event.ON_RESUME) Loading @@ -57,8 +58,9 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } if (mTimestamp != 0L) { final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); mVisibleTimestamp = SystemClock.elapsedRealtime(); if (mCreationTimestamp != 0L) { final int elapse = (int) (mVisibleTimestamp - mCreationTimestamp); mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, elapse); } else { Loading @@ -69,9 +71,10 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { mTimestamp = 0; mCreationTimestamp = 0; if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.hidden(null /* context */, mMetricsCategory); final int elapse = (int) (SystemClock.elapsedRealtime() - mVisibleTimestamp); mMetricsFeature.hidden(null /* context */, mMetricsCategory, elapse); } } Loading @@ -84,7 +87,7 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); final int elapse = (int) (SystemClock.elapsedRealtime() - mCreationTimestamp); mMetricsFeature.action(METRICS_CATEGORY_UNKNOWN, action, mMetricsCategory, key, elapse); } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, times(1)) .hidden(nullable(Context.class), eq(TestInstrumentable.TEST_METRIC)); .hidden(nullable(Context.class), eq(TestInstrumentable.TEST_METRIC), anyInt()); } @Test Loading @@ -98,7 +98,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, never()) .hidden(nullable(Context.class), anyInt()); .hidden(nullable(Context.class), anyInt(), anyInt()); } @Test Loading @@ -109,7 +109,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, never()) .hidden(nullable(Context.class), anyInt()); .hidden(nullable(Context.class), anyInt(), anyInt()); } @Test Loading @@ -121,7 +121,7 @@ public class VisibilityLoggerMixinTest { verify(testActivity.mMetricsFeatureProvider, times(1)).visible(any(), anyInt(), anyInt(), anyInt()); ac.pause().stop().destroy(); verify(testActivity.mMetricsFeatureProvider, times(1)).hidden(any(), anyInt()); verify(testActivity.mMetricsFeatureProvider, times(1)).hidden(any(), anyInt(), anyInt()); } public static class TestActivity extends FragmentActivity { Loading Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +6 −2 Original line number Diff line number Diff line Loading @@ -40,8 +40,12 @@ public class EventLogWriter implements LogWriter { } @Override public void hidden(Context context, int category) { MetricsLogger.hidden(context, category); public void hidden(Context context, int category, int visibleTime) { final LogMaker logMaker = new LogMaker(category) .setType(MetricsProto.MetricsEvent.TYPE_CLOSE) .addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, visibleTime); MetricsLogger.action(logMaker); } @Override Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ public interface LogWriter { /** * Logs a visibility event when view becomes hidden. */ void hidden(Context context, int category); void hidden(Context context, int category, int visibleTime); /** * Logs an user action. Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +8 −2 Original line number Diff line number Diff line Loading @@ -83,9 +83,15 @@ public class MetricsFeatureProvider { } } public void hidden(Context context, int category) { /** * Logs an event when target page is hidden. * * @param category the target page id * @param visibleTime the time spending on target page since being visible */ public void hidden(Context context, int category, int visibleTime) { for (LogWriter writer : mLoggerWriters) { writer.hidden(context, category); writer.hidden(context, category, visibleTime); } } Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixin.java +10 −7 Original line number Diff line number Diff line Loading @@ -40,7 +40,8 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { private MetricsFeatureProvider mMetricsFeature; private int mSourceMetricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN; private long mTimestamp; private long mCreationTimestamp; private long mVisibleTimestamp; public VisibilityLoggerMixin(int metricsCategory, MetricsFeatureProvider metricsFeature) { mMetricsCategory = metricsCategory; Loading @@ -49,7 +50,7 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { @Override public void onAttach() { mTimestamp = SystemClock.elapsedRealtime(); mCreationTimestamp = SystemClock.elapsedRealtime(); } @OnLifecycleEvent(Event.ON_RESUME) Loading @@ -57,8 +58,9 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } if (mTimestamp != 0L) { final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); mVisibleTimestamp = SystemClock.elapsedRealtime(); if (mCreationTimestamp != 0L) { final int elapse = (int) (mVisibleTimestamp - mCreationTimestamp); mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, elapse); } else { Loading @@ -69,9 +71,10 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { mTimestamp = 0; mCreationTimestamp = 0; if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.hidden(null /* context */, mMetricsCategory); final int elapse = (int) (SystemClock.elapsedRealtime() - mVisibleTimestamp); mMetricsFeature.hidden(null /* context */, mMetricsCategory, elapse); } } Loading @@ -84,7 +87,7 @@ public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); final int elapse = (int) (SystemClock.elapsedRealtime() - mCreationTimestamp); mMetricsFeature.action(METRICS_CATEGORY_UNKNOWN, action, mMetricsCategory, key, elapse); } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, times(1)) .hidden(nullable(Context.class), eq(TestInstrumentable.TEST_METRIC)); .hidden(nullable(Context.class), eq(TestInstrumentable.TEST_METRIC), anyInt()); } @Test Loading @@ -98,7 +98,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, never()) .hidden(nullable(Context.class), anyInt()); .hidden(nullable(Context.class), anyInt(), anyInt()); } @Test Loading @@ -109,7 +109,7 @@ public class VisibilityLoggerMixinTest { mMixin.onPause(); verify(mMetricsFeature, never()) .hidden(nullable(Context.class), anyInt()); .hidden(nullable(Context.class), anyInt(), anyInt()); } @Test Loading @@ -121,7 +121,7 @@ public class VisibilityLoggerMixinTest { verify(testActivity.mMetricsFeatureProvider, times(1)).visible(any(), anyInt(), anyInt(), anyInt()); ac.pause().stop().destroy(); verify(testActivity.mMetricsFeatureProvider, times(1)).hidden(any(), anyInt()); verify(testActivity.mMetricsFeatureProvider, times(1)).hidden(any(), anyInt(), anyInt()); } public static class TestActivity extends FragmentActivity { Loading