Improve Task user event logging

Bug: 79539824
Bug: 79541772

(1) Added page index of the TASK that is being launched
(2) Covers all three cases of task launch (tap, swipe down, quick scrub)
UserEvent: action:FLING direction=DOWN
UserEvent:  Source child:TASK, packageHash=-1598699687, componentHash=1952702153, pageIdx=0

UserEvent: action:DRAGDROP
UserEvent:  Source child:TASK, packageHash=-744307622, componentHash=-515832044, pageIdx=4

(3) Avoid double logging (When onStop is called, it is not logged if
the cause of onStop is APP or TASK launch)

Change-Id: Ic5db7d6a640d43bfb5cd667b49e37dd0ed127d5c
This commit is contained in:
Hyunyoung Song
2018-05-15 21:46:51 -07:00
parent d9a1337b40
commit 1241e61a45
6 changed files with 44 additions and 29 deletions

View File

@@ -132,6 +132,7 @@ public class UserEventDispatcher {
private boolean mIsInLandscapeMode;
private String mUuidStr;
protected InstantAppResolver mInstantAppResolver;
private boolean mAppOrTaskLaunch;
// APP_ICON SHORTCUT WIDGET
// --------------------------------------------------------------
@@ -163,11 +164,13 @@ public class UserEventDispatcher {
fillIntentInfo(event.srcTarget[0], intent);
}
dispatchUserEvent(event, intent);
mAppOrTaskLaunch = true;
}
public void logActionTip(int actionType, int viewType) { }
public void logTaskLaunchOrDismiss(int action, int direction, ComponentKey componentKey) {
public void logTaskLaunchOrDismiss(int action, int direction, int taskIndex,
ComponentKey componentKey) {
LauncherEvent event = newLauncherEvent(newTouchAction(action), // TAP or SWIPE or FLING
newTarget(Target.Type.ITEM));
if (action == Action.Touch.SWIPE || action == Action.Touch.FLING) {
@@ -175,8 +178,10 @@ public class UserEventDispatcher {
event.action.dir = direction;
}
event.srcTarget[0].itemType = LauncherLogProto.ItemType.TASK;
event.srcTarget[0].pageIndex = taskIndex;
fillComponentInfo(event.srcTarget[0], componentKey.componentName);
dispatchUserEvent(event, null);
mAppOrTaskLaunch = true;
}
protected void fillIntentInfo(Target target, Intent intent) {
@@ -211,6 +216,11 @@ public class UserEventDispatcher {
public void logActionCommand(int command, Target srcTarget, Target dstTarget) {
LauncherEvent event = newLauncherEvent(newCommandAction(command), srcTarget);
if (command == Action.Command.STOP && mAppOrTaskLaunch) {
// Prevent double logging by skipping STOP when app or task has been launched.
return;
}
if (dstTarget != null) {
event.destTarget = new Target[1];
event.destTarget[0] = dstTarget;
@@ -405,6 +415,7 @@ public class UserEventDispatcher {
}
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
mAppOrTaskLaunch = false;
ev.isInLandscapeMode = mIsInLandscapeMode;
ev.isInMultiWindowMode = mIsInMultiWindowMode;
ev.elapsedContainerMillis = SystemClock.uptimeMillis() - mElapsedContainerMillis;
@@ -413,7 +424,8 @@ public class UserEventDispatcher {
if (!IS_VERBOSE) {
return;
}
String log = "\n\naction:" + LoggerUtils.getActionStr(ev.action);
String log = "\n-----------------------------------------------------"
+ "\naction:" + LoggerUtils.getActionStr(ev.action);
if (ev.srcTarget != null && ev.srcTarget.length > 0) {
log += "\n Source " + getTargetsStr(ev.srcTarget);
}