Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3d358f2 authored by Heemin Seog's avatar Heemin Seog
Browse files

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
parent 4a06a170
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -78,8 +78,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks
    private final IStatusBarService mBarService;
    private final Lazy<KeyguardStateController> mKeyguardStateControllerLazy;
    private final ButtonSelectionStateController mButtonSelectionStateController;
    private final PhoneStatusBarPolicy mIconPolicy;
    private final StatusBarIconController mIconController;
    private final Lazy<PhoneStatusBarPolicy> mIconPolicyLazy;
    private final Lazy<StatusBarIconController> mIconControllerLazy;

    private final int mDisplayId;

@@ -124,8 +124,8 @@ public class CarNavigationBar extends SystemUI implements CommandQueue.Callbacks
            IStatusBarService barService,
            Lazy<KeyguardStateController> keyguardStateControllerLazy,
            ButtonSelectionStateController buttonSelectionStateController,
            PhoneStatusBarPolicy iconPolicy,
            StatusBarIconController iconController
            Lazy<PhoneStatusBarPolicy> iconPolicyLazy,
            Lazy<StatusBarIconController> 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());
        });
    }

+1 −1
Original line number Diff line number Diff line
@@ -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