From 4a7e6f84d30c4861ab2d2e37c45bf204ec8893ef Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Thu, 9 Dec 2021 14:38:25 -0500 Subject: [PATCH 1/2] Remove StatusBar#getStatusBarView StatusBar shouldn't be handing out references to StatusBarView, since PhoneStatusBarView doesn't have the same lifetime as StatusBar.java. All calls to this method have been removed so we can just delete it now. Bug: 209005990 Test: atest SytemUITests Change-Id: Ib277941d739290445668589932fb65b1b94fb154 --- .../systemui/statusbar/phone/StatusBar.java | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 6c0b717fb85c4..62ff878e2eb6e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -341,7 +341,7 @@ public class StatusBar extends CoreStartable implements mStatusBarWindowState = state; mStatusBarWindowHidden = state == WINDOW_STATE_HIDDEN; mStatusBarHideIconsForBouncerManager.setStatusBarWindowHidden(mStatusBarWindowHidden); - if (getStatusBarView() != null) { + if (mStatusBarView != null) { // Should #updateHideIconsForBouncer always be called, regardless of whether we have a // status bar view? If so, we can make #updateHideIconsForBouncer private. mStatusBarHideIconsForBouncerManager.updateHideIconsForBouncer(/* animate= */ false); @@ -1124,23 +1124,18 @@ public class StatusBar extends CoreStartable implements // Set up CollapsedStatusBarFragment and PhoneStatusBarView StatusBarInitializer initializer = mStatusBarComponent.getStatusBarInitializer(); initializer.setStatusBarViewUpdatedListener( - new StatusBarInitializer.OnStatusBarViewUpdatedListener() { - @Override - public void onStatusBarViewUpdated( - @NonNull PhoneStatusBarView statusBarView, - @NonNull PhoneStatusBarViewController statusBarViewController) { - mStatusBarView = statusBarView; - mPhoneStatusBarViewController = statusBarViewController; - mNotificationShadeWindowViewController.setStatusBarView(mStatusBarView); - // Ensure we re-propagate panel expansion values to the panel controller and - // any listeners it may have, such as PanelBar. This will also ensure we - // re-display the notification panel if necessary (for example, if - // a heads-up notification was being displayed and should continue being - // displayed). - mNotificationPanelViewController.updatePanelExpansionAndVisibility(); - setBouncerShowingForStatusBarComponents(mBouncerShowing); - checkBarModes(); - } + (statusBarView, statusBarViewController) -> { + mStatusBarView = statusBarView; + mPhoneStatusBarViewController = statusBarViewController; + mNotificationShadeWindowViewController.setStatusBarView(mStatusBarView); + // Ensure we re-propagate panel expansion values to the panel controller and + // any listeners it may have, such as PanelBar. This will also ensure we + // re-display the notification panel if necessary (for example, if + // a heads-up notification was being displayed and should continue being + // displayed). + mNotificationPanelViewController.updatePanelExpansionAndVisibility(); + setBouncerShowingForStatusBarComponents(mBouncerShowing); + checkBarModes(); }); initializer.initializeStatusBar(mStatusBarComponent); @@ -1578,10 +1573,6 @@ public class StatusBar extends CoreStartable implements Trace.endSection(); } - protected PhoneStatusBarView getStatusBarView() { - return mStatusBarView; - } - public NotificationShadeWindowView getNotificationShadeWindowView() { return mNotificationShadeWindowView; } From 18ea2952c99f7ae333dffeb8edafbf99483c0657 Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Thu, 9 Dec 2021 14:41:07 -0500 Subject: [PATCH 2/2] Tidy PhoneStatusBarView Removed an unused import and call `super.onFinishInflate` to avoid IDE errors Bug: 209005990 Test: atest SystemUITests Change-Id: I5d575dcd0542ab604dcdede998505b4253196eec --- .../android/systemui/statusbar/phone/PhoneStatusBarView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index f67d18183c10c..1e71ceb8cae84 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -38,7 +38,6 @@ import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; -import com.android.systemui.statusbar.window.StatusBarWindowView; import com.android.systemui.util.leak.RotationUtils; import java.util.Objects; @@ -76,6 +75,7 @@ public class PhoneStatusBarView extends FrameLayout { @Override public void onFinishInflate() { + super.onFinishInflate(); mBattery = findViewById(R.id.battery); mClock = findViewById(R.id.clock); mCutoutSpace = findViewById(R.id.cutout_space_view);