From b3dfdca8bdf6c6ca28c4a76ca92f175787c94e22 Mon Sep 17 00:00:00 2001 From: Valeri Gokadze Date: Wed, 20 Dec 2023 12:04:12 +0400 Subject: [PATCH] Improve: Improved mini player (Swipe left to skip to the previous track and swipe right to skip to the next track) --- .../metadata/android/en-US/changelogs/75.txt | 7 +++++++ lib/widgets/mini_player.dart | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/75.txt diff --git a/fastlane/metadata/android/en-US/changelogs/75.txt b/fastlane/metadata/android/en-US/changelogs/75.txt new file mode 100644 index 000000000..146dd27d3 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/75.txt @@ -0,0 +1,7 @@ +Bug fixes + + +Enhancements + +- Improved mini player (Swipe left to skip to the previous track and swipe right to skip to the next track) +- Made various quality and performance improvements for app stability and speed \ No newline at end of file diff --git a/lib/widgets/mini_player.dart b/lib/widgets/mini_player.dart index 68a059c50..e42c873ae 100644 --- a/lib/widgets/mini_player.dart +++ b/lib/widgets/mini_player.dart @@ -14,6 +14,8 @@ class MiniPlayer extends StatelessWidget { @override Widget build(BuildContext context) { + var _isHandlingSwipe = false; + return GestureDetector( onVerticalDragUpdate: (details) { if (details.primaryDelta! < 0) { @@ -25,6 +27,23 @@ class MiniPlayer extends StatelessWidget { ); } }, + onHorizontalDragUpdate: (details) { + if (details.primaryDelta! > 0) { + if (!_isHandlingSwipe) { + _isHandlingSwipe = true; + audioHandler.skipToPrevious().whenComplete(() { + _isHandlingSwipe = false; + }); + } + } else if (details.primaryDelta! < 0) { + if (!_isHandlingSwipe) { + _isHandlingSwipe = true; + audioHandler.skipToNext().whenComplete(() { + _isHandlingSwipe = false; + }); + } + } + }, child: Container( padding: const EdgeInsets.symmetric(horizontal: 12), height: 75,