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 */);