From eedd70fc21df79e7174e8de5a25d24a1170ad715 Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Mon, 6 Dec 2021 17:18:05 -0500 Subject: [PATCH] Remove unneeded statusbar view references from StatusBar.java - In two cases, the check for (mStatusBarView != null) was vestigial from when the shade shared a window with the status bar window. - Removed an unused `getStatusBarView` method from ShadeControllerImpl - Added a ConfigurationListener to PhoneStatusBarViewController so it could update its own resources instead of relying on statusbar for the callback Test: atest SystemUITests Bug: 209005990 Change-Id: I7c15ec862c75006d9992ea80037160b330d6d4ce --- .../phone/PhoneStatusBarViewController.kt | 19 ++++++++++++++++--- .../statusbar/phone/ShadeControllerImpl.java | 4 ---- .../systemui/statusbar/phone/StatusBar.java | 7 ++----- .../phone/StatusBarCommandQueueCallbacks.java | 4 +--- .../phone/PhoneStatusBarViewControllerTest.kt | 6 +++++- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt index ec7e93b444eff..b9386bd01e039 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt @@ -15,12 +15,14 @@ */ package com.android.systemui.statusbar.phone +import android.content.res.Configuration import android.graphics.Point import android.view.View import android.view.ViewGroup import android.view.ViewTreeObserver import com.android.systemui.R import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator +import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.unfold.SysUIUnfoldComponent import com.android.systemui.unfold.UNFOLD_STATUS_BAR import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider @@ -35,9 +37,16 @@ class PhoneStatusBarViewController private constructor( view: PhoneStatusBarView, @Named(UNFOLD_STATUS_BAR) private val progressProvider: ScopedUnfoldTransitionProgressProvider?, private val moveFromCenterAnimationController: StatusBarMoveFromCenterAnimationController?, - touchEventHandler: PhoneStatusBarView.TouchEventHandler + touchEventHandler: PhoneStatusBarView.TouchEventHandler, + private val configurationController: ConfigurationController ) : ViewController(view) { + private val configurationListener = object : ConfigurationController.ConfigurationListener { + override fun onConfigChanged(newConfig: Configuration?) { + mView.updateResources() + } + } + override fun onViewAttached() { moveFromCenterAnimationController?.let { animationController -> val statusBarLeftSide: View = mView.findViewById(R.id.status_bar_left_side) @@ -66,11 +75,13 @@ class PhoneStatusBarViewController private constructor( } progressProvider?.setReadyToHandleTransition(true) + configurationController.addCallback(configurationListener) } override fun onViewDetached() { progressProvider?.setReadyToHandleTransition(false) moveFromCenterAnimationController?.onViewDetached() + configurationController.removeCallback(configurationListener) } init { @@ -116,7 +127,8 @@ class PhoneStatusBarViewController private constructor( class Factory @Inject constructor( private val unfoldComponent: Optional, @Named(UNFOLD_STATUS_BAR) - private val progressProvider: Optional + private val progressProvider: Optional, + private val configurationController: ConfigurationController ) { fun create( view: PhoneStatusBarView, @@ -128,7 +140,8 @@ class PhoneStatusBarViewController private constructor( unfoldComponent.map { it.getStatusBarMoveFromCenterAnimationController() }.getOrNull(), - touchEventHandler + touchEventHandler, + configurationController ) } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java index a54251a469018..b4fed2ba8624d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadeControllerImpl.java @@ -218,10 +218,6 @@ public class ShadeControllerImpl implements ShadeController { return getStatusBar().getNotificationShadeWindowView(); } - protected PhoneStatusBarView getStatusBarView() { - return (PhoneStatusBarView) getStatusBar().getStatusBarView(); - } - private NotificationPanelViewController getNotificationPanelViewController() { return getStatusBar().getPanelController(); } 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 0f0a2f061959c..6c0b717fb85c4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -2715,9 +2715,6 @@ public class StatusBar extends CoreStartable implements mStatusBarWindowController.refreshStatusBarHeight(); } - if (mStatusBarView != null) { - mStatusBarView.updateResources(); - } if (mNotificationPanelViewController != null) { mNotificationPanelViewController.updateResources(); } @@ -4192,7 +4189,7 @@ public class StatusBar extends CoreStartable implements if (userSetup != mUserSetup) { mUserSetup = userSetup; - if (!mUserSetup && mStatusBarView != null) { + if (!mUserSetup) { animateCollapseQuickSettings(); } if (mNotificationPanelViewController != null) { @@ -4307,7 +4304,7 @@ public class StatusBar extends CoreStartable implements updateTheme(); mNavigationBarController.touchAutoDim(mDisplayId); Trace.beginSection("StatusBar#updateKeyguardState"); - if (mState == StatusBarState.KEYGUARD && mStatusBarView != null) { + if (mState == StatusBarState.KEYGUARD) { mNotificationPanelViewController.cancelPendingPanelCollapse(); } updateDozingState(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java index abb7449e3e422..b391de3c5ab18 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarCommandQueueCallbacks.java @@ -529,9 +529,7 @@ public class StatusBarCommandQueueCallbacks implements CommandQueue.Callbacks { if (StatusBar.DEBUG_WINDOW_STATE) { Log.d(StatusBar.TAG, "Status bar " + windowStateToString(state)); } - if (mStatusBar.getStatusBarView() != null - && !showing - && mStatusBarStateController.getState() == StatusBarState.SHADE) { + if (!showing && mStatusBarStateController.getState() == StatusBarState.SHADE) { mNotificationPanelViewController.collapsePanel( false /* animate */, false /* delayed */, 1.0f /* speedUpFactor */); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt index 7d266e96ddb9b..235de1e7cb7a7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt @@ -26,6 +26,7 @@ import androidx.test.filters.SmallTest import androidx.test.platform.app.InstrumentationRegistry import com.android.systemui.R import com.android.systemui.SysuiTestCase +import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.unfold.SysUIUnfoldComponent import com.android.systemui.unfold.config.UnfoldTransitionConfig import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider @@ -57,6 +58,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() { private lateinit var sysuiUnfoldComponent: SysUIUnfoldComponent @Mock private lateinit var progressProvider: ScopedUnfoldTransitionProgressProvider + @Mock + private lateinit var configurationController: ConfigurationController private lateinit var view: PhoneStatusBarView private lateinit var controller: PhoneStatusBarViewController @@ -116,7 +119,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() { private fun createController(view: PhoneStatusBarView): PhoneStatusBarViewController { return PhoneStatusBarViewController.Factory( Optional.of(sysuiUnfoldComponent), - Optional.of(progressProvider) + Optional.of(progressProvider), + configurationController ).create(view, touchEventHandler) }