Add app start source info of apps launched from launcher
Bug: 166614700
Test: Enable statsd log: "adb shell cmd stats print-logs"
adb logcat | grep statsd | grep "(48)"
The line may contain 0x100000->1[I] 0x110000->10[I]
that means 1=from launcher and 10=latency 10ms.
Change-Id: Iddaff7066b66e241ba58ec87129ddbe2c531dc7e
diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
index 68111d2..bc3b4ab 100644
--- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
@@ -24,10 +24,12 @@
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
+import android.app.ActivityOptions;
import android.content.Intent;
import android.content.IntentSender;
import android.os.Bundle;
import android.os.CancellationSignal;
+import android.view.View;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.WellbeingModel;
@@ -49,6 +51,7 @@
import com.android.quickstep.views.OverviewActionsView;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.system.ActivityManagerWrapper;
+import com.android.systemui.shared.system.ActivityOptionsCompat;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
import java.util.stream.Stream;
@@ -304,6 +307,15 @@
Stream.of(WellbeingModel.SHORTCUT_FACTORY));
}
+ @Override
+ public ActivityOptions getActivityLaunchOptions(View v) {
+ ActivityOptions activityOptions = super.getActivityLaunchOptions(v);
+ if (activityOptions != null && mLastTouchUpTime > 0) {
+ ActivityOptionsCompat.setLauncherSourceInfo(activityOptions, mLastTouchUpTime);
+ }
+ return activityOptions;
+ }
+
public void setHintUserWillBeActive() {
addActivityFlags(ACTIVITY_STATE_USER_WILL_BE_ACTIVE);
}
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 90566f3..4c5224b 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -76,6 +76,7 @@
import android.os.Parcelable;
import android.os.Process;
import android.os.StrictMode;
+import android.os.SystemClock;
import android.text.TextUtils;
import android.text.method.TextKeyListener;
import android.util.Log;
@@ -349,7 +350,7 @@
private boolean mDeferOverlayCallbacks;
private final Runnable mDeferredOverlayCallbacks = this::checkIfOverlayStillDeferred;
- private long mLastTouchUpTime = -1;
+ protected long mLastTouchUpTime = -1;
private boolean mTouchInProgress;
private SafeCloseable mUserChangedCallbackCloseable;
@@ -1824,7 +1825,7 @@
mTouchInProgress = true;
break;
case MotionEvent.ACTION_UP:
- mLastTouchUpTime = System.currentTimeMillis();
+ mLastTouchUpTime = ev.getEventTime();
// Follow through
case MotionEvent.ACTION_CANCEL:
mTouchInProgress = false;
@@ -2457,7 +2458,7 @@
if (mDragController.isDragging()) {
return false;
} else {
- return (System.currentTimeMillis() - mLastTouchUpTime)
+ return (SystemClock.uptimeMillis() - mLastTouchUpTime)
> (NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS * 1000);
}
}