mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 17:36:49 +00:00
Unstash taskbar due to IME immediately when system gesture starts
This is reversing a previous change from a few years ago
(ag/16325264) because we now clip the recent apps on the bottom
during gesture nav, whereas before we left them unclipped until
you swiped up.
Flag: none
Fixes: 305977350
Test: verified visuals manually in persistent, transient, and 3
button nav; also tested interactions with All Apps
Change-Id: Ib3823a9bd9aebf923ad481c010c7e8544bcb6a4d
(cherry picked from commit a6b29968a4)
This commit is contained in:
@@ -890,17 +890,11 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
|
||||
}
|
||||
|
||||
/**
|
||||
* Should be called when a system gesture starts and settles, so we can defer updating
|
||||
* FLAG_STASHED_IN_APP_IME until after the gesture transition completes.
|
||||
* Should be called when a system gesture starts and settles, so we can remove
|
||||
* FLAG_STASHED_IN_APP_IME while the gesture is in progress.
|
||||
*/
|
||||
public void setSystemGestureInProgress(boolean inProgress) {
|
||||
mIsSystemGestureInProgress = inProgress;
|
||||
if (mIsSystemGestureInProgress) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Only update the following flags when system gesture is not in progress.
|
||||
updateStateForFlag(FLAG_STASHED_IN_TASKBAR_ALL_APPS, false);
|
||||
setStashedImeState();
|
||||
}
|
||||
|
||||
@@ -952,12 +946,9 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
|
||||
&& !hasAnyFlag(systemUiStateFlags, SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY);
|
||||
updateStateForFlag(FLAG_STASHED_DEVICE_LOCKED, isLocked);
|
||||
|
||||
// Only update FLAG_STASHED_IN_APP_IME when system gesture is not in progress.
|
||||
mIsImeShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SHOWING);
|
||||
mIsImeSwitcherShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SWITCHER_SHOWING);
|
||||
|
||||
if (!mIsSystemGestureInProgress) {
|
||||
updateStateForFlag(FLAG_STASHED_IN_APP_IME, shouldStashForIme());
|
||||
if (updateStateForFlag(FLAG_STASHED_IN_APP_IME, shouldStashForIme())) {
|
||||
animDuration = TASKBAR_STASH_DURATION_FOR_IME;
|
||||
startDelay = getTaskbarStashStartDelayForIme();
|
||||
}
|
||||
@@ -970,7 +961,8 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
|
||||
*
|
||||
* <p>Do not stash if in small screen, with 3 button nav, and in landscape (or seascape).
|
||||
* <p>Do not stash if taskbar is transient.
|
||||
* <p>Do not stash if hardware keyboard is attached and taskbar is pinned and IME is docked
|
||||
* <p>Do not stash if hardware keyboard is attached and taskbar is pinned and IME is docked.
|
||||
* <p>Do not stash if a system gesture is started.
|
||||
*/
|
||||
private boolean shouldStashForIme() {
|
||||
if (DisplayController.isTransientTaskbar(mActivity)) {
|
||||
@@ -996,6 +988,11 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
|
||||
return false;
|
||||
}
|
||||
|
||||
// Do not stash if a gesture started.
|
||||
if (mIsSystemGestureInProgress) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return mIsImeShowing || mIsImeSwitcherShowing;
|
||||
}
|
||||
|
||||
@@ -1007,13 +1004,16 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
|
||||
* @param flag The flag to update.
|
||||
* @param enabled Whether to enable the flag: True will cause the task bar to be stashed /
|
||||
* unstashed.
|
||||
* @return Whether the flag state changed.
|
||||
*/
|
||||
public void updateStateForFlag(int flag, boolean enabled) {
|
||||
public boolean updateStateForFlag(int flag, boolean enabled) {
|
||||
int oldState = mState;
|
||||
if (enabled) {
|
||||
mState |= flag;
|
||||
} else {
|
||||
mState &= ~flag;
|
||||
}
|
||||
return mState != oldState;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user