Merge "Add back AccessibilityFloatingMenuController into StatusBar"

This commit is contained in:
Jason Hsu
2021-11-30 14:32:46 +00:00
committed by Android (Google) Code Review
6 changed files with 24 additions and 7 deletions

View File

@@ -71,7 +71,9 @@ public abstract class SecureSettingsContentObserver<T> {
public void addListener(@NonNull T listener) {
Objects.requireNonNull(listener, "listener must be non-null");
mListeners.add(listener);
if (!mListeners.contains(listener)) {
mListeners.add(listener);
}
if (mListeners.size() == 1) {
mContentResolver.registerContentObserver(

View File

@@ -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();

View File

@@ -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

View File

@@ -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,

View File

@@ -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);
final AccessibilityFloatingMenuController controller =
new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
mModeObserver, mKeyguardUpdateMonitor);
controller.init();
return new AccessibilityFloatingMenuController(mContextWrapper, mTargetsObserver,
mModeObserver, mKeyguardUpdateMonitor);
return controller;
}
private void enableAccessibilityFloatingMenuConfig() {

View File

@@ -77,6 +77,7 @@ import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.InitController;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
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;
@@ -219,6 +220,7 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private NotificationGutsManager mNotificationGutsManager;
@Mock private NotificationMediaManager mNotificationMediaManager;
@Mock private NavigationBarController mNavigationBarController;
@Mock private AccessibilityFloatingMenuController mAccessibilityFloatingMenuController;
@Mock private BypassHeadsUpNotifier mBypassHeadsUpNotifier;
@Mock private SysuiColorExtractor mColorExtractor;
@Mock private ColorExtractor.GradientColors mGradientColors;
@@ -416,6 +418,7 @@ public class StatusBarTest extends SysuiTestCase {
mVisualStabilityManager,
mDeviceProvisionedController,
mNavigationBarController,
mAccessibilityFloatingMenuController,
() -> mAssistManager,
configurationController,
mNotificationShadeWindowController,