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

Commit d7ac763b authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Indicate PiP animation type from Launcher to SysUI" into ub-launcher3-master

parents d4fb87e2 b08f2d72
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -332,6 +332,8 @@ public class FallbackSwipeHandler extends BaseSwipeUpHandler<RecentsActivity, Fa
                    // Send a home intent to clear the task stack
                    mContext.startActivity(mGestureState.getHomeIntent());
                } else {
                    // Notify swipe-to-home (recents animation) is finished
                    SystemUiProxy.INSTANCE.get(mContext).notifySwipeToHomeFinished();
                    mRecentsAnimationController.finish(true, () -> {
                        if (!mTouchedHomeDuringTransition) {
                            // If the user hasn't interacted with the screen during the transition,
+2 −0
Original line number Diff line number Diff line
@@ -699,6 +699,8 @@ public class LauncherSwipeHandler<T extends BaseDraggingActivity>
        switch (mGestureState.getEndTarget()) {
            case HOME:
                mStateCallback.setState(STATE_SCALED_CONTROLLER_HOME | STATE_CAPTURE_SCREENSHOT);
                // Notify swipe-to-home (recents animation) is finished
                SystemUiProxy.INSTANCE.get(mContext).notifySwipeToHomeFinished();
                break;
            case RECENTS:
                mStateCallback.setState(STATE_SCALED_CONTROLLER_RECENTS | STATE_CAPTURE_SCREENSHOT
+8 −0
Original line number Diff line number Diff line
@@ -108,11 +108,13 @@ import com.android.quickstep.RecentsAnimationController;
import com.android.quickstep.RecentsAnimationTargets;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.RecentsModel.TaskVisualsChangeListener;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TaskThumbnailCache;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.ViewUtils;
import com.android.quickstep.util.AppWindowAnimationHelper;
import com.android.quickstep.util.LayoutUtils;
import com.android.systemui.shared.recents.IPinnedStackAnimationListener;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -264,7 +266,10 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
                }
            });
        }
    };

    private final IPinnedStackAnimationListener mIPinnedStackAnimationListener =
            new IPinnedStackAnimationListener.Stub() {
        @Override
        public void onPinnedStackAnimationStarted() {
            // Needed for activities that auto-enter PiP, which will not trigger a remote
@@ -446,6 +451,8 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        mSyncTransactionApplier = new SyncRtSurfaceTransactionApplierCompat(this);
        RecentsModel.INSTANCE.get(getContext()).addThumbnailChangeListener(this);
        mIdp.addOnChangeListener(this);
        SystemUiProxy.INSTANCE.get(getContext()).setPinnedStackAnimationListener(
                mIPinnedStackAnimationListener);
    }

    @Override
@@ -458,6 +465,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        mSyncTransactionApplier = null;
        RecentsModel.INSTANCE.get(getContext()).removeThumbnailChangeListener(this);
        mIdp.removeOnChangeListener(this);
        SystemUiProxy.INSTANCE.get(getContext()).setPinnedStackAnimationListener(null);
    }

    @Override
+30 −3
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.util.Log;
import android.view.MotionEvent;

import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.systemui.shared.recents.IPinnedStackAnimationListener;
import com.android.systemui.shared.recents.ISystemUiProxy;

/**
@@ -268,9 +269,7 @@ public class SystemUiProxy implements ISystemUiProxy {
        }
    }

    /**
     * See SharedApiCompat#setShelfHeight()
     */
    @Override
    public void setShelfHeight(boolean visible, int shelfHeight) {
        boolean changed = visible != mLastShelfVisible || shelfHeight != mLastShelfHeight;
        if (mSystemUiProxy != null && changed) {
@@ -306,4 +305,32 @@ public class SystemUiProxy implements ISystemUiProxy {
            }
        }
    }

    /**
     * Notifies that swipe-to-home action is finished.
     */
    @Override
    public void notifySwipeToHomeFinished() {
        if (mSystemUiProxy != null) {
            try {
                mSystemUiProxy.notifySwipeToHomeFinished();
            } catch (RemoteException e) {
                Log.w(TAG, "Failed call setPinnedStackAnimationType", e);
            }
        }
    }

    /**
     * Sets listener to get pinned stack animation callbacks.
     */
    @Override
    public void setPinnedStackAnimationListener(IPinnedStackAnimationListener listener) {
        if (mSystemUiProxy != null) {
            try {
                mSystemUiProxy.setPinnedStackAnimationListener(listener);
            } catch (RemoteException e) {
                Log.w(TAG, "Failed call setPinnedStackAnimationListener", e);
            }
        }
    }
}