perf(android): batch setupAccessibleView calls to improve TTI (#10391)

This commit is contained in:
Ammar Ahmed
2023-09-28 05:57:17 +05:00
committed by GitHub
parent 2cb26c2231
commit a4bfbdaaa9

View File

@ -442,13 +442,28 @@ export function setupAccessibleView(view: View): void {
updateAccessibilityProperties(view);
}
export function updateAccessibilityProperties(view: View): void {
let updateAccessibilityPropertiesMicroTask;
let pendingViews = new Set<View>();
export function updateAccessibilityProperties(view: View) {
if (!view.nativeViewProtected) {
return;
}
pendingViews.add(view);
if (updateAccessibilityPropertiesMicroTask) return;
updateAccessibilityPropertiesMicroTask = true;
Promise.resolve().then(() => {
updateAccessibilityPropertiesMicroTask = false;
let _pendingViews = Array.from(pendingViews);
pendingViews = new Set();
for (const view of _pendingViews) {
if (!view.nativeViewProtected) continue;
setAccessibilityDelegate(view);
applyContentDescription(view);
}
_pendingViews = [];
});
}
export function sendAccessibilityEvent(view: View, eventType: AndroidAccessibilityEvent, text?: string): void {