Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +4 −2 Original line number Diff line number Diff line Loading @@ -30,10 +30,12 @@ import com.android.internal.logging.nano.MetricsProto; public class EventLogWriter implements LogWriter { @Override public void visible(Context context, int source, int category) { public void visible(Context context, int source, int category, int latency) { final LogMaker logMaker = new LogMaker(category) .setType(MetricsProto.MetricsEvent.TYPE_OPEN) .addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source); .addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source) .addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, latency); MetricsLogger.action(logMaker); } Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ public interface LogWriter { /** * Logs a visibility event when view becomes visible. */ void visible(Context context, int source, int category); void visible(Context context, int source, int category, int latency); /** * Logs a visibility event when view becomes hidden. Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +9 −2 Original line number Diff line number Diff line Loading @@ -67,9 +67,16 @@ public class MetricsFeatureProvider { SettingsEnums.PAGE_UNKNOWN); } public void visible(Context context, int source, int category) { /** * Logs an event when target page is visible. * * @param source from this page id to target page * @param category the target page id * @param latency the latency of target page creation */ public void visible(Context context, int source, int category, int latency) { for (LogWriter writer : mLoggerWriters) { writer.visible(context, source, category); writer.visible(context, source, category, latency); } } Loading packages/SettingsLib/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixin.java +20 −7 Original line number Diff line number Diff line Loading @@ -23,15 +23,16 @@ import android.content.Intent; import android.os.SystemClock; import androidx.lifecycle.Lifecycle.Event; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.logging.nano.MetricsProto; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnAttach; /** * Logs visibility change of a fragment. */ public class VisibilityLoggerMixin implements LifecycleObserver { public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { private static final String TAG = "VisibilityLoggerMixin"; Loading @@ -39,24 +40,36 @@ public class VisibilityLoggerMixin implements LifecycleObserver { private MetricsFeatureProvider mMetricsFeature; private int mSourceMetricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN; private long mVisibleTimestamp; private long mTimestamp; public VisibilityLoggerMixin(int metricsCategory, MetricsFeatureProvider metricsFeature) { mMetricsCategory = metricsCategory; mMetricsFeature = metricsFeature; } @Override public void onAttach() { mTimestamp = SystemClock.elapsedRealtime(); } @OnLifecycleEvent(Event.ON_RESUME) public void onResume() { mVisibleTimestamp = SystemClock.elapsedRealtime(); if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory); if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } if (mTimestamp != 0L) { final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, elapse); } else { mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, 0); } } @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { mVisibleTimestamp = 0; mTimestamp = 0; if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.hidden(null /* context */, mMetricsCategory); } Loading packages/SettingsLib/src/com/android/settingslib/core/lifecycle/Lifecycle.java +4 −1 Original line number Diff line number Diff line Loading @@ -94,11 +94,14 @@ public class Lifecycle extends LifecycleRegistry { } } /** * Pass all onAttach event to {@link LifecycleObserver}. */ public void onAttach(Context context) { for (int i = 0, size = mObservers.size(); i < size; i++) { final LifecycleObserver observer = mObservers.get(i); if (observer instanceof OnAttach) { ((OnAttach) observer).onAttach(context); ((OnAttach) observer).onAttach(); } } } Loading Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/EventLogWriter.java +4 −2 Original line number Diff line number Diff line Loading @@ -30,10 +30,12 @@ import com.android.internal.logging.nano.MetricsProto; public class EventLogWriter implements LogWriter { @Override public void visible(Context context, int source, int category) { public void visible(Context context, int source, int category, int latency) { final LogMaker logMaker = new LogMaker(category) .setType(MetricsProto.MetricsEvent.TYPE_OPEN) .addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source); .addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source) .addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, latency); MetricsLogger.action(logMaker); } Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/LogWriter.java +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ public interface LogWriter { /** * Logs a visibility event when view becomes visible. */ void visible(Context context, int source, int category); void visible(Context context, int source, int category, int latency); /** * Logs a visibility event when view becomes hidden. Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +9 −2 Original line number Diff line number Diff line Loading @@ -67,9 +67,16 @@ public class MetricsFeatureProvider { SettingsEnums.PAGE_UNKNOWN); } public void visible(Context context, int source, int category) { /** * Logs an event when target page is visible. * * @param source from this page id to target page * @param category the target page id * @param latency the latency of target page creation */ public void visible(Context context, int source, int category, int latency) { for (LogWriter writer : mLoggerWriters) { writer.visible(context, source, category); writer.visible(context, source, category, latency); } } Loading
packages/SettingsLib/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixin.java +20 −7 Original line number Diff line number Diff line Loading @@ -23,15 +23,16 @@ import android.content.Intent; import android.os.SystemClock; import androidx.lifecycle.Lifecycle.Event; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.logging.nano.MetricsProto; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnAttach; /** * Logs visibility change of a fragment. */ public class VisibilityLoggerMixin implements LifecycleObserver { public class VisibilityLoggerMixin implements LifecycleObserver, OnAttach { private static final String TAG = "VisibilityLoggerMixin"; Loading @@ -39,24 +40,36 @@ public class VisibilityLoggerMixin implements LifecycleObserver { private MetricsFeatureProvider mMetricsFeature; private int mSourceMetricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN; private long mVisibleTimestamp; private long mTimestamp; public VisibilityLoggerMixin(int metricsCategory, MetricsFeatureProvider metricsFeature) { mMetricsCategory = metricsCategory; mMetricsFeature = metricsFeature; } @Override public void onAttach() { mTimestamp = SystemClock.elapsedRealtime(); } @OnLifecycleEvent(Event.ON_RESUME) public void onResume() { mVisibleTimestamp = SystemClock.elapsedRealtime(); if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory); if (mMetricsFeature == null || mMetricsCategory == METRICS_CATEGORY_UNKNOWN) { return; } if (mTimestamp != 0L) { final int elapse = (int) (SystemClock.elapsedRealtime() - mTimestamp); mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, elapse); } else { mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory, 0); } } @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { mVisibleTimestamp = 0; mTimestamp = 0; if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) { mMetricsFeature.hidden(null /* context */, mMetricsCategory); } Loading
packages/SettingsLib/src/com/android/settingslib/core/lifecycle/Lifecycle.java +4 −1 Original line number Diff line number Diff line Loading @@ -94,11 +94,14 @@ public class Lifecycle extends LifecycleRegistry { } } /** * Pass all onAttach event to {@link LifecycleObserver}. */ public void onAttach(Context context) { for (int i = 0, size = mObservers.size(); i < size; i++) { final LifecycleObserver observer = mObservers.get(i); if (observer instanceof OnAttach) { ((OnAttach) observer).onAttach(context); ((OnAttach) observer).onAttach(); } } } Loading