From 78cc1e54cb2c47b948fb69a0cc4adf791609465f Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:52:26 -0700 Subject: [PATCH 01/12] Allow control over NO_PERSONALIZED_LEARNING IME Flag --- .../embedding/engine/systemchannels/TextInputChannel.java | 4 ++++ .../android/io/flutter/plugin/editing/TextInputPlugin.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java index 79c8191079980..b927127378653 100644 --- a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java +++ b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java @@ -424,6 +424,7 @@ public static Configuration fromJson(@NonNull JSONObject json) json.optBoolean("obscureText"), json.optBoolean("autocorrect", true), json.optBoolean("enableSuggestions"), + json.optBoolean("requestPrivacy"), TextCapitalization.fromValue(json.getString("textCapitalization")), InputType.fromJson(json.getJSONObject("inputType")), inputAction, @@ -573,6 +574,7 @@ public Autofill( public final boolean obscureText; public final boolean autocorrect; public final boolean enableSuggestions; + public final boolean requestPrivacy; @NonNull public final TextCapitalization textCapitalization; @NonNull public final InputType inputType; @Nullable public final Integer inputAction; @@ -584,6 +586,7 @@ public Configuration( boolean obscureText, boolean autocorrect, boolean enableSuggestions, + boolean requestPrivacy, @NonNull TextCapitalization textCapitalization, @NonNull InputType inputType, @Nullable Integer inputAction, @@ -593,6 +596,7 @@ public Configuration( this.obscureText = obscureText; this.autocorrect = autocorrect; this.enableSuggestions = enableSuggestions; + this.requestPrivacy = requestPrivacy; this.textCapitalization = textCapitalization; this.inputType = inputType; this.inputAction = inputAction; diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index cd1e385d1b5bd..f2fe5fabd9ec6 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -14,6 +14,7 @@ import android.util.SparseArray; import android.view.KeyEvent; import android.view.View; +import android.widget.TextView; import android.view.ViewStructure; import android.view.WindowInsets; import android.view.autofill.AutofillId; @@ -230,6 +231,7 @@ private static int inputTypeFromTextInputType( boolean obscureText, boolean autocorrect, boolean enableSuggestions, + boolean requestPrivacy, TextInputChannel.TextCapitalization textCapitalization) { if (type.type == TextInputChannel.TextInputType.DATETIME) { return InputType.TYPE_CLASS_DATETIME; @@ -311,8 +313,9 @@ public InputConnection createInputConnection( configuration.obscureText, configuration.autocorrect, configuration.enableSuggestions, + configuration.requestPrivacy, configuration.textCapitalization); - outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; + outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN | EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; int enterAction; if (configuration.inputAction == null) { // If an explicit input action isn't set, then default to none for multi-line fields From 9e7c9c0d36d7c4f2f1ed6cee4fe9752a65f0adbd Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:55:07 -0700 Subject: [PATCH 02/12] remove textview import --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 1 - 1 file changed, 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index f2fe5fabd9ec6..837db44925ad6 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -14,7 +14,6 @@ import android.util.SparseArray; import android.view.KeyEvent; import android.view.View; -import android.widget.TextView; import android.view.ViewStructure; import android.view.WindowInsets; import android.view.autofill.AutofillId; From 2a0d4b411bc929589197c281f7b86c6f4fcd9c77 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:56:11 -0700 Subject: [PATCH 03/12] update --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 837db44925ad6..6565fc3b93462 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -314,7 +314,7 @@ public InputConnection createInputConnection( configuration.enableSuggestions, configuration.requestPrivacy, configuration.textCapitalization); - outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN | EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; + outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; int enterAction; if (configuration.inputAction == null) { // If an explicit input action isn't set, then default to none for multi-line fields From a89c8651e7a899502f0324672959d03123ba5bd3 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:57:19 -0700 Subject: [PATCH 04/12] update --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 6565fc3b93462..02b13044a2c95 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -314,7 +314,7 @@ public InputConnection createInputConnection( configuration.enableSuggestions, configuration.requestPrivacy, configuration.textCapitalization); - outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; + outAttrs.imeOptions = EditorInfo.IIME_FLAG_NO_PERSONALIZED_LEARNING; int enterAction; if (configuration.inputAction == null) { // If an explicit input action isn't set, then default to none for multi-line fields From 8ebbd6b6d7bb94fa5e3cea5fab3e3fcbe9d30d65 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:58:45 -0700 Subject: [PATCH 05/12] Test no personalized learning flag --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 02b13044a2c95..b91cd6285096a 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -314,7 +314,8 @@ public InputConnection createInputConnection( configuration.enableSuggestions, configuration.requestPrivacy, configuration.textCapitalization); - outAttrs.imeOptions = EditorInfo.IIME_FLAG_NO_PERSONALIZED_LEARNING; + outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN; + outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; int enterAction; if (configuration.inputAction == null) { // If an explicit input action isn't set, then default to none for multi-line fields From fc97878d347cc6fb4d689f6413d0e781ba65b87e Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 22:59:38 -0700 Subject: [PATCH 06/12] set imeOptions first --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index b91cd6285096a..1609d86a99896 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -314,7 +314,7 @@ public InputConnection createInputConnection( configuration.enableSuggestions, configuration.requestPrivacy, configuration.textCapitalization); - outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN; + outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; int enterAction; if (configuration.inputAction == null) { From 27a6a8256b4ad79ec7c8b4f5b9ef44b11defb003 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 22 Jul 2021 23:06:57 -0700 Subject: [PATCH 07/12] only set NO_PERSONALIZED_LEARNING flag when requested by framework --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 1609d86a99896..a155b97387184 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -315,7 +315,11 @@ public InputConnection createInputConnection( configuration.requestPrivacy, configuration.textCapitalization); outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; - outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; + + if (configuration.requestPrivacy) { + outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; + } + int enterAction; if (configuration.inputAction == null) { // If an explicit input action isn't set, then default to none for multi-line fields From 530ac2db623b76ffaa9043737e66d81d8951af0c Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Fri, 23 Jul 2021 00:53:33 -0700 Subject: [PATCH 08/12] update tests --- .../plugin/editing/TextInputPluginTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java index acf1d4fe7c790..7d981c1efe38e 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java @@ -151,6 +151,7 @@ public void setTextInputEditingState_doesNotInvokeUpdateEditingState() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -196,6 +197,7 @@ public void inputConnectionAdaptor_RepeatFilter() throws NullPointerException { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -284,6 +286,7 @@ public void setTextInputEditingState_doesNotRestartWhenTextIsIdentical() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -321,6 +324,7 @@ public void setTextInputEditingState_alwaysSetEditableWhenDifferent() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -367,6 +371,7 @@ public void setTextInputEditingState_restartsIMEOnlyWhenFrameworkChangesComposin false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -462,6 +467,7 @@ public void setTextInputEditingState_nullInputMethodSubtype() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -504,6 +510,7 @@ public void inputConnection_createsActionFromEnter() throws JSONException { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -582,6 +589,7 @@ public void inputConnection_finishComposingTextUpdatesIMM() throws JSONException false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -617,6 +625,7 @@ public void inputConnection_textInputTypeNone() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.NONE, false, false), null, @@ -646,6 +655,7 @@ public void showTextInput_textInputTypeNone() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.NONE, false, false), null, @@ -682,6 +692,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -693,6 +704,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -706,6 +718,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -754,6 +767,7 @@ public void autofill_onProvideVirtualViewStructure_single() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -805,6 +819,7 @@ public void autofill_testLifeCycle() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -816,6 +831,7 @@ public void autofill_testLifeCycle() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -830,6 +846,7 @@ public void autofill_testLifeCycle() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -872,6 +889,7 @@ public void autofill_testLifeCycle() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -926,6 +944,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -937,6 +956,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -949,6 +969,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1011,6 +1032,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1022,6 +1044,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1034,6 +1057,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, + false, TextInputChannel.TextCapitalization.NONE, null, null, From 7b4cfeb5b6e8861e77fcfade86d37ecc45cf05cb Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Sun, 25 Jul 2021 10:08:24 -0700 Subject: [PATCH 09/12] NO_PERSONALIZED_LEARNING only available on Android O and up --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index a155b97387184..908d745b4d06e 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -316,7 +316,7 @@ public InputConnection createInputConnection( configuration.textCapitalization); outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; - if (configuration.requestPrivacy) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && configuration.requestPrivacy) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; } From 18c69b7634cd7572e1b4b5f6da190b3f29bae9ec Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 29 Jul 2021 12:22:54 -0700 Subject: [PATCH 10/12] rename requestPrivacy to enableIMEPersonalizedLearning which defaults to true --- .../systemchannels/TextInputChannel.java | 8 ++-- .../plugin/editing/TextInputPlugin.java | 6 +-- .../plugin/editing/TextInputPluginTest.java | 48 +++++++++---------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java index b927127378653..d5236c4ff75fb 100644 --- a/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java +++ b/shell/platform/android/io/flutter/embedding/engine/systemchannels/TextInputChannel.java @@ -424,7 +424,7 @@ public static Configuration fromJson(@NonNull JSONObject json) json.optBoolean("obscureText"), json.optBoolean("autocorrect", true), json.optBoolean("enableSuggestions"), - json.optBoolean("requestPrivacy"), + json.optBoolean("enableIMEPersonalizedLearning"), TextCapitalization.fromValue(json.getString("textCapitalization")), InputType.fromJson(json.getJSONObject("inputType")), inputAction, @@ -574,7 +574,7 @@ public Autofill( public final boolean obscureText; public final boolean autocorrect; public final boolean enableSuggestions; - public final boolean requestPrivacy; + public final boolean enableIMEPersonalizedLearning; @NonNull public final TextCapitalization textCapitalization; @NonNull public final InputType inputType; @Nullable public final Integer inputAction; @@ -586,7 +586,7 @@ public Configuration( boolean obscureText, boolean autocorrect, boolean enableSuggestions, - boolean requestPrivacy, + boolean enableIMEPersonalizedLearning, @NonNull TextCapitalization textCapitalization, @NonNull InputType inputType, @Nullable Integer inputAction, @@ -596,7 +596,7 @@ public Configuration( this.obscureText = obscureText; this.autocorrect = autocorrect; this.enableSuggestions = enableSuggestions; - this.requestPrivacy = requestPrivacy; + this.enableIMEPersonalizedLearning = enableIMEPersonalizedLearning; this.textCapitalization = textCapitalization; this.inputType = inputType; this.inputAction = inputAction; diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 908d745b4d06e..da5128c30792a 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -230,7 +230,7 @@ private static int inputTypeFromTextInputType( boolean obscureText, boolean autocorrect, boolean enableSuggestions, - boolean requestPrivacy, + boolean enableIMEPersonalizedLearning, TextInputChannel.TextCapitalization textCapitalization) { if (type.type == TextInputChannel.TextInputType.DATETIME) { return InputType.TYPE_CLASS_DATETIME; @@ -312,11 +312,11 @@ public InputConnection createInputConnection( configuration.obscureText, configuration.autocorrect, configuration.enableSuggestions, - configuration.requestPrivacy, + configuration.enableIMEPersonalizedLearning, configuration.textCapitalization); outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && configuration.requestPrivacy) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !configuration.enableIMEPersonalizedLearning) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; } diff --git a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java index 7d981c1efe38e..2c928d8d6dff3 100644 --- a/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java +++ b/shell/platform/android/test/io/flutter/plugin/editing/TextInputPluginTest.java @@ -151,7 +151,7 @@ public void setTextInputEditingState_doesNotInvokeUpdateEditingState() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -197,7 +197,7 @@ public void inputConnectionAdaptor_RepeatFilter() throws NullPointerException { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -286,7 +286,7 @@ public void setTextInputEditingState_doesNotRestartWhenTextIsIdentical() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -324,7 +324,7 @@ public void setTextInputEditingState_alwaysSetEditableWhenDifferent() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -371,7 +371,7 @@ public void setTextInputEditingState_restartsIMEOnlyWhenFrameworkChangesComposin false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -467,7 +467,7 @@ public void setTextInputEditingState_nullInputMethodSubtype() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -510,7 +510,7 @@ public void inputConnection_createsActionFromEnter() throws JSONException { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -589,7 +589,7 @@ public void inputConnection_finishComposingTextUpdatesIMM() throws JSONException false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.TEXT, false, false), null, @@ -625,7 +625,7 @@ public void inputConnection_textInputTypeNone() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.NONE, false, false), null, @@ -655,7 +655,7 @@ public void showTextInput_textInputTypeNone() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, new TextInputChannel.InputType(TextInputChannel.TextInputType.NONE, false, false), null, @@ -692,7 +692,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -704,7 +704,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -718,7 +718,7 @@ public void autofill_onProvideVirtualViewStructure() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -767,7 +767,7 @@ public void autofill_onProvideVirtualViewStructure_single() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -819,7 +819,7 @@ public void autofill_testLifeCycle() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -831,7 +831,7 @@ public void autofill_testLifeCycle() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -846,7 +846,7 @@ public void autofill_testLifeCycle() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -889,7 +889,7 @@ public void autofill_testLifeCycle() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -944,7 +944,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -956,7 +956,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -969,7 +969,7 @@ public void autofill_testAutofillUpdatesTheFramework() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1032,7 +1032,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1044,7 +1044,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, @@ -1057,7 +1057,7 @@ public void autofill_testSetTextIpnutClientUpdatesSideFields() { false, false, true, - false, + true, TextInputChannel.TextCapitalization.NONE, null, null, From 70eb7f46c2ea0086f0ec5afc3dded090dd590554 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 29 Jul 2021 12:24:47 -0700 Subject: [PATCH 11/12] formatting fixes --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index da5128c30792a..88e9ce2259076 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -316,7 +316,8 @@ public InputConnection createInputConnection( configuration.textCapitalization); outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !configuration.enableIMEPersonalizedLearning) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + && !configuration.enableIMEPersonalizedLearning) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; } From 22164557cc8e3542dd201a651366350d34b3da06 Mon Sep 17 00:00:00 2001 From: Renzo-Olivares Date: Thu, 29 Jul 2021 12:25:29 -0700 Subject: [PATCH 12/12] Remove trailing whitespace --- .../android/io/flutter/plugin/editing/TextInputPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java index 88e9ce2259076..b466728a0b8cd 100644 --- a/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java +++ b/shell/platform/android/io/flutter/plugin/editing/TextInputPlugin.java @@ -316,7 +316,7 @@ public InputConnection createInputConnection( configuration.textCapitalization); outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !configuration.enableIMEPersonalizedLearning) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING; }