diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java index 90ef5b95b63..67a14361708 100644 --- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java @@ -20,6 +20,9 @@ import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.view.accessibility.AccessibilityEvent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -101,6 +104,7 @@ public class BluetoothDashboardFragment extends DashboardFragment { SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); mSwitchBar.setTitle(getContext().getString(R.string.bluetooth_main_switch_title)); + mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate()); mController = new BluetoothSwitchPreferenceController(activity, new MainSwitchBarController(mSwitchBar), mFooterPreference); mController.setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action)); @@ -127,4 +131,19 @@ public class BluetoothDashboardFragment extends DashboardFragment { public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) { return BluetoothDashboardScreen.KEY; } + + private static final class MainSwitchAccessibilityDelegate extends View.AccessibilityDelegate { + @Override + public boolean onRequestSendAccessibilityEvent( + @NonNull ViewGroup host, @NonNull View view, @NonNull AccessibilityEvent event) { + if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED + && (event.getContentChangeTypes() + & AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED) + != 0) { + Log.d(TAG, "Skip accessibility event for CONTENT_CHANGE_TYPE_ENABLED"); + return false; + } + return super.onRequestSendAccessibilityEvent(host, view, event); + } + } }