Separate out sysui state updating

- Only update the disabled/screen pinning states when the disabled flags
  change, and not when the status bar panel height changes since that may
  be called frequently

Bug: 138640355
Test: Manual, lock/unlock, ensure that we don't get extra calls
Change-Id: Icbb03f1fef67e1254f03d85e4293f3b1a0ec4d6e
This commit is contained in:
Winson Chung
2019-07-30 13:51:27 -07:00
parent a1001b430f
commit 56a667b218
2 changed files with 10 additions and 5 deletions

View File

@@ -546,7 +546,8 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
navBarFragment.updateSystemUiStateFlags(-1);
}
if (navBarView != null) {
navBarView.updateSystemUiStateFlags();
navBarView.updatePanelSystemUiStateFlags();
navBarView.updateDisabledSystemUiStateFlags();
}
if (mStatusBarWinController != null) {
mStatusBarWinController.notifyStateChangedCallbacks();

View File

@@ -322,7 +322,7 @@ public class NavigationBarView extends FrameLayout implements
public void setComponents(NotificationPanelView panel, AssistManager assistManager) {
mPanelView = panel;
updateSystemUiStateFlags();
updatePanelSystemUiStateFlags();
}
@Override
@@ -586,7 +586,7 @@ public class NavigationBarView extends FrameLayout implements
updateNavButtonIcons();
updateSlippery();
setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled());
updateSystemUiStateFlags();
updateDisabledSystemUiStateFlags();
}
public void updateNavButtonIcons() {
@@ -709,10 +709,10 @@ public class NavigationBarView extends FrameLayout implements
public void onPanelExpandedChange() {
updateSlippery();
updateSystemUiStateFlags();
updatePanelSystemUiStateFlags();
}
public void updateSystemUiStateFlags() {
public void updateDisabledSystemUiStateFlags() {
int displayId = mContext.getDisplayId();
mOverviewProxyService.setSystemUiStateFlag(SYSUI_STATE_SCREEN_PINNING,
ActivityManagerWrapper.getInstance().isScreenPinningActive(), displayId);
@@ -722,6 +722,10 @@ public class NavigationBarView extends FrameLayout implements
(mDisabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0, displayId);
mOverviewProxyService.setSystemUiStateFlag(SYSUI_STATE_SEARCH_DISABLED,
(mDisabledFlags & View.STATUS_BAR_DISABLE_SEARCH) != 0, displayId);
}
public void updatePanelSystemUiStateFlags() {
int displayId = mContext.getDisplayId();
if (mPanelView != null) {
mOverviewProxyService.setSystemUiStateFlag(SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED,
mPanelView.isFullyExpanded() && !mPanelView.isInSettings(), displayId);