Add Teamfood flag enabling Predictive Back at runtime.

Bug: 255854141
Test: Passed presubmit
Change-Id: I6add68a4f9e68136d82c38502825d02cdfb70bf0
This commit is contained in:
Rahul Banerjee
2022-11-21 22:37:32 +00:00
3 changed files with 13 additions and 0 deletions

View File

@@ -372,6 +372,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")

View File

@@ -994,6 +994,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() {

View File

@@ -5,6 +5,7 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.window.OnBackInvokedCallback
import android.window.OnBackInvokedDispatcher
import androidx.test.filters.FlakyTest
import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
@@ -79,6 +80,8 @@ class ControlsFavoritingActivityTest : SysuiTestCase() {
activityRule.launchActivity(intent)
}
// b/259549854 to root-cause and fix
@FlakyTest
@Test
fun testBackCallbackRegistrationAndUnregistration() {
// 1. ensure that launching the activity results in it registering a callback