Răsfoiți Sursa

fix crash with samsung keyboard when using password textboxes (#18793)

Emmanuel Hansen 5 luni în urmă
părinte
comite
f0b1a83a10

+ 3 - 3
src/Android/Avalonia.Android/Platform/Input/AvaloniaInputConnection.cs

@@ -279,20 +279,20 @@ namespace Avalonia.Android.Platform.Input
 
 
         public ICharSequence? GetSelectedTextFormatted([GeneratedEnum] GetTextFlags flags)
         public ICharSequence? GetSelectedTextFormatted([GeneratedEnum] GetTextFlags flags)
         {
         {
-            return new SpannableString(_editBuffer.SelectedText);
+            return new Java.Lang.String(_editBuffer.SelectedText ?? "");
         }
         }
 
 
         public ICharSequence? GetTextAfterCursorFormatted(int n, [GeneratedEnum] GetTextFlags flags)
         public ICharSequence? GetTextAfterCursorFormatted(int n, [GeneratedEnum] GetTextFlags flags)
         {
         {
             var end = Math.Min(_editBuffer.Selection.End, _editBuffer.Text.Length);
             var end = Math.Min(_editBuffer.Selection.End, _editBuffer.Text.Length);
-            return new SpannableString(_editBuffer.Text.Substring(end, Math.Min(n, _editBuffer.Text.Length - end)));
+            return new Java.Lang.String(_editBuffer.Text.Substring(end, Math.Min(n, _editBuffer.Text.Length - end)));
         }
         }
 
 
         public ICharSequence? GetTextBeforeCursorFormatted(int n, [GeneratedEnum] GetTextFlags flags)
         public ICharSequence? GetTextBeforeCursorFormatted(int n, [GeneratedEnum] GetTextFlags flags)
         {
         {
             var start = Math.Max(0, _editBuffer.Selection.Start - n);
             var start = Math.Max(0, _editBuffer.Selection.Start - n);
             var length = _editBuffer.Selection.Start - start;
             var length = _editBuffer.Selection.Start - start;
-            return _editBuffer.Text == null ? null : new SpannableString(_editBuffer.Text.Substring(start, length));
+            return _editBuffer.Text == null ? null : new Java.Lang.String(_editBuffer.Text.Substring(start, length));
         }
         }
 
 
         public bool PerformPrivateCommand(string? action, Bundle? data)
         public bool PerformPrivateCommand(string? action, Bundle? data)

+ 1 - 1
src/Android/Avalonia.Android/Platform/Input/TextEditBuffer.cs

@@ -96,7 +96,7 @@ namespace Avalonia.Android.Platform.Input
             SelectionStart = Selection.Start,
             SelectionStart = Selection.Start,
             SelectionEnd = Selection.End,
             SelectionEnd = Selection.End,
             StartOffset = 0,
             StartOffset = 0,
-            Text = new SpannableString(Text)
+            Text = new Java.Lang.String(Text)
         };
         };
 
 
         internal void Remove(int index, int length)
         internal void Remove(int index, int length)