Handle transitining out of overview more gracefully for 3P launchers

Bug: 183897242
Test: Tested with Pixel Custom Launcher, as suggested on the bug
Change-Id: I46ceddb9f5eed6b16b7e66406dd68d94e7a30aee
This commit is contained in:
Vinit Nayak
2021-04-09 16:54:56 -07:00
parent 7f463d33ff
commit 58dfd4d209
@@ -27,6 +27,7 @@ import android.view.MotionEvent;
import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.statemanager.StateManager;
import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.quickstep.fallback.RecentsState;
import com.android.quickstep.util.ActivityInitListener;
@@ -139,7 +140,25 @@ public final class FallbackActivityInterface extends
@Override
public void onExitOverview(RotationTouchHelper deviceState, Runnable exitRunnable) {
// no-op, fake landscape not supported for 3P
final StateManager<RecentsState> stateManager = getCreatedActivity().getStateManager();
if (stateManager.getState() == HOME) {
exitRunnable.run();
notifyRecentsOfOrientation(deviceState);
return;
}
stateManager.addStateListener(
new StateManager.StateListener<RecentsState>() {
@Override
public void onStateTransitionComplete(RecentsState toState) {
// Are we going from Recents to Workspace?
if (toState == HOME) {
exitRunnable.run();
notifyRecentsOfOrientation(deviceState);
stateManager.removeStateListener(this);
}
}
});
}
@Override