Skip to content

Commit c1d0ccd

Browse files
Ziqi Chenfacebook-github-bot
Ziqi Chen
authored andcommitted
added android functionality for currentViewStates
Summary: Added native android support for the prop accessibilityStates. If 'selected' is passed in, it calls view.setSelected(true) If 'disabled' is passed in, it calls view.setEnabled(false) If both are passed in, both are set on the view. Reviewed By: blavalla Differential Revision: D8838407 fbshipit-source-id: a942dabcdc5d9e35f0316465e97317739a8b4b25
1 parent edf7100 commit c1d0ccd

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

ReactAndroid/src/main/java/com/facebook/react/uimanager/AccessibilityRoleUtil.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
1313
import android.view.View;
1414
import android.view.accessibility.AccessibilityNodeInfo;
15+
import com.facebook.react.bridge.ReadableArray;
1516
import javax.annotation.Nullable;
1617

1718
/**
@@ -102,7 +103,7 @@ public static void setRole(AccessibilityNodeInfoCompat nodeInfo, final Accessibi
102103
}
103104

104105
/**
105-
* Variables and methods for setting accessibilityRole on view properties.
106+
* Method for setting accessibilityRole on view properties.
106107
*/
107108
public static void updateAccessibilityRole(View view, String role) {
108109
if (role == null) {

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java

+15
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
3030
private static final String PROP_ACCESSIBILITY_COMPONENT_TYPE = "accessibilityComponentType";
3131
private static final String PROP_ACCESSIBILITY_LIVE_REGION = "accessibilityLiveRegion";
3232
private static final String PROP_ACCESSIBILITY_ROLE = "accessibilityRole";
33+
private static final String PROP_CURRENT_VIEW_STATES = "currentViewStates";
3334
private static final String PROP_IMPORTANT_FOR_ACCESSIBILITY = "importantForAccessibility";
3435

3536
// DEPRECATED
@@ -123,6 +124,20 @@ public void setAccessibilityRole(T view, String accessibilityRole) {
123124
AccessibilityRoleUtil.updateAccessibilityRole(view, accessibilityRole);
124125
}
125126

127+
@ReactProp(name = PROP_CURRENT_VIEW_STATES)
128+
public void setViewStates(T view, ReadableArray currentViewStates) {
129+
view.setSelected(false);
130+
view.setEnabled(true);
131+
for (int i = 0; i < currentViewStates.size(); i++) {
132+
String state = currentViewStates.getString(i);
133+
if (state.equals("selected")) {
134+
view.setSelected(true);
135+
} else if (state.equals("disabled")) {
136+
view.setEnabled(false);
137+
}
138+
}
139+
}
140+
126141
@ReactProp(name = PROP_IMPORTANT_FOR_ACCESSIBILITY)
127142
public void setImportantForAccessibility(T view, String importantForAccessibility) {
128143
if (importantForAccessibility == null || importantForAccessibility.equals("auto")) {

0 commit comments

Comments
 (0)