Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bdf3574 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

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
parent 05e21950
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -24,10 +24,12 @@ import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SY

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.util.RemoteFadeOutAnimationListener;
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 @@ public abstract class BaseQuickstepLauncher extends Launcher
                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);
    }
+4 −3
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import android.os.CancellationSignal;
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 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
    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 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
                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 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
        if (mDragController.isDragging()) {
            return false;
        } else {
            return (System.currentTimeMillis() - mLastTouchUpTime)
            return (SystemClock.uptimeMillis() - mLastTouchUpTime)
                    > (NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS * 1000);
        }
    }