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

This commit is contained in:
Hongwei Wang
2020-03-02 23:10:28 +00:00
committed by Android (Google) Code Review
4 changed files with 42 additions and 3 deletions

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}
}
}
}