diff --git a/analysis_options.yaml b/analysis_options.yaml index ef1c2e56..e5eaf7ca 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -4,7 +4,7 @@ analyzer: exclude: - packages/*/lib/**/*.g.dart - packages/*/lib/src/emoji/** - - packages/*/lib/src/scrollable_positioned_list/** + - packages/*/lib/scrollable_positioned_list/** - packages/*/lib/**/*.freezed.dart linter: diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/LICENSE b/packages/stream_chat_flutter/lib/scrollable_positioned_list/LICENSE similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/LICENSE rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/LICENSE diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/scrollable_positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/scrollable_positioned_list.dart similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/scrollable_positioned_list.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/scrollable_positioned_list.dart diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/element_registry.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/element_registry.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/indexed_key.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/indexed_key.dart similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/indexed_key.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/indexed_key.dart diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_listener.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_listener.dart similarity index 90% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_listener.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_listener.dart index fbfd9c56..1b611393 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_listener.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_listener.dart @@ -4,8 +4,8 @@ import 'package:flutter/foundation.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/scrollable_positioned_list.dart'; /// Provides a listenable iterable of [itemPositions] of items that are on /// screen and their locations. diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_notifier.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_notifier.dart similarity index 80% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_notifier.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_notifier.dart index 172426a5..3b3645cb 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/item_positions_notifier.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/item_positions_notifier.dart @@ -4,7 +4,7 @@ import 'package:flutter/foundation.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_listener.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_listener.dart'; /// Internal implementation of [ItemPositionsListener]. class ItemPositionsNotifier implements ItemPositionsListener { diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart similarity index 96% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/positioned_list.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart index 96c9fb5a..081d67e0 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart @@ -8,11 +8,11 @@ import 'package:flutter/rendering.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/widgets.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/element_registry.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/indexed_key.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_listener.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/scroll_view.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/element_registry.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/indexed_key.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_listener.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/scroll_view.dart'; /// A list of widgets similar to [ListView], except scroll control /// and position reporting is based on index rather than pixel offset. diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/post_mount_callback.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/post_mount_callback.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scroll_view.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart similarity index 96% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scroll_view.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart index 9adacfeb..a0b499c0 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scroll_view.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart @@ -6,7 +6,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/viewport.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/viewport.dart'; /// {@template custom_scroll_view} /// A version of [CustomScrollView] that does not constrict the extents diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart similarity index 98% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart index 4b64bdfb..388e5979 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart @@ -10,10 +10,10 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/widgets.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_listener.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/post_mount_callback.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_listener.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/post_mount_callback.dart'; /// Number of screens to scroll when scrolling a long distance. const int _screenScrollCount = 2; diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/viewport.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart similarity index 100% rename from packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/viewport.dart rename to packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index ffab1d51..117ef211 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -7,10 +7,10 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:jiffy/jiffy.dart'; import 'package:rxdart/rxdart.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; import 'package:stream_chat_flutter/src/extension.dart'; import 'package:stream_chat_flutter/src/info_tile.dart'; import 'package:stream_chat_flutter/src/message_widget.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; import 'package:stream_chat_flutter/src/stream_svg_icon.dart'; import 'package:stream_chat_flutter/src/swipeable.dart'; import 'package:stream_chat_flutter/src/system_message.dart'; diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/README.md b/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/README.md deleted file mode 100644 index 41b1f70b..00000000 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# scrollable_positioned_list - -A flutter list that allows scrolling to a specific item in the list. - -Also allows determining what items are currently visible. - -## Usage - -A `ScrollablePositionedList` works much like the builder version of `ListView` -except that the list can be scrolled or jumped to a specific item. - -### Example - -A `ScrollablePositionedList` can be created with: - -```dart -final ItemScrollController itemScrollController = ItemScrollController(); -final ItemPositionsListener itemPositionsListener = ItemPositionsListener.create(); - -ScrollablePositionedList.builder( - itemCount: 500, - itemBuilder: (context, index) => Text('Item $index'), - itemScrollController: itemScrollController, - itemPositionsListener: itemPositionsListener, -); -``` - -One then can scroll to a particular item with: - -```dart -itemScrollController.scrollTo( - index: 150, - duration: Duration(seconds: 2), - curve: Curves.easeInOutCubic); -``` - -or jump to a particular item with: - -```dart -itemScrollController.jumpTo(index: 150); -``` - -One can monitor what items are visible on screen with: - -```dart -itemPositionsListener.itemPositions.addListener(() => ...); -``` - -A full example can be found in the example folder. - --------------------------------------------------------------------------------- - -This is not an officially supported Google product. diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart similarity index 99% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart index 5f34fc15..7c264e39 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/horizontal_scrollable_positioned_list_test.dart @@ -7,7 +7,7 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pedantic/pedantic.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/positioned_list_test.dart similarity index 97% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/positioned_list_test.dart index b3522391..9888249c 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/positioned_list_test.dart @@ -4,9 +4,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_positioned_list_test.dart similarity index 96% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_positioned_list_test.dart index 54aa4c02..272e2459 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_positioned_list_test.dart @@ -4,9 +4,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart similarity index 98% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart index 9e453259..f177b7db 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/reversed_scrollable_positioned_list_test.dart @@ -7,7 +7,7 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pedantic/pedantic.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/scrollable_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/scrollable_positioned_list_test.dart similarity index 99% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/scrollable_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/scrollable_positioned_list_test.dart index 4f0dcc1d..ae0e44fa 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/scrollable_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/scrollable_positioned_list_test.dart @@ -10,8 +10,8 @@ import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pedantic/pedantic.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/scroll_view.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/scroll_view.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/separated_positioned_list_test.dart similarity index 96% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/separated_positioned_list_test.dart index a4252a23..47f75a5e 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/separated_positioned_list_test.dart @@ -4,9 +4,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/item_positions_notifier.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/item_positions_notifier.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart similarity index 99% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart index 44164d6b..2242c533 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/separated_scrollable_positioned_list_test.dart @@ -7,8 +7,8 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pedantic/pedantic.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/src/scroll_view.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/src/scroll_view.dart'; const screenHeight = 400.0; const screenWidth = 400.0; diff --git a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart b/packages/stream_chat_flutter/test/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart similarity index 98% rename from packages/stream_chat_flutter/test/src/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart rename to packages/stream_chat_flutter/test/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart index 55935638..4057cab8 100644 --- a/packages/stream_chat_flutter/test/src/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart +++ b/packages/stream_chat_flutter/test/scrollable_positioned_list/seperated_horizontal_scrollable_positioned_list_test.dart @@ -7,7 +7,7 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pedantic/pedantic.dart'; -import 'package:stream_chat_flutter/src/scrollable_positioned_list/scrollable_positioned_list.dart'; +import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart'; const screenHeight = 400.0; const screenWidth = 400.0;