From 778d3d83f8772b3fa07c58483056bbb192583dff Mon Sep 17 00:00:00 2001 From: Shan Huang Date: Mon, 28 Mar 2022 18:03:29 +0000 Subject: [PATCH] Remove DISPATCH_BACK_INVOCATION_AHEAD_OF_TIME. We are not gating the new back dispatch by targetSdkVersion in T. The new dispatch is controlled by the enableOnBackInvokedCallback app manifest flag (which defaults to false). Test: m -j update-api Bug: 195946584 Change-Id: Iab59051ec5b6336ca4d42cc47015fe86a3f37942 --- core/api/test-current.txt | 4 ---- .../window/OnBackInvokedDispatcher.java | 20 ------------------- .../window/WindowOnBackInvokedDispatcher.java | 18 ++++++++--------- 3 files changed, 8 insertions(+), 34 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index a67d002cdddfb..03671de1903d3 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3260,10 +3260,6 @@ package android.window { field public static final int FEATURE_WINDOW_TOKENS = 2; // 0x2 } - public interface OnBackInvokedDispatcher { - field public static final long DISPATCH_BACK_INVOCATION_AHEAD_OF_TIME = 195946584L; // 0xbade858L - } - public final class SplashScreenView extends android.widget.FrameLayout { method @Nullable public android.view.View getBrandingView(); } diff --git a/core/java/android/window/OnBackInvokedDispatcher.java b/core/java/android/window/OnBackInvokedDispatcher.java index 5eed8cde8c7cc..c254a9df3b4c4 100644 --- a/core/java/android/window/OnBackInvokedDispatcher.java +++ b/core/java/android/window/OnBackInvokedDispatcher.java @@ -21,9 +21,6 @@ import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; -import android.annotation.TestApi; -import android.compat.annotation.ChangeId; -import android.compat.annotation.EnabledSince; import android.os.Build; import java.lang.annotation.Retention; @@ -38,23 +35,6 @@ import java.lang.annotation.RetentionPolicy; * target (a.k.a. the callback to be invoked next), or its behavior. */ public interface OnBackInvokedDispatcher { - /** - * Enables dispatching the "back" action via {@link OnBackInvokedDispatcher}. - * - * When enabled, the following APIs are no longer invoked: - * - * - * @hide - */ - @TestApi - @ChangeId - @EnabledSince(targetSdkVersion = Build.VERSION_CODES.TIRAMISU) - long DISPATCH_BACK_INVOCATION_AHEAD_OF_TIME = 195946584L; - /** @hide */ String TAG = "OnBackInvokedDispatcher"; diff --git a/core/java/android/window/WindowOnBackInvokedDispatcher.java b/core/java/android/window/WindowOnBackInvokedDispatcher.java index 97573c291340f..9a6b5efb32b88 100644 --- a/core/java/android/window/WindowOnBackInvokedDispatcher.java +++ b/core/java/android/window/WindowOnBackInvokedDispatcher.java @@ -18,7 +18,6 @@ package android.window; import android.annotation.NonNull; import android.annotation.Nullable; -import android.app.compat.CompatChanges; import android.content.Context; import android.os.Handler; import android.os.RemoteException; @@ -248,21 +247,20 @@ public class WindowOnBackInvokedDispatcher implements OnBackInvokedDispatcher { * {@link OnBackInvokedCallback}. */ public static boolean isOnBackInvokedCallbackEnabled(@Nullable Context context) { - // new back is enabled if the app targets T AND the feature flag is enabled AND the app - // does not explicitly request legacy back. - boolean targetsT = CompatChanges.isChangeEnabled(DISPATCH_BACK_INVOCATION_AHEAD_OF_TIME); + // new back is enabled if the feature flag is enabled AND the app does not explicitly + // request legacy back. boolean featureFlagEnabled = IS_BACK_PREDICTABILITY_ENABLED; // If the context is null, we assume true and fallback on the two other conditions. - boolean appRequestsLegacy = - context == null || !context.getApplicationInfo().isOnBackInvokedCallbackEnabled(); + boolean appRequestsPredictiveBack = + context != null && context.getApplicationInfo().isOnBackInvokedCallbackEnabled(); if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple("App: %s isChangeEnabled=%s featureFlagEnabled=%s " - + "onBackInvokedEnabled=%s", + Log.d(TAG, TextUtils.formatSimple("App: %s featureFlagEnabled=%s " + + "appRequestsPredictiveBack=%s", context != null ? context.getApplicationInfo().packageName : "null context", - targetsT, featureFlagEnabled, !appRequestsLegacy)); + featureFlagEnabled, appRequestsPredictiveBack)); } - return targetsT && featureFlagEnabled && !appRequestsLegacy; + return featureFlagEnabled && appRequestsPredictiveBack; } }