From 3d9555d4208571ec063cd934fbb9014c252ff6d5 Mon Sep 17 00:00:00 2001 From: aj-rosado <109146700+aj-rosado@users.noreply.github.com> Date: Tue, 16 Aug 2022 18:54:28 +0100 Subject: [PATCH] [PS-1009] Changed keyboard on Passphrase generator to not allow emojis (#2038) * PS-1009 Added effect to Entry that doesn't allow keyboard with emojis on passphrase separator * PS-1009 Removed unnecessary ImeOptions setting from NoEmojiKeyboardEffect Improved code * PS-1009 Removed unnecessary null validation on Android's NoEmojiKeyboardEffect Co-authored-by: Federico Maccaroni --- src/Android/Android.csproj | 1 + src/Android/Effects/NoEmojiKeyboardEffect.cs | 24 ++++++++++++++++++ src/App/Effects/NoEmojiKeyboardEffect.cs | 12 +++++++++ src/App/Pages/Generator/GeneratorPage.xaml | 7 +++++- src/iOS.Core/Effects/NoEmojiKeyboardEffect.cs | 25 +++++++++++++++++++ src/iOS.Core/iOS.Core.csproj | 1 + 6 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/Android/Effects/NoEmojiKeyboardEffect.cs create mode 100644 src/App/Effects/NoEmojiKeyboardEffect.cs create mode 100644 src/iOS.Core/Effects/NoEmojiKeyboardEffect.cs diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj index 8826eb443..f85cd5c15 100644 --- a/src/Android/Android.csproj +++ b/src/Android/Android.csproj @@ -151,6 +151,7 @@ + diff --git a/src/Android/Effects/NoEmojiKeyboardEffect.cs b/src/Android/Effects/NoEmojiKeyboardEffect.cs new file mode 100644 index 000000000..618d9d487 --- /dev/null +++ b/src/Android/Effects/NoEmojiKeyboardEffect.cs @@ -0,0 +1,24 @@ +using Android.Widget; +using Bit.Droid.Effects; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportEffect(typeof(NoEmojiKeyboardEffect), nameof(NoEmojiKeyboardEffect))] +namespace Bit.Droid.Effects +{ + public class NoEmojiKeyboardEffect : PlatformEffect + { + protected override void OnAttached() + { + if (Control is EditText editText) + { + editText.InputType = Android.Text.InputTypes.ClassText | Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagMultiLine; + } + } + + protected override void OnDetached() + { + } + } +} + diff --git a/src/App/Effects/NoEmojiKeyboardEffect.cs b/src/App/Effects/NoEmojiKeyboardEffect.cs new file mode 100644 index 000000000..285d2b032 --- /dev/null +++ b/src/App/Effects/NoEmojiKeyboardEffect.cs @@ -0,0 +1,12 @@ +using System; +using Xamarin.Forms; + +namespace Bit.App.Effects +{ + public class NoEmojiKeyboardEffect : RoutingEffect + { + public NoEmojiKeyboardEffect() + : base("Bitwarden.NoEmojiKeyboardEffect") + { } + } +} diff --git a/src/App/Pages/Generator/GeneratorPage.xaml b/src/App/Pages/Generator/GeneratorPage.xaml index acaf7aacc..0f02b8a83 100644 --- a/src/App/Pages/Generator/GeneratorPage.xaml +++ b/src/App/Pages/Generator/GeneratorPage.xaml @@ -6,6 +6,7 @@ xmlns:pages="clr-namespace:Bit.App.Pages" xmlns:controls="clr-namespace:Bit.App.Controls" xmlns:u="clr-namespace:Bit.App.Utilities" + xmlns:effects="clr-namespace:Bit.App.Effects" x:DataType="pages:GeneratorPageViewModel" Title="{Binding PageTitle}"> @@ -128,7 +129,11 @@ Text="{Binding WordSeparator}" IsSpellCheckEnabled="False" IsTextPredictionEnabled="False" - StyleClass="box-value" /> + StyleClass="box-value"> + + + +