diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 54026a5671c..66b9a230ba2 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -48,6 +48,7 @@ import android.view.KeyEvent; import android.view.View; import android.view.View.AccessibilityDelegate; import android.view.ViewGroup; +import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.inputmethod.EditorInfo; @@ -1020,6 +1021,8 @@ public class WifiConfigController implements TextWatcher, mEapUserCertSpinner.setOnItemSelectedListener(this); mEapIdentityView = (TextView) mView.findViewById(R.id.identity); mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous); + + setAccessibilityDelegateForSecuritySpinners(); } if (refreshEapMethods) { @@ -1148,6 +1151,26 @@ public class WifiConfigController implements TextWatcher, } } + private void setAccessibilityDelegateForSecuritySpinners() { + final AccessibilityDelegate selectedEventBlocker = new AccessibilityDelegate() { + @Override + public void sendAccessibilityEvent(View host, int eventType) { + if (eventType == AccessibilityEvent.TYPE_VIEW_SELECTED) { + // Ignore TYPE_VIEW_SELECTED or there will be multiple Spinner selected + // information for WifiController#showSecurityFields. + return; + } + super.sendAccessibilityEvent(host, eventType); + } + }; + + mEapMethodSpinner.setAccessibilityDelegate(selectedEventBlocker); + mPhase2Spinner.setAccessibilityDelegate(selectedEventBlocker); + mEapCaCertSpinner.setAccessibilityDelegate(selectedEventBlocker); + mEapOcspSpinner.setAccessibilityDelegate(selectedEventBlocker); + mEapUserCertSpinner.setAccessibilityDelegate(selectedEventBlocker); + } + /** * EAP-PWD valid fields include * identity diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java index 4df0dfdc84e..ce0516d6f4d 100644 --- a/src/com/android/settings/wifi/WifiConfigController2.java +++ b/src/com/android/settings/wifi/WifiConfigController2.java @@ -46,6 +46,7 @@ import android.view.KeyEvent; import android.view.View; import android.view.View.AccessibilityDelegate; import android.view.ViewGroup; +import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.inputmethod.EditorInfo; @@ -1014,6 +1015,8 @@ public class WifiConfigController2 implements TextWatcher, mEapUserCertSpinner.setOnItemSelectedListener(this); mEapIdentityView = (TextView) mView.findViewById(R.id.identity); mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous); + + setAccessibilityDelegateForSecuritySpinners(); } if (refreshEapMethods) { @@ -1144,6 +1147,26 @@ public class WifiConfigController2 implements TextWatcher, } } + private void setAccessibilityDelegateForSecuritySpinners() { + final AccessibilityDelegate selectedEventBlocker = new AccessibilityDelegate() { + @Override + public void sendAccessibilityEvent(View host, int eventType) { + if (eventType == AccessibilityEvent.TYPE_VIEW_SELECTED) { + // Ignore TYPE_VIEW_SELECTED or there will be multiple Spinner selected + // information for WifiController2#showSecurityFields. + return; + } + super.sendAccessibilityEvent(host, eventType); + } + }; + + mEapMethodSpinner.setAccessibilityDelegate(selectedEventBlocker); + mPhase2Spinner.setAccessibilityDelegate(selectedEventBlocker); + mEapCaCertSpinner.setAccessibilityDelegate(selectedEventBlocker); + mEapOcspSpinner.setAccessibilityDelegate(selectedEventBlocker); + mEapUserCertSpinner.setAccessibilityDelegate(selectedEventBlocker); + } + /** * EAP-PWD valid fields include * identity