Optimize SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE flag update frequency

Bug: 275121752
Test: Manual, i.e. observe Taskbar behaviour when pulling down notification shade and expanding quick settings
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:9bceeb3fdb2c003ddf79d71191bd0447ab4689ff)
Change-Id: Id66485e7d717dd0ea1ef17904d33aca7b98043c6
This commit is contained in:
Johannes Gallmann
2023-04-18 11:34:18 +02:00
parent 3e7b20e500
commit 8af5e5d751
2 changed files with 11 additions and 5 deletions

View File

@@ -3415,8 +3415,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
Log.d(TAG, "Updating panel sysui state flags: fullyExpanded="
+ isFullyExpanded() + " inQs=" + mQsController.getExpanded());
}
boolean isPanelVisible = mCentralSurfaces != null && mCentralSurfaces.isPanelExpanded();
mSysUiState
.setFlag(SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE, getExpandedFraction() > 0)
.setFlag(SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE, isPanelVisible)
.setFlag(SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED,
isFullyExpanded() && !mQsController.getExpanded())
.setFlag(SYSUI_STATE_QUICK_SETTINGS_EXPANDED,

View File

@@ -1511,14 +1511,15 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
boolean tracking = event.getTracking();
dispatchPanelExpansionForKeyguardDismiss(fraction, tracking);
if (getShadeViewController() != null) {
getShadeViewController().updateSystemUiStateFlags();
}
if (fraction == 0 || fraction == 1) {
if (getNavigationBarView() != null) {
getNavigationBarView().onStatusBarPanelStateChanged();
}
if (getShadeViewController() != null) {
// Needed to update SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED and
// SYSUI_STATE_QUICK_SETTINGS_EXPANDED
getShadeViewController().updateSystemUiStateFlags();
}
}
}
@@ -1526,6 +1527,10 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
void onShadeExpansionFullyChanged(Boolean isExpanded) {
if (mPanelExpanded != isExpanded) {
mPanelExpanded = isExpanded;
if (getShadeViewController() != null) {
// Needed to update SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE
getShadeViewController().updateSystemUiStateFlags();
}
if (isExpanded && mStatusBarStateController.getState() != StatusBarState.KEYGUARD) {
if (DEBUG) {
Log.v(TAG, "clearing notification effects from Height");