From 38d6cff01a37a34cea8bdb6be98540c732e7178f Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Wed, 19 Jan 2022 08:10:24 +0800 Subject: [PATCH 1/4] Update ListenableEditingState.java --- .../io/flutter/plugin/editing/ListenableEditingState.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java b/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java index e6df1723ffc5f..edd71fc185c9c 100644 --- a/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java +++ b/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java @@ -141,7 +141,11 @@ public void setComposingRange(int composingStart, int composingEnd) { if (composingStart < 0 || composingStart >= composingEnd) { BaseInputConnection.removeComposingSpans(this); } else { - mDummyConnection.setComposingRegion(composingStart, composingEnd); + if (mDummyConnection != null) { + mDummyConnection.setComposingRegion(composingStart, composingEnd); + } else { + Log.w(TAG, "setComposingRange skip since mDummyConnection is null"); + } } } From 0a6fdb631c1419764896cd057cfa76fc1150f1b0 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Wed, 19 Jan 2022 08:17:17 +0800 Subject: [PATCH 2/4] Update ListenableEditingStateTest.java --- .../flutter/plugin/editing/ListenableEditingStateTest.java | 6 ++++++ 1 file changed, 6 insertions(+) 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..dc8f077c3c0a6 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,12 @@ 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() { From ca2149359a57ed6d2984c23f993b0b3b879aca27 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Wed, 19 Jan 2022 09:22:55 +0800 Subject: [PATCH 3/4] Update ListenableEditingStateTest.java --- .../io/flutter/plugin/editing/ListenableEditingStateTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 dc8f077c3c0a6..a269e5bd5ed46 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/ListenableEditingStateTest.java @@ -45,7 +45,9 @@ public void setUp() { @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)); + new ListenableEditingState( + new TextInputChannel.TextEditState("hello", 1, 4, 1, 4), + new View(RuntimeEnvironment.application)); } // -------- Start: Test BatchEditing ------- From b076bb03b1266507eb8c149e522548050984233f Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Wed, 19 Jan 2022 13:46:00 +0800 Subject: [PATCH 4/4] Update ListenableEditingState.java --- .../plugin/editing/ListenableEditingState.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java b/shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java index edd71fc185c9c..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() { @@ -141,11 +142,7 @@ public void setComposingRange(int composingStart, int composingEnd) { if (composingStart < 0 || composingStart >= composingEnd) { BaseInputConnection.removeComposingSpans(this); } else { - if (mDummyConnection != null) { - mDummyConnection.setComposingRegion(composingStart, composingEnd); - } else { - Log.w(TAG, "setComposingRange skip since mDummyConnection is null"); - } + mDummyConnection.setComposingRegion(composingStart, composingEnd); } }