[A11Y][Wi-Fi] Fix multiple Spinner selected speak out at once.
When users select edit a Wi-Fi and select enterprise security, there are multiple spinner shows with a default value. This change does not allow TalkBack to speak out for multiple Spinner text at one user selection. Bug: 153272108 Test: manual Wi-Fi Settings -> Add network -> Security spinner -> WPA/WPA2/WPA3-Enterprise TalkBack should only speak out for the Security spinner. Change-Id: Id9ab44e4da6d7abb5168e0ab7441ee1e226f5f68
This commit is contained in:
@@ -48,6 +48,7 @@ import android.view.KeyEvent;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.AccessibilityDelegate;
|
import android.view.View.AccessibilityDelegate;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
|
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
@@ -1020,6 +1021,8 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
mEapUserCertSpinner.setOnItemSelectedListener(this);
|
mEapUserCertSpinner.setOnItemSelectedListener(this);
|
||||||
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
||||||
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
||||||
|
|
||||||
|
setAccessibilityDelegateForSecuritySpinners();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (refreshEapMethods) {
|
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
|
* EAP-PWD valid fields include
|
||||||
* identity
|
* identity
|
||||||
|
@@ -46,6 +46,7 @@ import android.view.KeyEvent;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.AccessibilityDelegate;
|
import android.view.View.AccessibilityDelegate;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
|
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
@@ -1014,6 +1015,8 @@ public class WifiConfigController2 implements TextWatcher,
|
|||||||
mEapUserCertSpinner.setOnItemSelectedListener(this);
|
mEapUserCertSpinner.setOnItemSelectedListener(this);
|
||||||
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
|
||||||
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
|
||||||
|
|
||||||
|
setAccessibilityDelegateForSecuritySpinners();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (refreshEapMethods) {
|
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
|
* EAP-PWD valid fields include
|
||||||
* identity
|
* identity
|
||||||
|
Reference in New Issue
Block a user