Add getUserEventLogger to LauncherCallbacks
b/26494415
Change-Id: I8abaaf1269c12435a523e31bf769991018ea5c02
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index fc828da..752567b 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -82,7 +82,6 @@
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
-import android.view.ViewStub;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
@@ -109,8 +108,10 @@
import com.android.launcher3.dragndrop.DragView;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
+import com.android.launcher3.logging.UserEventLogger;
import com.android.launcher3.model.WidgetsModel;
-import com.android.launcher3.userevent.Logger;
+import com.android.launcher3.logging.LoggerUtils;
+import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.LongArrayMap;
import com.android.launcher3.util.TestingUtils;
@@ -131,6 +132,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
/**
* Default launcher application.
@@ -366,7 +368,7 @@
}
private Stats mStats;
- private Logger mUserEventLogger;
+ private UserEventLogger mUserEventLogger;
public FocusIndicatorView mFocusHandler;
private boolean mRotationEnabled = false;
@@ -425,8 +427,8 @@
mDragController = new DragController(this);
mStateTransitionAnimation = new LauncherStateTransitionAnimation(this);
- mUserEventLogger = new Logger(this);
mStats = new Stats(this);
+ initLogger();
mAppWidgetManager = AppWidgetManagerCompat.getInstance(this);
@@ -536,7 +538,7 @@
private boolean mWorkspaceImportanceStored = false;
private boolean mHotseatImportanceStored = false;
private int mWorkspaceImportanceForAccessibility =
- View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
+ View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
private int mHotseatImportanceForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
@Override
@@ -632,7 +634,35 @@
public Stats getStats() {
return mStats;
}
- public Logger getLogger() {return mUserEventLogger; }
+
+ /**
+ * Logger object is a singleton and does not have to be coupled with the foreground activity.
+ * Since most user event logging is done on the UI, the object is retrieved from the
+ * callback for convenience.
+ */
+ private void initLogger() {
+ if (mLauncherCallbacks != null) {
+ mUserEventLogger = mLauncherCallbacks.getLogger();
+ }
+ if (mUserEventLogger == null) {
+ mUserEventLogger = new UserEventLogger() {
+ @Override
+ public void processEvent(LauncherLogProto.LauncherEvent ev) {
+ if (ev.action.touch == LauncherLogProto.Action.TAP && ev.srcTarget.itemType == LauncherLogProto.APP_ICON) {
+ Log.d(TAG, String.format(Locale.US, "action:%s target:%s\n\telapsed container %d ms session %d ms",
+ LoggerUtils.getActionStr(ev.action),
+ LoggerUtils.getTargetStr(ev.srcTarget),
+ ev.elapsedContainerMillis,
+ ev.elapsedSessionMillis));
+ }
+ }
+ };
+ }
+ }
+
+ public UserEventLogger getLogger() {
+ return mUserEventLogger;
+ }
public boolean isDraggingEnabled() {
// We prevent dragging when we are loading the workspace as it is possible to pick up a view
@@ -3302,7 +3332,6 @@
getWindow().getDecorView()
.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
- mUserEventLogger.resetElapsedContainerMillis();
return changed;
}