Fix BEHAVIOR_SHOW_BARS_BY_TOUCH

If navigation is hidden while the behavior is SHOW_BARS_BY_TOUCH, both
system bars should be shown by touch, not just navigation bar.

Fix: 160587946
Test: atest DisplayPolicyTests
Change-Id: I3f2e80a24b3184707a9fa0d65a4f44fc308c30ca
This commit is contained in:
Tiger Huang
2020-08-27 15:53:56 +08:00
parent 2d4e0b75e2
commit 88c92c70fe

View File

@@ -1538,7 +1538,7 @@ public class DisplayPolicy {
if (mInputConsumer == null) {
return;
}
showNavigationBar();
showSystemBars();
// Any user activity always causes us to show the
// navigation controls, if they had been hidden.
// We also clear the low profile and only content
@@ -1573,13 +1573,13 @@ public class DisplayPolicy {
}
}
private void showNavigationBar() {
private void showSystemBars() {
final InsetsSourceProvider provider = mDisplayContent.getInsetsStateController()
.peekSourceProvider(ITYPE_NAVIGATION_BAR);
final InsetsControlTarget target =
provider != null ? provider.getControlTarget() : null;
if (target != null) {
target.showInsets(Type.navigationBars(), false /* fromIme */);
target.showInsets(Type.systemBars(), false /* fromIme */);
}
}
}