Merge "[A11y] Ignore the INTERRUPT event in spinner." into main
diff --git a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
index 0f6a2a0..1170f1e 100644
--- a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
+++ b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/SettingsSpinnerPreference.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.AdapterView;
 import android.widget.Spinner;
 
@@ -110,7 +111,6 @@
         notifyChanged();
     }
 
-
     @Override
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
@@ -119,6 +119,18 @@
         spinner.setSelection(mPosition);
         spinner.setOnItemSelectedListener(mOnSelectedListener);
         spinner.setLongClickable(false);
+        spinner.setAccessibilityDelegate(
+                new View.AccessibilityDelegate() {
+                    @Override
+                    public void sendAccessibilityEvent(View host, int eventType) {
+                        if (eventType == AccessibilityEvent.TYPE_VIEW_SELECTED) {
+                            // Ignore the INTERRUPT events TYPE_VIEW_SELECTED or Talkback will speak
+                            // for it while fragment updating.
+                            return;
+                        }
+                        super.sendAccessibilityEvent(host, eventType);
+                    }
+                });
         if (mShouldPerformClick) {
             mShouldPerformClick = false;
             // To show dropdown view.