From a3d358f2772ac0070ce38b758e2277f6c40bca31 Mon Sep 17 00:00:00 2001 From: Heemin Seog Date: Tue, 28 Apr 2020 22:31:03 -0700 Subject: [PATCH] Lazy load status icon related components PhoneStatusBarPolicy is a complex object with many underlying dependencies. Lazy load until there is a better story around it. Bug: 147455109 Test: manual (systrace) Change-Id: I726a797f37c0816ab189a4c5f4fd5eecb0692e53 --- .../car/navigationbar/CarNavigationBar.java | 16 ++++++++-------- .../car/navigationbar/CarNavigationBarTest.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java b/packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java index 3b643697022d4..fcc8c8cddeb16 100644 --- a/packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/car/navigationbar/CarNavigationBar.java @@ -78,8 +78,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks private final IStatusBarService mBarService; private final Lazy mKeyguardStateControllerLazy; private final ButtonSelectionStateController mButtonSelectionStateController; - private final PhoneStatusBarPolicy mIconPolicy; - private final StatusBarIconController mIconController; + private final Lazy mIconPolicyLazy; + private final Lazy mIconControllerLazy; private final int mDisplayId; @@ -124,8 +124,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks IStatusBarService barService, Lazy keyguardStateControllerLazy, ButtonSelectionStateController buttonSelectionStateController, - PhoneStatusBarPolicy iconPolicy, - StatusBarIconController iconController + Lazy iconPolicyLazy, + Lazy iconControllerLazy ) { super(context); mResources = resources; @@ -140,8 +140,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks mBarService = barService; mKeyguardStateControllerLazy = keyguardStateControllerLazy; mButtonSelectionStateController = buttonSelectionStateController; - mIconPolicy = iconPolicy; - mIconController = iconController; + mIconPolicyLazy = iconPolicyLazy; + mIconControllerLazy = iconControllerLazy; mDisplayId = context.getDisplayId(); } @@ -238,8 +238,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks // Must be called on the main thread due to the use of observeForever() in // mIconPolicy.init(). mMainHandler.post(() -> { - mIconPolicy.init(); - mSignalPolicy = new StatusBarSignalPolicy(mContext, mIconController); + mIconPolicyLazy.get().init(); + mSignalPolicy = new StatusBarSignalPolicy(mContext, mIconControllerLazy.get()); }); } diff --git a/packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/CarNavigationBarTest.java b/packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/CarNavigationBarTest.java index adf435972e5ba..c555f64825d86 100644 --- a/packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/CarNavigationBarTest.java +++ b/packages/CarSystemUI/tests/src/com/android/systemui/car/navigationbar/CarNavigationBarTest.java @@ -91,7 +91,7 @@ public class CarNavigationBarTest extends SysuiTestCase { mCarNavigationBarController, mWindowManager, mDeviceProvisionedController, new CommandQueue(mContext), mAutoHideController, mButtonSelectionStateListener, mHandler, mBackgroundHandler, mBarService, () -> mKeyguardStateController, - mButtonSelectionStateController, mIconPolicy, mIconController); + mButtonSelectionStateController, () -> mIconPolicy, () -> mIconController); } @Test