From af9602826755338699bd7b7475be1d1973f3f14b Mon Sep 17 00:00:00 2001 From: Johannes Gallmann Date: Thu, 30 Nov 2023 13:32:04 +0000 Subject: [PATCH] Add predictive back aconfig flag Bug: 309545085 Flag: ACONFIG com.android.window.flags.predictive_back_system_animations DISABLED Test: atest BackAnimationPreferenceControllerTest; Manual, i.e. building and verifying correct behaviour for different flag configurations Change-Id: I3f478dc23bbfeb1f13cae64f3d04b3210841731d --- .../BackAnimationPreferenceController.java | 7 ++++++ ...BackAnimationPreferenceControllerTest.java | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/com/android/settings/development/BackAnimationPreferenceController.java b/src/com/android/settings/development/BackAnimationPreferenceController.java index aa4faf5c25f..95ffc253c4c 100644 --- a/src/com/android/settings/development/BackAnimationPreferenceController.java +++ b/src/com/android/settings/development/BackAnimationPreferenceController.java @@ -16,6 +16,8 @@ package com.android.settings.development; +import static com.android.window.flags.Flags.predictiveBackSystemAnimations; + import android.content.Context; import android.provider.Settings; @@ -55,6 +57,11 @@ public class BackAnimationPreferenceController extends DeveloperOptionsPreferenc mFragment = fragment; } + @Override + public boolean isAvailable() { + return !predictiveBackSystemAnimations(); + } + @Override public String getPreferenceKey() { return BACK_NAVIGATION_ANIMATION_KEY; diff --git a/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java index 36693583fe9..dc4f56a2c02 100644 --- a/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java @@ -29,6 +29,10 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.UserHandle; +import android.platform.test.annotations.RequiresFlagsDisabled; +import android.platform.test.annotations.RequiresFlagsEnabled; +import android.platform.test.flag.junit.CheckFlagsRule; +import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.provider.Settings; import androidx.preference.PreferenceManager; @@ -37,8 +41,11 @@ import androidx.preference.SwitchPreference; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; +import com.android.window.flags.Flags; + import org.junit.Assert; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; @@ -58,6 +65,9 @@ public class BackAnimationPreferenceControllerTest { private BackAnimationPreferenceController mController; private Looper mLooper; + @Rule + public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -80,6 +90,18 @@ public class BackAnimationPreferenceControllerTest { mController.displayPreference(screen); } + @Test + @RequiresFlagsEnabled(Flags.FLAG_PREDICTIVE_BACK_SYSTEM_ANIMATIONS) + public void controllerNotAvailable_whenAconfigFlagEnabled() { + assertFalse(mController.isAvailable()); + } + + @Test + @RequiresFlagsDisabled(Flags.FLAG_PREDICTIVE_BACK_SYSTEM_ANIMATIONS) + public void controllerAvailable_whenAconfigFlagDisabled() { + assertTrue(mController.isAvailable()); + } + @Test public void onPreferenceChange_switchEnabled_shouldEnableBackAnimations() { mController.onPreferenceChange(mPreference, true /* new value */);