onResume event should be logged (not twice but once)
Bug: 79541772 Change-Id: I5fe1271007e4579e1ec95d51c215ef48d0c6eedd
This commit is contained in:
@@ -155,6 +155,7 @@ message Action {
|
||||
CONFIRM = 4; // Indicates thata confirmation screen was accepted
|
||||
STOP = 5; // Indicates onStop() was called (screen time out, power off)
|
||||
RECENTS_BUTTON = 6; // Indicates that Recents button was pressed
|
||||
RESUME = 7; // Indicates onResume() was called
|
||||
}
|
||||
|
||||
optional Type type = 1;
|
||||
|
||||
@@ -102,9 +102,11 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
|
||||
|
||||
public final void close(boolean animate) {
|
||||
animate &= !Utilities.isPowerSaverPreventingAnimation(getContext());
|
||||
if (mIsOpen) {
|
||||
BaseActivity.fromContext(getContext()).getUserEventDispatcher()
|
||||
.resetElapsedContainerMillis("container closed");
|
||||
}
|
||||
handleClose(animate);
|
||||
BaseActivity.fromContext(getContext()).getUserEventDispatcher()
|
||||
.resetElapsedContainerMillis("container closed");
|
||||
mIsOpen = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ import android.graphics.Point;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Parcelable;
|
||||
import android.os.Process;
|
||||
import android.os.StrictMode;
|
||||
@@ -243,6 +244,10 @@ public class Launcher extends BaseDraggingActivity
|
||||
|
||||
private RotationHelper mRotationHelper;
|
||||
|
||||
|
||||
private final Handler mHandler = new Handler();
|
||||
private final Runnable mLogOnDelayedResume = this::logOnDelayedResume;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
if (DEBUG_STRICT_MODE) {
|
||||
@@ -727,10 +732,11 @@ public class Launcher extends BaseDraggingActivity
|
||||
if (mLauncherCallbacks != null) {
|
||||
mLauncherCallbacks.onStop();
|
||||
}
|
||||
mAppWidgetHost.setListenIfResumed(false);
|
||||
|
||||
getUserEventDispatcher().logActionCommand(Action.Command.STOP,
|
||||
mStateManager.getState().containerType, -1);
|
||||
|
||||
mAppWidgetHost.setListenIfResumed(false);
|
||||
|
||||
NotificationListener.removeNotificationsChangedListener();
|
||||
getStateManager().moveToRestState();
|
||||
|
||||
@@ -751,13 +757,23 @@ public class Launcher extends BaseDraggingActivity
|
||||
UiFactory.onStart(this);
|
||||
}
|
||||
|
||||
private void logOnDelayedResume() {
|
||||
if (hasBeenResumed()) {
|
||||
getUserEventDispatcher().logActionCommand(Action.Command.RESUME,
|
||||
mStateManager.getState().containerType, -1);
|
||||
getUserEventDispatcher().startSession();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
TraceHelper.beginSection("ON_RESUME");
|
||||
super.onResume();
|
||||
TraceHelper.partitionSection("ON_RESUME", "superCall");
|
||||
|
||||
getUserEventDispatcher().resetElapsedSessionMillis();
|
||||
mHandler.removeCallbacks(mLogOnDelayedResume);
|
||||
Utilities.postAsyncCallback(mHandler, mLogOnDelayedResume);
|
||||
|
||||
setOnResumeCallback(null);
|
||||
// Process any items that were added while Launcher was away.
|
||||
InstallShortcutReceiver.disableAndFlushInstallQueue(
|
||||
|
||||
@@ -125,6 +125,7 @@ public class UserEventDispatcher {
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean mSessionStarted;
|
||||
private long mElapsedContainerMillis;
|
||||
private long mElapsedSessionMillis;
|
||||
private long mActionDurationMillis;
|
||||
@@ -216,9 +217,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 (command == Action.Command.STOP) {
|
||||
if (mAppOrTaskLaunch || !mSessionStarted) {
|
||||
mSessionStarted = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (dstTarget != null) {
|
||||
@@ -405,7 +408,8 @@ public class UserEventDispatcher {
|
||||
|
||||
}
|
||||
|
||||
public final void resetElapsedSessionMillis() {
|
||||
public final void startSession() {
|
||||
mSessionStarted = true;
|
||||
mElapsedSessionMillis = SystemClock.uptimeMillis();
|
||||
mElapsedContainerMillis = SystemClock.uptimeMillis();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user