[Android] Do not show cell context actions if input views are long clicked (#544)
authoradrianknight89 <adrianknight89@outlook.com>
Fri, 18 Nov 2016 19:46:34 +0000 (13:46 -0600)
committerRui Marinho <me@ruimarinho.net>
Fri, 18 Nov 2016 19:46:34 +0000 (19:46 +0000)
* Disable long click on cells if touch is on an input view

* remove redundant check

Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla46630.cs [new file with mode: 0644]
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems
Xamarin.Forms.Platform.Android/CellAdapter.cs

diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla46630.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla46630.cs
new file mode 100644 (file)
index 0000000..76e2048
--- /dev/null
@@ -0,0 +1,55 @@
+using System.Collections.Generic;
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+// Apply the default category of "Issues" to all of the tests in this assembly
+// We use this as a catch-all for tests which haven't been individually categorized
+#if UITEST
+[assembly: NUnit.Framework.Category("Issues")]
+#endif
+
+namespace Xamarin.Forms.Controls.Issues
+{
+       [Preserve(AllMembers = true)]
+       [Issue(IssueTracker.Bugzilla, 46630, "Issue Description", PlatformAffected.Android)]
+       public class Bugzilla46630 : TestContentPage
+       {
+               protected override void Init()
+               {
+                       Content = new ListView
+                       {
+                               HasUnevenRows = true,
+                               ItemsSource = new List<int> { 0 },
+                               ItemTemplate = new DataTemplate(() => new ViewCell
+                               {
+                                       Height = 300,
+                                       ContextActions =
+                                       {
+                                               new MenuItem {Text = "Action1"},
+                                               new MenuItem {Text = "Action2"}
+                                       },
+                                       View = new StackLayout
+                                       {
+                                               Orientation = StackOrientation.Vertical,
+                                               Spacing = 10,
+                                               HorizontalOptions = LayoutOptions.FillAndExpand,
+                                               Padding = 10,
+                                               Children =
+                                               {
+                                                       new Label { HeightRequest = 50, BackgroundColor = Color.Coral, Text = "Long click each cell. Input views should not display context actions."},
+                                                       new Editor { HeightRequest = 50, BackgroundColor = Color.Bisque, Text = "Editor"},
+                                                       new Entry { HeightRequest = 50, BackgroundColor = Color.Aqua, Text = "Entry"},
+                                                       new SearchBar { HeightRequest = 50, BackgroundColor = Color.CornflowerBlue, Text = "SearchBar"},
+                                                       new Grid { HeightRequest = 50, BackgroundColor = Color.PaleVioletRed}
+                                               }
+                                       }
+                               })
+                       };
+               }
+       }
+}
\ No newline at end of file
index 7b0fda6..138e425 100644 (file)
     <Compile Include="$(MSBuildThisFileDirectory)Bugzilla45743.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Bugzilla46494.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Bugzilla44476.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Bugzilla46630.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" />
       <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
     </EmbeddedResource>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
index 02bf7a3..03957d3 100644 (file)
@@ -214,6 +214,9 @@ namespace Xamarin.Forms.Platform.Android
 
                bool HandleContextMode(AView view, int position)
                {
+                       if (view is EditText || view is TextView || view is SearchView)
+                               return false;
+
                        Cell cell = GetCellForPosition(position);
 
                        if (cell == null)