Fix ANR in SystemUI due to race condition.

Bug: 265374290
Test: atest CentralSurfacesImplTest
Change-Id: Ia70a3b777dc63535bc173875b2f54056ec6cca39
This commit is contained in:
Rahul Banerjee
2023-01-17 13:29:17 -08:00
parent 7f47d9d49a
commit f0a9a49d81
2 changed files with 9 additions and 5 deletions

View File

@@ -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() {

View File

@@ -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()));