summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android
diff options
context:
space:
mode:
authorJason Smith <jason.smith@xamarin.com>2017-01-21 04:52:26 -0800
committerKangho Hur <kangho.hur@samsung.com>2017-03-24 13:12:24 +0900
commit57d09a7da937379ef300bfed0d6864bd6ac2d469 (patch)
tree47ec04ad659775732b06e3432bbc751e830bed53 /Xamarin.Forms.Platform.Android
parent738485e38c0ee835caf84d5aeb041d4a7bea079a (diff)
downloadxamarin-forms-57d09a7da937379ef300bfed0d6864bd6ac2d469.tar.gz
xamarin-forms-57d09a7da937379ef300bfed0d6864bd6ac2d469.tar.bz2
xamarin-forms-57d09a7da937379ef300bfed0d6864bd6ac2d469.zip
[A]Fix potential crash when calling ClearFocus in SearchBarRenderer (#700)
Diffstat (limited to 'Xamarin.Forms.Platform.Android')
-rw-r--r--Xamarin.Forms.Platform.Android/Renderers/SearchBarRenderer.cs20
1 files changed, 16 insertions, 4 deletions
diff --git a/Xamarin.Forms.Platform.Android/Renderers/SearchBarRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/SearchBarRenderer.cs
index 468710ca..48bcf576 100644
--- a/Xamarin.Forms.Platform.Android/Renderers/SearchBarRenderer.cs
+++ b/Xamarin.Forms.Platform.Android/Renderers/SearchBarRenderer.cs
@@ -33,7 +33,7 @@ namespace Xamarin.Forms.Platform.Android
bool SearchView.IOnQueryTextListener.OnQueryTextSubmit(string query)
{
((ISearchBarController)Element).OnSearchButtonPressed();
- Control.ClearFocus();
+ ClearFocus(Control);
return true;
}
@@ -67,7 +67,7 @@ namespace Xamarin.Forms.Platform.Android
_inputType = InputTypes.ClassText | InputTypes.TextFlagAutoComplete | InputTypes.TextFlagNoSuggestions;
}
- searchView.ClearFocus();
+ ClearFocus(searchView);
UpdatePlaceholder();
UpdateText();
UpdateEnabled();
@@ -113,7 +113,7 @@ namespace Xamarin.Forms.Platform.Android
internal override void OnNativeFocusChanged(bool hasFocus)
{
if (hasFocus && !Element.IsEnabled)
- Control.ClearFocus();
+ ClearFocus(Control);
}
void UpdateAlignment()
@@ -148,7 +148,7 @@ namespace Xamarin.Forms.Platform.Android
SearchView control = Control;
if (!model.IsEnabled)
{
- control.ClearFocus();
+ ClearFocus(control);
// removes cursor in SearchView
control.SetInputType(InputTypes.Null);
}
@@ -156,6 +156,18 @@ namespace Xamarin.Forms.Platform.Android
control.SetInputType(_inputType);
}
+ void ClearFocus(SearchView view)
+ {
+ try
+ {
+ view.ClearFocus();
+ }
+ catch (Java.Lang.UnsupportedOperationException)
+ {
+ // silently catch these as they happen in the previewer due to some bugs in upstread android
+ }
+ }
+
void UpdateFont()
{
_editText = _editText ?? Control.GetChildrenOfType<EditText>().FirstOrDefault();