Only disallow QS expansion while keyboard is visible

Currently, a bug makes isRemoteInput sometimes returns true when
there is no remote input. In order to reduce the impact of the
bug, we will also require the keyboard to be visible to block QS
expansion. This will allow users to dismiss the keyboard then
expand QS while the input has the focus, but this is an
acceptable tradeoff while the root cause is being addressed.

Bug: 276357074
Test: manually checked go/shade-cujs and ran atest
Change-Id: I291ea25c45297820032dec10d81fe88e4159bea6
This commit is contained in:
Justin Weir
2023-04-05 11:05:27 -04:00
parent 31fb807ef2
commit 7ceae6d54b

View File

@@ -17,6 +17,8 @@
package com.android.systemui.shade;
import static android.view.WindowInsets.Type.ime;
import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
import static com.android.systemui.shade.NotificationPanelViewController.COUNTER_PANEL_OPEN_QS;
@@ -450,9 +452,17 @@ public class QuickSettingsController {
return (mQs != null ? mQs.getHeader().getHeight() : 0) + mPeekHeight;
}
private boolean isRemoteInputActiveWithKeyboardUp() {
//TODO(b/227115380) remove the isVisible(ime()) check once isRemoteInputActive is fixed.
// The check for keyboard visibility is a temporary workaround that allows QS to expand
// even when isRemoteInputActive is mistakenly returning true.
return mRemoteInputManager.isRemoteInputActive()
&& mPanelView.getRootWindowInsets().isVisible(ime());
}
public boolean isExpansionEnabled() {
return mExpansionEnabledPolicy && mExpansionEnabledAmbient
&& !mRemoteInputManager.isRemoteInputActive();
&& !isRemoteInputActiveWithKeyboardUp();
}
public float getTransitioningToFullShadeProgress() {