未验证 提交 042804b0 编写于 作者: J Jason Simmons 提交者: GitHub

Disconnect the channel message handler when releasing the AccessibilityBridge (#18657)

上级 685699b3
......@@ -435,6 +435,7 @@ public class AccessibilityBridge extends AccessibilityNodeProvider {
touchExplorationStateChangeListener);
}
contentResolver.unregisterContentObserver(animationScaleObserver);
accessibilityChannel.setAccessibilityMessageHandler(null);
}
/** Returns true if the Android OS currently has accessibility enabled, false otherwise. */
......
......@@ -6,6 +6,7 @@ package io.flutter.view;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
......@@ -157,6 +158,20 @@ public class AccessibilityBridgeTest {
accessibilityBridge.onAccessibilityHoverEvent(MotionEvent.obtain(1, 1, 1, -10, -10, 0));
}
@Test
public void releaseDropsChannelMessageHandler() {
AccessibilityChannel mockChannel = mock(AccessibilityChannel.class);
AccessibilityManager mockManager = mock(AccessibilityManager.class);
when(mockManager.isEnabled()).thenReturn(true);
AccessibilityBridge accessibilityBridge =
setUpBridge(null, mockChannel, mockManager, null, null, null);
verify(mockChannel)
.setAccessibilityMessageHandler(
any(AccessibilityChannel.AccessibilityMessageHandler.class));
accessibilityBridge.release();
verify(mockChannel).setAccessibilityMessageHandler(null);
}
AccessibilityBridge setUpBridge() {
return setUpBridge(null, null, null, null, null, null);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册