diff --git a/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java b/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java index e6df1723ffc5f..d887cdb8a8e9b 100644 --- a/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java +++ b/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java @@ -60,9 +60,6 @@ void didChangeEditingState( public ListenableEditingState( @Nullable TextInputChannel.TextEditState initialState, @NonNull View view) { super(); - if (initialState != null) { - setEditingState(initialState); - } Editable self = this; mDummyConnection = @@ -72,6 +69,10 @@ public Editable getEditable() { return self; } }; + + if (initialState != null) { + setEditingState(initialState); + } } public ArrayList extractBatchTextEditingDeltas() { diff --git a/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java b/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java index 11cd6a30d69cc..a269e5bd5ed46 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java @@ -42,6 +42,14 @@ public void setUp() { MockitoAnnotations.openMocks(this); } + @Test + public void testConstructor() { + // When provided valid composing range, should not fail + new ListenableEditingState( + new TextInputChannel.TextEditState("hello", 1, 4, 1, 4), + new View(RuntimeEnvironment.application)); + } + // -------- Start: Test BatchEditing ------- @Test public void testBatchEditing() {