mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Disconnect the channel message handler when releasing the AccessibilityBridge (#18657)
This commit is contained in:
parent
685699b351
commit
042804b06d
@ -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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user