diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index e2f86bd762167..bbaf47dfa0f93 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -366,6 +366,11 @@ object Flags { @JvmField val NEW_BACK_AFFORDANCE = unreleasedFlag(1203, "new_back_affordance", teamfood = false) + // TODO(b/255854141): Tracking Bug + @JvmField + val WM_ENABLE_PREDICTIVE_BACK_SYSUI = + unreleasedFlag(1204, "persist.wm.debug.predictive_back_sysui_enable", teamfood = false) + // 1300 - screenshots // TODO(b/254512719): Tracking Bug @JvmField val SCREENSHOT_REQUEST_PROCESSOR = releasedFlag(1300, "screenshot_request_processor") diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 5efd4603500f7..32ea8d6fa695f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -977,6 +977,11 @@ 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() {