From 01abcf0e83fe58757661dcf6cfc0c2843fed570d Mon Sep 17 00:00:00 2001 From: David Vacca Date: Thu, 23 May 2019 18:26:51 -0700 Subject: [PATCH] Fix update of accessibilityStates in Android Summary: This diff fixes a bug on the update of accessibiltyState prop in RN Android. In particular, this bug was reproducible when a view has an accessibiltyState = ['disabled'] and there was a state update to set the {accessibiltyState = {null}}. In this scenario, the BaseViewManager.setViewStates method did not update the view with the default values for accessibilityState Reviewed By: sahrens Differential Revision: D15446078 fbshipit-source-id: 75f160916e55f0ee469516db2fe9b0a7d4758cd8 --- .../react/uimanager/BaseViewManager.java | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java index 94bfdbf91fc..524a4bf60c0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java @@ -33,8 +33,8 @@ import java.util.Map; import javax.annotation.Nullable; /** - * Base class that should be suitable for the majority of subclasses of {@link ViewManager}. - * It provides support for base view properties such as backgroundColor, opacity, etc. + * Base class that should be suitable for the majority of subclasses of {@link ViewManager}. It + * provides support for base view properties such as backgroundColor, opacity, etc. */ public abstract class BaseViewManager extends ViewManager { @@ -61,12 +61,11 @@ public abstract class BaseViewManager sStateDescription = new HashMap(); + static { - sStateDescription.put("busy", R.string.state_busy_description); - sStateDescription.put("expanded", R.string.state_expanded_description); - sStateDescription.put("collapsed", R.string.state_collapsed_description); + sStateDescription.put("busy", R.string.state_busy_description); + sStateDescription.put("expanded", R.string.state_expanded_description); + sStateDescription.put("collapsed", R.string.state_collapsed_description); } // State definition constants -- must match the definition in @@ -164,22 +164,22 @@ public abstract class BaseViewManager PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX) { - float invertedCameraDistance = (float) perspectiveArray[PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX]; + float invertedCameraDistance = + (float) perspectiveArray[PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX]; if (invertedCameraDistance == 0) { // Default camera distance, before scale multiplier (1280) invertedCameraDistance = 0.00078125f; @@ -343,9 +346,9 @@ public abstract class BaseViewManager getExportedCustomDirectEventTypeConstants() { return MapBuilder.builder() - .put("performAction", MapBuilder.of("registrationName", "onAccessibilityAction")) - .build(); + .put("performAction", MapBuilder.of("registrationName", "onAccessibilityAction")) + .build(); } }