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

Commit c39572a1 authored by Winson Chung's avatar Winson Chung Committed by android-build-merger
Browse files

Merge "Workaround to ensure we cancel the recents animation prior to starting home" into pi-dev

am: 1c0d00fa

Change-Id: Iaf7247b5134efe7334edfa0d16a56fb8b31af392
parents 146f33fc 1c0d00fa
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -376,6 +376,11 @@ public abstract class ActivityManagerInternal {
     */
    public abstract boolean isRecentsComponentHomeActivity(int userId);

    /**
     * Cancels any currently running recents animation.
     */
    public abstract void cancelRecentsAnimation(boolean restoreHomeStackPosition);

    /**
     * Whether an UID is active or idle.
     */
+0 −7
Original line number Diff line number Diff line
@@ -269,13 +269,6 @@ public class KeyButtonView extends ImageView implements ButtonInterface {
                }
                if (mCode != 0) {
                    if (doIt) {
                        // If there was a pending remote recents animation, then we need to
                        // cancel the animation now before we handle the button itself. In the case
                        // where we are going home and the recents animation has already started,
                        // just cancel the recents animation, leaving the home stack in place
                        boolean isHomeKey = mCode == KEYCODE_HOME;
                        ActivityManagerWrapper.getInstance().cancelRecentsAnimation(!isHomeKey);

                        sendEvent(KeyEvent.ACTION_UP, 0);
                        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
                    } else {
+5 −0
Original line number Diff line number Diff line
@@ -26506,6 +26506,11 @@ public class ActivityManagerService extends IActivityManager.Stub
            return getRecentTasks().isRecentsComponentHomeActivity(userId);
        }
        @Override
        public void cancelRecentsAnimation(boolean restoreHomeStackPosition) {
            ActivityManagerService.this.cancelRecentsAnimation(restoreHomeStackPosition);
        }
        @Override
        public boolean isUidActive(int uid) {
            synchronized (ActivityManagerService.this) {
+8 −0
Original line number Diff line number Diff line
@@ -6091,6 +6091,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                && (!isNavBarVirtKey || mNavBarVirtualKeyHapticFeedbackEnabled)
                && event.getRepeatCount() == 0;

        // Cancel any pending remote recents animations before handling the button itself. In the
        // case where we are going home and the recents animation has already started, just cancel
        // the recents animation, leaving the home stack in place for the pending start activity
        if (isNavBarVirtKey && !down) {
            boolean isHomeKey = keyCode == KeyEvent.KEYCODE_HOME;
            mActivityManagerInternal.cancelRecentsAnimation(!isHomeKey);
        }

        // Handle special keys.
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK: {
+1 −1
Original line number Diff line number Diff line
@@ -369,7 +369,7 @@ public class RecentsAnimationController implements DeathRecipient {
    }

    void cancelAnimation(@ReorderMode int reorderMode, String reason) {
        if (DEBUG_RECENTS_ANIMATIONS) Slog.d(TAG, "cancelAnimation()");
        if (DEBUG_RECENTS_ANIMATIONS) Slog.d(TAG, "cancelAnimation(): reason=" + reason);
        synchronized (mService.getWindowManagerLock()) {
            if (mCanceled) {
                // We've already canceled the animation
Loading