From 144e21b3cb10c94f83299eef6df122474ea6297d Mon Sep 17 00:00:00 2001 From: Darren Austin Date: Thu, 10 Jun 2021 17:43:24 -0700 Subject: [PATCH] ReorderableListView should treat fuchsia as a mobile platform. (#84393) --- .../flutter/lib/src/material/reorderable_list.dart | 2 +- .../test/material/reorderable_list_test.dart | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/material/reorderable_list.dart b/packages/flutter/lib/src/material/reorderable_list.dart index 6ec672a30f4..90242de7cb7 100644 --- a/packages/flutter/lib/src/material/reorderable_list.dart +++ b/packages/flutter/lib/src/material/reorderable_list.dart @@ -421,7 +421,6 @@ class _ReorderableListViewState extends State { if (widget.buildDefaultDragHandles) { switch (Theme.of(context).platform) { - case TargetPlatform.fuchsia: case TargetPlatform.linux: case TargetPlatform.windows: case TargetPlatform.macOS: @@ -470,6 +469,7 @@ class _ReorderableListViewState extends State { case TargetPlatform.iOS: case TargetPlatform.android: + case TargetPlatform.fuchsia: return ReorderableDelayedDragStartListener( key: itemGlobalKey, index: index, diff --git a/packages/flutter/test/material/reorderable_list_test.dart b/packages/flutter/test/material/reorderable_list_test.dart index 9dd4ea16e15..af0e52260d6 100644 --- a/packages/flutter/test/material/reorderable_list_test.dart +++ b/packages/flutter/test/material/reorderable_list_test.dart @@ -1366,6 +1366,20 @@ void main() { }); // TODO(djshuckerow): figure out how to write a test for scrolling the list. + testWidgets('ReorderableListView on desktop platforms should have drag handles', (WidgetTester tester) async { + await tester.pumpWidget(build()); + // All four items should have drag handles and not delayed listeners. + expect(find.byIcon(Icons.drag_handle), findsNWidgets(4)); + expect(find.byType(ReorderableDelayedDragStartListener), findsNothing); + }, variant: TargetPlatformVariant.desktop()); + + testWidgets('ReorderableListView on mobile platforms should not have drag handles', (WidgetTester tester) async { + await tester.pumpWidget(build()); + // All four items should have delayed listeners and not drag handles. + expect(find.byType(ReorderableDelayedDragStartListener), findsNWidgets(4)); + expect(find.byIcon(Icons.drag_handle), findsNothing); + }, variant: TargetPlatformVariant.mobile()); + testWidgets('Vertical list renders drag handle in correct position', (WidgetTester tester) async { await tester.pumpWidget(build(platform: TargetPlatform.macOS)); final Finder listView = find.byType(ReorderableListView);