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

Commit 0e9addb0 authored by Riley Jones's avatar Riley Jones
Browse files

Stopped FAB from triggering onTargetFeaturesChanged off of changes unrelated to button targets

Test: atest com.android.systemui.accessibility.floatingmenu
Flag: aconfig floating_menu_narrow_content_observer ENABLED
Bug: 331740049
Change-Id: I4e37e28a8ff715e44af0969b9cbd78fc088174db
parent 2830e96f
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -31,6 +31,16 @@ flag {
    bug: "281150010"
}

flag {
    name: "floating_menu_narrow_target_content_observer"
    namespace: "accessibility"
    description: "stops the FAB from monitoring enabled services to trigger target content changes."
    bug: "331740049"
    metadata {
      purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "floating_menu_overlaps_nav_bars_flag"
    namespace: "accessibility"
+15 −9
Original line number Diff line number Diff line
@@ -244,11 +244,13 @@ class MenuInfoRepository {
                mSecureSettings.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS),
                /* notifyForDescendants */ false, mMenuTargetFeaturesContentObserver,
                UserHandle.USER_CURRENT);
        if (!com.android.systemui.Flags.floatingMenuNarrowTargetContentObserver()) {
            mSecureSettings.registerContentObserverForUser(
                    mSecureSettings.getUriFor(ENABLED_ACCESSIBILITY_SERVICES),
                    /* notifyForDescendants */ false,
                    mMenuTargetFeaturesContentObserver,
                    UserHandle.USER_CURRENT);
        }
        mSecureSettings.registerContentObserverForUser(
                mSecureSettings.getUriFor(Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE),
                /* notifyForDescendants */ false, mMenuSizeContentObserver,
@@ -263,9 +265,11 @@ class MenuInfoRepository {
                UserHandle.USER_CURRENT);
        mContext.registerComponentCallbacks(mComponentCallbacks);

        if (!com.android.systemui.Flags.floatingMenuNarrowTargetContentObserver()) {
            mAccessibilityManager.addAccessibilityServicesStateChangeListener(
                    mA11yServicesStateChangeListener);
        }
    }

    void unregisterObserversAndCallbacks() {
        mContext.getContentResolver().unregisterContentObserver(mMenuTargetFeaturesContentObserver);
@@ -273,9 +277,11 @@ class MenuInfoRepository {
        mContext.getContentResolver().unregisterContentObserver(mMenuFadeOutContentObserver);
        mContext.unregisterComponentCallbacks(mComponentCallbacks);

        if (!com.android.systemui.Flags.floatingMenuNarrowTargetContentObserver()) {
            mAccessibilityManager.removeAccessibilityServicesStateChangeListener(
                    mA11yServicesStateChangeListener);
        }
    }

    interface OnSettingsContentsChanged {
        void onTargetFeaturesChanged(List<AccessibilityTarget> newTargetFeatures);