From f0711c6aa6d446e70adec8cf7dace437d0930352 Mon Sep 17 00:00:00 2001 From: adrianknight89 Date: Mon, 13 Feb 2017 07:47:59 -0600 Subject: [Android] Double tapping on context action should not crash (#609) * fix double tap nre * added sample code * new fix * added comment * better fix * edit position of change * changes --- .../Bugzilla45027.cs | 66 ++++++++++++++++++++++ .../Xamarin.Forms.Controls.Issues.Shared.projitems | 1 + 2 files changed, 67 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45027.cs (limited to 'Xamarin.Forms.Controls.Issues') diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45027.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45027.cs new file mode 100644 index 00000000..260967be --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45027.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; +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, 45027, "App crashes when double tapping on ToolbarItem or MenuItem very quickly", PlatformAffected.Android)] + public class Bugzilla45027 : TestContentPage // or TestMasterDetailPage, etc ... + { + protected override void Init() + { + var list = new List(); + for (var i = 0; i < 10; i++) + list.Add(i); + + var stackLayout = new StackLayout + { + Orientation = StackOrientation.Vertical, + Children = + { + new Label + { + Text = "Long tap list items to display context menu. Double tapping each action rapidly should not crash.", + HorizontalTextAlignment = TextAlignment.Center + } + } + }; + + var listView = new ListView + { + ItemsSource = list, + ItemTemplate = new DataTemplate(() => + { + var label = new Label(); + label.SetBinding(Label.TextProperty, new Binding(".")); + + return new ViewCell + { + View = new ContentView + { + Content = label, + }, + ContextActions = { new MenuItem + { + Text = "Action" + }, + new MenuItem + { + Text = "Delete", + IsDestructive = true + } } + }; + }) + }; + stackLayout.Children.Add(listView); + + Content = stackLayout; + } + } +} \ No newline at end of file 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 742c29a7..c69e1a31 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 @@ -157,6 +157,7 @@ + -- cgit v1.2.3