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

Commit f0a9a49d authored by Rahul Banerjee's avatar Rahul Banerjee
Browse files

Fix ANR in SystemUI due to race condition.

Bug: 265374290
Test: atest CentralSurfacesImplTest
Change-Id: Ia70a3b777dc63535bc173875b2f54056ec6cca39
parent 7f47d9d4
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -884,6 +884,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        wiredChargingRippleController.registerCallbacks();

        mLightRevealScrimViewModelLazy = lightRevealScrimViewModelLazy;

        // Based on teamfood flag, turn predictive back dispatch on at runtime.
        if (mFeatureFlags.isEnabled(Flags.WM_ENABLE_PREDICTIVE_BACK_SYSUI)) {
            mContext.getApplicationInfo().setEnableOnBackInvokedCallback(true);
        }
    }

    @Override
@@ -998,11 +1003,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        // Lastly, call to the icon policy to install/update all the icons.
        mIconPolicy.init();

        // Based on teamfood flag, turn predictive back dispatch on at runtime.
        if (mFeatureFlags.isEnabled(Flags.WM_ENABLE_PREDICTIVE_BACK_SYSUI)) {
            mContext.getApplicationInfo().setEnableOnBackInvokedCallback(true);
        }

        mKeyguardStateController.addCallback(new KeyguardStateController.Callback() {
            @Override
            public void onUnlockedChanged() {
+4 −0
Original line number Diff line number Diff line
@@ -321,6 +321,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);

        // CentralSurfacesImpl's runtime flag check fails if the flag is absent.
        // This value is unused, because test manifest is opted in.
        mFeatureFlags.set(Flags.WM_ENABLE_PREDICTIVE_BACK_SYSUI, false);

        IThermalService thermalService = mock(IThermalService.class);
        mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService,
                Handler.createAsync(Looper.myLooper()));