diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
index a32d12af..400c91e8 100644
--- a/android/app/src/debug/AndroidManifest.xml
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -3,4 +3,17 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
+
+
+
+
\ No newline at end of file
diff --git a/lib/components/adaptive/adaptive_pop_sheet_list.dart b/lib/components/adaptive/adaptive_pop_sheet_list.dart
index 5be349c5..4f25dad1 100644
--- a/lib/components/adaptive/adaptive_pop_sheet_list.dart
+++ b/lib/components/adaptive/adaptive_pop_sheet_list.dart
@@ -1,4 +1,3 @@
-import 'package:flutter/material.dart' show showModalBottomSheet;
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/spotube_icons.dart';
@@ -26,7 +25,7 @@ class AdaptiveMenuButton extends MenuButton {
/// An adaptive widget that shows a [PopupMenuButton] when screen size is above
/// or equal to 640px
-/// In smaller screen, a [IconButton] with a [showModalBottomSheet] is shown
+/// In smaller screen, a [IconButton] with a [openDrawer] is shown
class AdaptivePopSheetList extends StatelessWidget {
final List> Function(BuildContext context) items;
final Widget? icon;
@@ -102,15 +101,13 @@ class AdaptivePopSheetList extends StatelessWidget {
return;
}
- showModalBottomSheet(
+ await openDrawer(
context: context,
- enableDrag: true,
+ draggable: true,
showDragHandle: true,
- useRootNavigator: true,
- shape: RoundedRectangleBorder(
- borderRadius: context.theme.borderRadiusMd,
- ),
- backgroundColor: context.theme.colorScheme.card,
+ position: OverlayPosition.bottom,
+ borderRadius: context.theme.borderRadiusMd,
+ transformBackdrop: false,
builder: (context) {
final children = childrenModified(context);
return ListView.builder(
@@ -127,7 +124,7 @@ class AdaptivePopSheetList extends StatelessWidget {
onPressed: () {
data.onPressed?.call(context);
if (data.autoClose) {
- Navigator.of(context).pop();
+ closeDrawer(context);
}
},
leading: data.leading,
diff --git a/lib/components/track_presentation/presentation_actions.dart b/lib/components/track_presentation/presentation_actions.dart
index 4948cf69..bbeb90a5 100644
--- a/lib/components/track_presentation/presentation_actions.dart
+++ b/lib/components/track_presentation/presentation_actions.dart
@@ -74,6 +74,26 @@ class TrackPresentationActionsSection extends HookConsumerWidget {
ref.watch(presentationStateProvider(options.collection).notifier);
final selectedTracks = state.selectedTracks;
+ Future actionDownloadTracks({
+ required BuildContext context,
+ required List