Merge "Add back AccessibilityFloatingMenuController into StatusBar" into sc-v2-dev am: c5f676942a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16265250

Change-Id: Iba98bcc377f2b2d507030fa4921c1a3c20da77a2
This commit is contained in:
Jason Hsu
2021-12-01 02:08:46 +00:00
committed by Automerger Merge Worker
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

@@ -133,6 +133,7 @@ import com.android.systemui.InitController;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.SystemUI;
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;
@@ -732,6 +733,7 @@ public class StatusBar extends SystemUI implements
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
AccessibilityFloatingMenuController accessibilityFloatingMenuController,
Lazy<AssistManager> assistManagerLazy,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
@@ -834,6 +836,7 @@ public class StatusBar extends SystemUI implements
mVisualStabilityManager = visualStabilityManager;
mDeviceProvisionedController = deviceProvisionedController;
mNavigationBarController = navigationBarController;
mAccessibilityFloatingMenuController = accessibilityFloatingMenuController;
mAssistManagerLazy = assistManagerLazy;
mConfigurationController = configurationController;
mNotificationShadeWindowController = notificationShadeWindowController;
@@ -1048,6 +1051,8 @@ public class StatusBar extends SystemUI implements
mBatteryController.observe(mLifecycle, mBatteryStateChangeCallback);
mLifecycle.setCurrentState(RESUMED);
mAccessibilityFloatingMenuController.init();
// set the initial view visibility
int disabledFlags1 = result.mDisabledFlags1;
int disabledFlags2 = result.mDisabledFlags2;
@@ -3807,6 +3812,7 @@ public class StatusBar extends SystemUI 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;
@@ -184,6 +185,7 @@ public interface StatusBarPhoneModule {
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
AccessibilityFloatingMenuController accessibilityFloatingMenuController,
Lazy<AssistManager> assistManagerLazy,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
@@ -285,6 +287,7 @@ public interface StatusBarPhoneModule {
visualStabilityManager,
deviceProvisionedController,
navigationBarController,
accessibilityFloatingMenuController,
assistManagerLazy,
configurationController,
notificationShadeWindowController,

View File

@@ -282,9 +282,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;
@@ -216,6 +217,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;
@@ -403,6 +405,7 @@ public class StatusBarTest extends SysuiTestCase {
mVisualStabilityManager,
mDeviceProvisionedController,
mNavigationBarController,
mAccessibilityFloatingMenuController,
() -> mAssistManager,
configurationController,
mNotificationShadeWindowController,