summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul DiPietro <pauldipietro@users.noreply.github.com>2016-10-26 12:11:58 -0500
committerRui Marinho <me@ruimarinho.net>2016-10-26 18:11:58 +0100
commita0fb20a075e89ddb8763faa1306f07041ea3d4fe (patch)
treeb35027444258882169967e24fdbafda446ddb890
parentb4a46d482f4b511de7e829f1cfe16aa81057560a (diff)
downloadxamarin-forms-a0fb20a075e89ddb8763faa1306f07041ea3d4fe.tar.gz
xamarin-forms-a0fb20a075e89ddb8763faa1306f07041ea3d4fe.tar.bz2
xamarin-forms-a0fb20a075e89ddb8763faa1306f07041ea3d4fe.zip
[iOS] Add check for UIGestureRecognizerState.Cancelled when closing context action (#442)
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44338.cs45
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems2
-rw-r--r--Xamarin.Forms.Platform.iOS/ContextScrollViewDelegate.cs2
3 files changed, 48 insertions, 1 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44338.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44338.cs
new file mode 100644
index 00000000..54fef829
--- /dev/null
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44338.cs
@@ -0,0 +1,45 @@
+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, 44338, "Tapping off of a cell with an open context action causes a crash in iOS 10", PlatformAffected.iOS)]
+ public class Bugzilla44338 : TestContentPage
+ {
+ protected override void Init()
+ {
+ string[] items = new string[] { "A", "B", "C" };
+ Content = new ListView
+ {
+ ItemsSource = items,
+ ItemTemplate = new DataTemplate(() =>
+ {
+ var label = new Label();
+ label.SetBinding(Label.TextProperty, ".");
+ var view = new ViewCell
+ {
+ View = new StackLayout
+ {
+ Children =
+ {
+ label
+ }
+ }
+ };
+ view.ContextActions.Add(new MenuItem
+ {
+ Text = "Action",
+ Command = new Command(() => DisplayAlert("Alert", "Context Action Pressed", "Close"))
+ });
+ return view;
+ })
+ };
+ }
+ }
+} \ 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 0e1f0297..5a62725a 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
@@ -129,9 +129,11 @@
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla43516.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44166.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44461.cs" />
+
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44584.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla42832.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44044.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla44338.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" />
diff --git a/Xamarin.Forms.Platform.iOS/ContextScrollViewDelegate.cs b/Xamarin.Forms.Platform.iOS/ContextScrollViewDelegate.cs
index bc04ede2..14f95a73 100644
--- a/Xamarin.Forms.Platform.iOS/ContextScrollViewDelegate.cs
+++ b/Xamarin.Forms.Platform.iOS/ContextScrollViewDelegate.cs
@@ -210,7 +210,7 @@ namespace Xamarin.Forms.Platform.iOS
void ClearCloserRecognizer(UIScrollView scrollView)
{
- if (_globalCloser == null)
+ if (_globalCloser == null || _globalCloser.State == UIGestureRecognizerState.Cancelled)
return;
var cell = GetContextCell(scrollView);