mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 23:36:47 +00:00
Merge "Indicate PiP animation type from Launcher to SysUI" into ub-launcher3-master
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user