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

Commit 5ad7f984 authored by jasonwshsu's avatar jasonwshsu
Browse files

Add back AccessibilityFloatingMenuController into StatusBar

Root Cause: Accessibility Floating Menu was disapeared from aosp rom
because of the missing link in StatusBar.

Solution: Add back link in StatusBar.

Bug: 206387234, 207070761
Test: flash aosp rom & verify floating a11y button appears
Change-Id: Iabb30895757afa1debe21d676cba019fef5c7c4e
parent 51f6e1fc
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -71,7 +71,9 @@ public abstract class SecureSettingsContentObserver<T> {
    public void addListener(@NonNull T listener) {
        Objects.requireNonNull(listener, "listener must be non-null");

        if (!mListeners.contains(listener)) {
            mListeners.add(listener);
        }

        if (mListeners.size() == 1) {
            mContentResolver.registerContentObserver(
+4 −4
Original line number Diff line number Diff line
@@ -98,7 +98,8 @@ public class AccessibilityFloatingMenuController implements
        mAccessibilityButtonModeObserver = accessibilityButtonModeObserver;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;

        init();
        mIsKeyguardVisible = false;
        mIsAccessibilityManagerServiceReady = false;
    }

    /**
@@ -124,9 +125,8 @@ public class AccessibilityFloatingMenuController implements
        handleFloatingMenuVisibility(mIsKeyguardVisible, mBtnMode, mBtnTargets);
    }

    private void init() {
        mIsKeyguardVisible = false;
        mIsAccessibilityManagerServiceReady = false;
    /** Initializes the AccessibilityFloatingMenuController configurations. */
    public void init() {
        mBtnMode = mAccessibilityButtonModeObserver.getCurrentAccessibilityButtonMode();
        mBtnTargets = mAccessibilityButtonTargetsObserver.getCurrentAccessibilityButtonTargets();
        registerContentObservers();
+6 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@ import com.android.systemui.EventLogTags;
import com.android.systemui.InitController;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.animation.DelegateLaunchAnimatorController;
import com.android.systemui.assist.AssistManager;
@@ -736,6 +737,7 @@ public class StatusBar extends CoreStartable implements
            VisualStabilityManager visualStabilityManager,
            DeviceProvisionedController deviceProvisionedController,
            NavigationBarController navigationBarController,
            AccessibilityFloatingMenuController accessibilityFloatingMenuController,
            Lazy<AssistManager> assistManagerLazy,
            ConfigurationController configurationController,
            NotificationShadeWindowController notificationShadeWindowController,
@@ -839,6 +841,7 @@ public class StatusBar extends CoreStartable implements
        mVisualStabilityManager = visualStabilityManager;
        mDeviceProvisionedController = deviceProvisionedController;
        mNavigationBarController = navigationBarController;
        mAccessibilityFloatingMenuController = accessibilityFloatingMenuController;
        mAssistManagerLazy = assistManagerLazy;
        mConfigurationController = configurationController;
        mNotificationShadeWindowController = notificationShadeWindowController;
@@ -1054,6 +1057,8 @@ public class StatusBar extends CoreStartable implements
        mBatteryController.observe(mLifecycle, mBatteryStateChangeCallback);
        mLifecycle.setCurrentState(RESUMED);

        mAccessibilityFloatingMenuController.init();

        // set the initial view visibility
        int disabledFlags1 = result.mDisabledFlags1;
        int disabledFlags2 = result.mDisabledFlags2;
@@ -3813,6 +3818,7 @@ public class StatusBar extends CoreStartable implements
    private final DeviceProvisionedController mDeviceProvisionedController;

    private final NavigationBarController mNavigationBarController;
    private final AccessibilityFloatingMenuController mAccessibilityFloatingMenuController;

    // UI-specific methods

+3 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.internal.logging.MetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.InitController;
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -185,6 +186,7 @@ public interface StatusBarPhoneModule {
            VisualStabilityManager visualStabilityManager,
            DeviceProvisionedController deviceProvisionedController,
            NavigationBarController navigationBarController,
            AccessibilityFloatingMenuController accessibilityFloatingMenuController,
            Lazy<AssistManager> assistManagerLazy,
            ConfigurationController configurationController,
            NotificationShadeWindowController notificationShadeWindowController,
@@ -287,6 +289,7 @@ public interface StatusBarPhoneModule {
                visualStabilityManager,
                deviceProvisionedController,
                navigationBarController,
                accessibilityFloatingMenuController,
                assistManagerLazy,
                configurationController,
                notificationShadeWindowController,
+5 −2
Original line number Diff line number Diff line
@@ -291,9 +291,12 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
        mTargetsObserver = spy(Dependency.get(AccessibilityButtonTargetsObserver.class));
        mModeObserver = spy(Dependency.get(AccessibilityButtonModeObserver.class));
        mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);

        return new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
        final AccessibilityFloatingMenuController controller =
                new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
                        mModeObserver, mKeyguardUpdateMonitor);
        controller.init();

        return controller;
    }

    private void enableAccessibilityFloatingMenuConfig() {
Loading