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
This commit is contained in:
@@ -71,7 +71,9 @@ public abstract class SecureSettingsContentObserver<T> {
|
|||||||
public void addListener(@NonNull T listener) {
|
public void addListener(@NonNull T listener) {
|
||||||
Objects.requireNonNull(listener, "listener must be non-null");
|
Objects.requireNonNull(listener, "listener must be non-null");
|
||||||
|
|
||||||
mListeners.add(listener);
|
if (!mListeners.contains(listener)) {
|
||||||
|
mListeners.add(listener);
|
||||||
|
}
|
||||||
|
|
||||||
if (mListeners.size() == 1) {
|
if (mListeners.size() == 1) {
|
||||||
mContentResolver.registerContentObserver(
|
mContentResolver.registerContentObserver(
|
||||||
|
|||||||
@@ -98,7 +98,8 @@ public class AccessibilityFloatingMenuController implements
|
|||||||
mAccessibilityButtonModeObserver = accessibilityButtonModeObserver;
|
mAccessibilityButtonModeObserver = accessibilityButtonModeObserver;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
|
|
||||||
init();
|
mIsKeyguardVisible = false;
|
||||||
|
mIsAccessibilityManagerServiceReady = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -124,9 +125,8 @@ public class AccessibilityFloatingMenuController implements
|
|||||||
handleFloatingMenuVisibility(mIsKeyguardVisible, mBtnMode, mBtnTargets);
|
handleFloatingMenuVisibility(mIsKeyguardVisible, mBtnMode, mBtnTargets);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
/** Initializes the AccessibilityFloatingMenuController configurations. */
|
||||||
mIsKeyguardVisible = false;
|
public void init() {
|
||||||
mIsAccessibilityManagerServiceReady = false;
|
|
||||||
mBtnMode = mAccessibilityButtonModeObserver.getCurrentAccessibilityButtonMode();
|
mBtnMode = mAccessibilityButtonModeObserver.getCurrentAccessibilityButtonMode();
|
||||||
mBtnTargets = mAccessibilityButtonTargetsObserver.getCurrentAccessibilityButtonTargets();
|
mBtnTargets = mAccessibilityButtonTargetsObserver.getCurrentAccessibilityButtonTargets();
|
||||||
registerContentObservers();
|
registerContentObservers();
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ import com.android.systemui.EventLogTags;
|
|||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
import com.android.systemui.Prefs;
|
import com.android.systemui.Prefs;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.animation.DelegateLaunchAnimatorController;
|
import com.android.systemui.animation.DelegateLaunchAnimatorController;
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
@@ -736,6 +737,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
VisualStabilityManager visualStabilityManager,
|
VisualStabilityManager visualStabilityManager,
|
||||||
DeviceProvisionedController deviceProvisionedController,
|
DeviceProvisionedController deviceProvisionedController,
|
||||||
NavigationBarController navigationBarController,
|
NavigationBarController navigationBarController,
|
||||||
|
AccessibilityFloatingMenuController accessibilityFloatingMenuController,
|
||||||
Lazy<AssistManager> assistManagerLazy,
|
Lazy<AssistManager> assistManagerLazy,
|
||||||
ConfigurationController configurationController,
|
ConfigurationController configurationController,
|
||||||
NotificationShadeWindowController notificationShadeWindowController,
|
NotificationShadeWindowController notificationShadeWindowController,
|
||||||
@@ -839,6 +841,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
mVisualStabilityManager = visualStabilityManager;
|
mVisualStabilityManager = visualStabilityManager;
|
||||||
mDeviceProvisionedController = deviceProvisionedController;
|
mDeviceProvisionedController = deviceProvisionedController;
|
||||||
mNavigationBarController = navigationBarController;
|
mNavigationBarController = navigationBarController;
|
||||||
|
mAccessibilityFloatingMenuController = accessibilityFloatingMenuController;
|
||||||
mAssistManagerLazy = assistManagerLazy;
|
mAssistManagerLazy = assistManagerLazy;
|
||||||
mConfigurationController = configurationController;
|
mConfigurationController = configurationController;
|
||||||
mNotificationShadeWindowController = notificationShadeWindowController;
|
mNotificationShadeWindowController = notificationShadeWindowController;
|
||||||
@@ -1054,6 +1057,8 @@ public class StatusBar extends CoreStartable implements
|
|||||||
mBatteryController.observe(mLifecycle, mBatteryStateChangeCallback);
|
mBatteryController.observe(mLifecycle, mBatteryStateChangeCallback);
|
||||||
mLifecycle.setCurrentState(RESUMED);
|
mLifecycle.setCurrentState(RESUMED);
|
||||||
|
|
||||||
|
mAccessibilityFloatingMenuController.init();
|
||||||
|
|
||||||
// set the initial view visibility
|
// set the initial view visibility
|
||||||
int disabledFlags1 = result.mDisabledFlags1;
|
int disabledFlags1 = result.mDisabledFlags1;
|
||||||
int disabledFlags2 = result.mDisabledFlags2;
|
int disabledFlags2 = result.mDisabledFlags2;
|
||||||
@@ -3813,6 +3818,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
private final DeviceProvisionedController mDeviceProvisionedController;
|
private final DeviceProvisionedController mDeviceProvisionedController;
|
||||||
|
|
||||||
private final NavigationBarController mNavigationBarController;
|
private final NavigationBarController mNavigationBarController;
|
||||||
|
private final AccessibilityFloatingMenuController mAccessibilityFloatingMenuController;
|
||||||
|
|
||||||
// UI-specific methods
|
// UI-specific methods
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.android.internal.logging.MetricsLogger;
|
|||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.keyguard.ViewMediatorCallback;
|
import com.android.keyguard.ViewMediatorCallback;
|
||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
|
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
@@ -185,6 +186,7 @@ public interface StatusBarPhoneModule {
|
|||||||
VisualStabilityManager visualStabilityManager,
|
VisualStabilityManager visualStabilityManager,
|
||||||
DeviceProvisionedController deviceProvisionedController,
|
DeviceProvisionedController deviceProvisionedController,
|
||||||
NavigationBarController navigationBarController,
|
NavigationBarController navigationBarController,
|
||||||
|
AccessibilityFloatingMenuController accessibilityFloatingMenuController,
|
||||||
Lazy<AssistManager> assistManagerLazy,
|
Lazy<AssistManager> assistManagerLazy,
|
||||||
ConfigurationController configurationController,
|
ConfigurationController configurationController,
|
||||||
NotificationShadeWindowController notificationShadeWindowController,
|
NotificationShadeWindowController notificationShadeWindowController,
|
||||||
@@ -287,6 +289,7 @@ public interface StatusBarPhoneModule {
|
|||||||
visualStabilityManager,
|
visualStabilityManager,
|
||||||
deviceProvisionedController,
|
deviceProvisionedController,
|
||||||
navigationBarController,
|
navigationBarController,
|
||||||
|
accessibilityFloatingMenuController,
|
||||||
assistManagerLazy,
|
assistManagerLazy,
|
||||||
configurationController,
|
configurationController,
|
||||||
notificationShadeWindowController,
|
notificationShadeWindowController,
|
||||||
|
|||||||
@@ -291,9 +291,12 @@ public class AccessibilityFloatingMenuControllerTest extends SysuiTestCase {
|
|||||||
mTargetsObserver = spy(Dependency.get(AccessibilityButtonTargetsObserver.class));
|
mTargetsObserver = spy(Dependency.get(AccessibilityButtonTargetsObserver.class));
|
||||||
mModeObserver = spy(Dependency.get(AccessibilityButtonModeObserver.class));
|
mModeObserver = spy(Dependency.get(AccessibilityButtonModeObserver.class));
|
||||||
mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
|
mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
|
||||||
|
final AccessibilityFloatingMenuController controller =
|
||||||
|
new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
|
||||||
|
mModeObserver, mKeyguardUpdateMonitor);
|
||||||
|
controller.init();
|
||||||
|
|
||||||
return new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
|
return controller;
|
||||||
mModeObserver, mKeyguardUpdateMonitor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableAccessibilityFloatingMenuConfig() {
|
private void enableAccessibilityFloatingMenuConfig() {
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ import com.android.keyguard.ViewMediatorCallback;
|
|||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
@@ -219,6 +220,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private NotificationGutsManager mNotificationGutsManager;
|
@Mock private NotificationGutsManager mNotificationGutsManager;
|
||||||
@Mock private NotificationMediaManager mNotificationMediaManager;
|
@Mock private NotificationMediaManager mNotificationMediaManager;
|
||||||
@Mock private NavigationBarController mNavigationBarController;
|
@Mock private NavigationBarController mNavigationBarController;
|
||||||
|
@Mock private AccessibilityFloatingMenuController mAccessibilityFloatingMenuController;
|
||||||
@Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier;
|
@Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier;
|
||||||
@Mock private SysuiColorExtractor mColorExtractor;
|
@Mock private SysuiColorExtractor mColorExtractor;
|
||||||
@Mock private ColorExtractor.GradientColors mGradientColors;
|
@Mock private ColorExtractor.GradientColors mGradientColors;
|
||||||
@@ -416,6 +418,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mVisualStabilityManager,
|
mVisualStabilityManager,
|
||||||
mDeviceProvisionedController,
|
mDeviceProvisionedController,
|
||||||
mNavigationBarController,
|
mNavigationBarController,
|
||||||
|
mAccessibilityFloatingMenuController,
|
||||||
() -> mAssistManager,
|
() -> mAssistManager,
|
||||||
configurationController,
|
configurationController,
|
||||||
mNotificationShadeWindowController,
|
mNotificationShadeWindowController,
|
||||||
|
|||||||
Reference in New Issue
Block a user