Merge "Maintain fake nav bar position in overview for landscape" into ub-launcher3-rvc-dev
This commit is contained in:
@@ -780,12 +780,6 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
||||
}
|
||||
}
|
||||
|
||||
if (endTarget == RECENTS || endTarget == HOME) {
|
||||
// Since we're now done quickStepping, we want to only listen for touch events
|
||||
// for the main orientation's nav bar, instead of multiple
|
||||
mDeviceState.enableMultipleRegions(false);
|
||||
}
|
||||
|
||||
if (mDeviceState.isOverviewDisabled() && (endTarget == RECENTS || endTarget == LAST_TASK)) {
|
||||
return LAST_TASK;
|
||||
}
|
||||
@@ -1243,6 +1237,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
||||
}
|
||||
ActiveGestureLog.INSTANCE.addLog("finishRecentsAnimation", true);
|
||||
doLogGesture(HOME);
|
||||
mDeviceState.enableMultipleRegions(false);
|
||||
}
|
||||
|
||||
protected abstract void finishRecentsControllerToHome(Runnable callback);
|
||||
@@ -1258,6 +1253,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
||||
|
||||
SystemUiProxy.INSTANCE.get(mContext).onOverviewShown(false, TAG);
|
||||
doLogGesture(RECENTS);
|
||||
mDeviceState.onSwipeUpToOverview(mActivityInterface);
|
||||
reset();
|
||||
}
|
||||
|
||||
|
||||
+5
@@ -139,6 +139,11 @@ public final class FallbackActivityInterface extends
|
||||
|| super.deferStartingActivity(deviceState, ev);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExitOverview(RecentsAnimationDeviceState deviceState, Runnable exitRunnable) {
|
||||
// no-op, fake landscape not supported for 3P
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getContainerType() {
|
||||
RecentsActivity activity = getCreatedActivity();
|
||||
|
||||
+22
@@ -44,6 +44,7 @@ import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.appprediction.PredictionUiStateManager;
|
||||
import com.android.launcher3.statehandlers.DepthController;
|
||||
import com.android.launcher3.statehandlers.DepthController.ClampedDepthProperty;
|
||||
import com.android.launcher3.statemanager.StateManager;
|
||||
import com.android.launcher3.testing.TestProtocol;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
||||
@@ -224,6 +225,27 @@ public final class LauncherActivityInterface extends
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onExitOverview(RecentsAnimationDeviceState deviceState, Runnable exitRunnable) {
|
||||
final StateManager<LauncherState> stateManager = getCreatedActivity().getStateManager();
|
||||
stateManager.addStateListener(
|
||||
new StateManager.StateListener<LauncherState>() {
|
||||
@Override
|
||||
public void onStateTransitionComplete(LauncherState toState) {
|
||||
// Are we going from Recents to Workspace?
|
||||
if (toState == LauncherState.NORMAL) {
|
||||
exitRunnable.run();
|
||||
|
||||
// reset layout on swipe to home
|
||||
RecentsView recentsView = getCreatedActivity().getOverviewPanel();
|
||||
recentsView.setLayoutRotation(deviceState.getCurrentActiveRotation(),
|
||||
deviceState.getDisplayRotation());
|
||||
stateManager.removeStateListener(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rect getOverviewWindowBounds(Rect homeBounds, RemoteAnimationTargetCompat target) {
|
||||
return homeBounds;
|
||||
|
||||
@@ -554,7 +554,6 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
||||
|| previousGestureState.isRecentsAnimationRunning()
|
||||
? newBaseConsumer(previousGestureState, newGestureState, event)
|
||||
: mResetGestureInputConsumer;
|
||||
// TODO(b/149880412): 2 button landscape mode is wrecked. Fixit!
|
||||
if (mDeviceState.isGesturalNavMode()) {
|
||||
handleOrientationSetup(base);
|
||||
}
|
||||
|
||||
@@ -150,6 +150,9 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||
return deviceState.isInDeferredGestureRegion(ev);
|
||||
}
|
||||
|
||||
public abstract void onExitOverview(RecentsAnimationDeviceState deviceState,
|
||||
Runnable exitRunnable);
|
||||
|
||||
/**
|
||||
* Updates the prediction state to the overview state.
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,6 @@ import android.graphics.Region;
|
||||
import android.os.Process;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import androidx.annotation.BinderThread;
|
||||
@@ -107,7 +106,7 @@ public class RecentsAnimationDeviceState implements
|
||||
if (frozen) {
|
||||
return;
|
||||
}
|
||||
mOrientationTouchTransformer.enableMultipleRegions(false, mDefaultDisplay.getInfo());
|
||||
enableMultipleRegions(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -118,6 +117,13 @@ public class RecentsAnimationDeviceState implements
|
||||
|
||||
private final List<ComponentName> mGestureBlockedActivities;
|
||||
private Runnable mOnDestroyFrozenTaskRunnable;
|
||||
/**
|
||||
* Set to true when user swipes to recents. In recents, we ignore the state of the recents
|
||||
* task list being frozen or not to allow the user to keep interacting with nav bar rotation
|
||||
* they went into recents with as opposed to defaulting to the default display rotation.
|
||||
* TODO: (b/156984037) For when user rotates after entering overview
|
||||
*/
|
||||
private boolean mInOverview;
|
||||
|
||||
public RecentsAnimationDeviceState(Context context) {
|
||||
mContext = context;
|
||||
@@ -508,7 +514,18 @@ public class RecentsAnimationDeviceState implements
|
||||
mOrientationTouchTransformer.transform(event);
|
||||
}
|
||||
|
||||
void onSwipeUpToOverview(BaseActivityInterface activityInterface) {
|
||||
mInOverview = true;
|
||||
activityInterface.onExitOverview(this, () -> {
|
||||
mInOverview = false;
|
||||
enableMultipleRegions(false);
|
||||
});
|
||||
}
|
||||
|
||||
void enableMultipleRegions(boolean enable) {
|
||||
if (mInOverview) {
|
||||
return;
|
||||
}
|
||||
mOrientationTouchTransformer.enableMultipleRegions(enable, mDefaultDisplay.getInfo());
|
||||
UI_HELPER_EXECUTOR.execute(() -> {
|
||||
int quickStepStartingRotation =
|
||||
|
||||
Reference in New Issue
Block a user