diff options
author | Paul DiPietro <pauldipietro@users.noreply.github.com> | 2016-08-02 11:15:35 -0500 |
---|---|---|
committer | Samantha Houts <samantha@teamredwall.com> | 2016-08-02 09:15:35 -0700 |
commit | ac44cf9dec53b3b8be1836f20479f01820f3667f (patch) | |
tree | 3b5ebf0580020e3ef5fc4d73d51e87c50f608719 /Xamarin.Forms.Controls.Issues | |
parent | ea01c07aa32e39e947104253a44566dded50123e (diff) | |
download | xamarin-forms-ac44cf9dec53b3b8be1836f20479f01820f3667f.tar.gz xamarin-forms-ac44cf9dec53b3b8be1836f20479f01820f3667f.tar.bz2 xamarin-forms-ac44cf9dec53b3b8be1836f20479f01820f3667f.zip |
[Android] Add null check to prevent crashes when long clicking a text entry in ListView header/footer (#271)
When a text entry control (Entry, Editor, SearchBar, etc.) was being used in the header or
footer of a ListView on Android, a long click/press would cause a crash. This was occurring
in the HandleContextMode method because it expected to be a cell. Adding a null check and
breaking out of the method if the value from GetCellForPosition is null prevents this crash
from occurring.
Diffstat (limited to 'Xamarin.Forms.Controls.Issues')
2 files changed, 56 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40858.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40858.cs new file mode 100644 index 00000000..0bb024ca --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40858.cs @@ -0,0 +1,55 @@ +using System; + +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 40858, "Long clicking a text entry in a ListView header/footer cause a crash", PlatformAffected.Android)] + public class Bugzilla40858 : TestContentPage + { + protected override void Init() + { + Content = new StackLayout + { + Children = + { + new ListView + { + Header = new Editor + { + AutomationId = "Header", + HeightRequest = 50, + Text = "ListView Header -- Editor" + }, + Footer = new Entry + { + AutomationId = "Footer", + HeightRequest = 50, + Text = "ListView Footer -- Entry" + } + } + } + }; + } + +#if UITEST + +#if __ANDROID__ + [Test] + public void ListViewDoesNotCrashOnTextEntryHeaderOrFooterLongClick() + { + RunningApp.TouchAndHold(x => x.Marked("Header")); + RunningApp.TouchAndHold(x => x.Marked("Footer")); + } +#endif + +#endif + } +} diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 85c287f5..6531b47d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -104,6 +104,7 @@ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla40185.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla40333.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla31806.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)Bugzilla40858.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla40955.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla41078.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla40998.cs" /> |