AccessibilityInfo.announceForAccessibility (#24746)

Summary:
AccessibilityInfo.announceForAccessibility is currently only available on iOS. I've added the Android specific implementation, updated RNTester, and the documentation.

[Android] [Added] - Added AccessibilityInfo.announceForAccessibility for Android
[General] [Added] - RNTester example for AccessibilityInfo.announceForAccessibility
Pull Request resolved: https://github.com/facebook/react-native/pull/24746

Differential Revision: D15258054

Pulled By: cpojer

fbshipit-source-id: 3e057a5c32b28e30ea2ee74a18854b012cd2dbfd
This commit is contained in:
Alan Kenyon
2019-05-08 03:54:55 -07:00
committed by Facebook Github Bot
parent 9261035c2b
commit 09f17a4e29
4 changed files with 46 additions and 2 deletions
@@ -16,6 +16,7 @@ import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import com.facebook.react.bridge.Callback;
@@ -170,4 +171,18 @@ public class AccessibilityInfoModule extends ReactContextBaseJavaModule
@Override
public void onHostDestroy() {
}
@ReactMethod
public void announceForAccessibility(String message) {
if (mAccessibilityManager == null || !mAccessibilityManager.isEnabled()) {
return;
}
AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
event.getText().add(message);
event.setClassName(AccessibilityInfoModule.class.getName());
event.setPackageName(getReactApplicationContext().getPackageName());
mAccessibilityManager.sendAccessibilityEvent(event);
}
}