Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6ee1e9e authored by Peter Liang's avatar Peter Liang
Browse files

Remove the feature flag of the A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS.

Actions:
Replace the legacy implementation with a new one.

Bug: 262224538
Test: atest AccessibilityFloatingMenuControllerTest
Change-Id: I01226212f8fccb4d95eb7fd55b1219198d1dea5e
parent 8bcfd1b3
Loading
Loading
Loading
Loading
+8 −17
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ package com.android.systemui.accessibility.floatingmenu;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;

import static com.android.systemui.flags.Flags.A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS;

import android.content.Context;
import android.hardware.display.DisplayManager;
import android.os.UserHandle;
@@ -38,7 +36,6 @@ import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver.AccessibilityButtonMode;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.util.settings.SecureSettings;

@@ -59,7 +56,7 @@ public class AccessibilityFloatingMenuController implements
    private final WindowManager mWindowManager;
    private final DisplayManager mDisplayManager;
    private final AccessibilityManager mAccessibilityManager;
    private final FeatureFlags mFeatureFlags;

    private final SecureSettings mSecureSettings;
    private final DisplayTracker mDisplayTracker;
    @VisibleForTesting
@@ -105,7 +102,6 @@ public class AccessibilityFloatingMenuController implements
            AccessibilityButtonTargetsObserver accessibilityButtonTargetsObserver,
            AccessibilityButtonModeObserver accessibilityButtonModeObserver,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            FeatureFlags featureFlags,
            SecureSettings secureSettings,
            DisplayTracker displayTracker) {
        mContext = context;
@@ -115,7 +111,6 @@ public class AccessibilityFloatingMenuController implements
        mAccessibilityButtonTargetsObserver = accessibilityButtonTargetsObserver;
        mAccessibilityButtonModeObserver = accessibilityButtonModeObserver;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mFeatureFlags = featureFlags;
        mSecureSettings = secureSettings;
        mDisplayTracker = displayTracker;

@@ -162,7 +157,7 @@ public class AccessibilityFloatingMenuController implements
     * Handles the accessibility floating menu visibility with the given values.
     *
     * @param keyguardVisible the keyguard visibility status. Not show the
     *                        {@link AccessibilityFloatingMenu} when keyguard appears.
     *                        {@link MenuView} when keyguard appears.
     * @param mode accessibility button mode {@link AccessibilityButtonMode}
     * @param targets accessibility button list; it should comes from
     *                {@link android.provider.Settings.Secure#ACCESSIBILITY_BUTTON_TARGETS}.
@@ -187,16 +182,12 @@ public class AccessibilityFloatingMenuController implements

    private void showFloatingMenu() {
        if (mFloatingMenu == null) {
            if (mFeatureFlags.isEnabled(A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS)) {
            final Display defaultDisplay = mDisplayManager.getDisplay(
                    mDisplayTracker.getDefaultDisplayId());
            final Context windowContext = mContext.createWindowContext(defaultDisplay,
                    TYPE_NAVIGATION_BAR_PANEL, /* options= */ null);
            mFloatingMenu = new MenuViewLayerController(windowContext, mWindowManager,
                    mAccessibilityManager, mSecureSettings);
            } else {
                mFloatingMenu = new AccessibilityFloatingMenu(mContext, mSecureSettings);
            }
        }

        mFloatingMenu.show();
+0 −6
Original line number Diff line number Diff line
@@ -535,12 +535,6 @@ object Flags {
    // TODO(b/266983474) Tracking Bug
    val SHARESHEET_IMAGE_AND_TEXT_PREVIEW = unreleasedFlag(1503, "sharesheet_image_text_preview")

    // 1600 - accessibility
    // TODO(b/262224538): Tracking Bug
    @JvmField
    val A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS =
        releasedFlag(1600, "a11y_floating_menu_fling_spring_animations")

    // 1700 - clipboard
    @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag(1701, "clipboard_remote_behavior")

+10 −30
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ package com.android.systemui.accessibility.floatingmenu;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR;

import static com.android.systemui.flags.Flags.A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
@@ -46,7 +44,6 @@ import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
import com.android.systemui.flags.FakeFeatureFlags;
import com.android.systemui.settings.FakeDisplayTracker;
import com.android.systemui.util.settings.SecureSettings;

@@ -74,6 +71,7 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
    public MockitoRule mockito = MockitoJUnit.rule();

    private Context mContextWrapper;
    private WindowManager mWindowManager;
    private AccessibilityManager mAccessibilityManager;
    private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private AccessibilityFloatingMenuController mController;
@@ -97,6 +95,7 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
            }
        };

        mWindowManager = mContext.getSystemService(WindowManager.class);
        mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
        mLastButtonTargets = Settings.Secure.getStringForUser(mContextWrapper.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, UserHandle.USER_CURRENT);
@@ -158,7 +157,8 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
    public void onKeyguardVisibilityChanged_showing_destroyWidget() {
        enableAccessibilityFloatingMenuConfig();
        mController = setUpController();
        mController.mFloatingMenu = new AccessibilityFloatingMenu(mContextWrapper, mSecureSettings);
        mController.mFloatingMenu = new MenuViewLayerController(mContextWrapper, mWindowManager,
                mAccessibilityManager, mSecureSettings);
        captureKeyguardUpdateMonitorCallback();
        mKeyguardCallback.onUserUnlocked();

@@ -184,7 +184,8 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
        final int fakeUserId = 1;
        enableAccessibilityFloatingMenuConfig();
        mController = setUpController();
        mController.mFloatingMenu = new AccessibilityFloatingMenu(mContextWrapper, mSecureSettings);
        mController.mFloatingMenu = new MenuViewLayerController(mContextWrapper, mWindowManager,
                mAccessibilityManager, mSecureSettings);
        captureKeyguardUpdateMonitorCallback();

        mKeyguardCallback.onUserSwitching(fakeUserId);
@@ -197,7 +198,8 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
        final int fakeUserId = 1;
        enableAccessibilityFloatingMenuConfig();
        mController = setUpController();
        mController.mFloatingMenu = new AccessibilityFloatingMenu(mContextWrapper, mSecureSettings);
        mController.mFloatingMenu = new MenuViewLayerController(mContextWrapper, mWindowManager,
                mAccessibilityManager, mSecureSettings);
        captureKeyguardUpdateMonitorCallback();
        mKeyguardCallback.onUserUnlocked();
        mKeyguardCallback.onKeyguardVisibilityChanged(true);
@@ -317,41 +319,19 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
        assertThat(mController.mFloatingMenu).isNull();
    }

    @Test
    public void onTargetsChanged_flingSpringAnimationsDisabled_floatingMenuIsCreated() {
        Settings.Secure.putIntForUser(mContextWrapper.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU,
                UserHandle.USER_CURRENT);
        final FakeFeatureFlags featureFlags = new FakeFeatureFlags();
        featureFlags.set(A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS, false);

        mController = setUpController();
        mController.onAccessibilityButtonTargetsChanged(TEST_A11Y_BTN_TARGETS);

        assertThat(mController.mFloatingMenu).isInstanceOf(AccessibilityFloatingMenu.class);
    }

    @Test
    public void onTargetsChanged_isFloatingViewLayerControllerCreated() {
        Settings.Secure.putIntForUser(mContextWrapper.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU,
                UserHandle.USER_CURRENT);
        final FakeFeatureFlags featureFlags = new FakeFeatureFlags();
        featureFlags.set(A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS, true);

        mController = setUpController(featureFlags);
        mController = setUpController();
        mController.onAccessibilityButtonTargetsChanged(TEST_A11Y_BTN_TARGETS);

        assertThat(mController.mFloatingMenu).isInstanceOf(MenuViewLayerController.class);
    }

    private AccessibilityFloatingMenuController setUpController() {
        final FakeFeatureFlags featureFlags = new FakeFeatureFlags();
        featureFlags.set(A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS, false);
        return setUpController(featureFlags);
    }

    private AccessibilityFloatingMenuController setUpController(FakeFeatureFlags featureFlags) {
        final WindowManager windowManager = mContext.getSystemService(WindowManager.class);
        final DisplayManager displayManager = mContext.getSystemService(DisplayManager.class);
        final FakeDisplayTracker displayTracker = new FakeDisplayTracker(mContext);
@@ -361,7 +341,7 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
        final AccessibilityFloatingMenuController controller =
                new AccessibilityFloatingMenuController(mContextWrapper, windowManager,
                        displayManager, mAccessibilityManager, mTargetsObserver, mModeObserver,
                        mKeyguardUpdateMonitor, featureFlags, mSecureSettings, displayTracker);
                        mKeyguardUpdateMonitor, mSecureSettings, displayTracker);
        controller.init();

        return controller;