mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2026-02-20 08:19:35 +00:00
downloads and offline playback
This commit is contained in:
parent
1c95d1e4bb
commit
c24541f1cd
38 changed files with 1590 additions and 109 deletions
51
lib/features/downloads/view/downloads_page.dart
Normal file
51
lib/features/downloads/view/downloads_page.dart
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:whispering_pages/features/downloads/providers/download_manager.dart';
|
||||
|
||||
class DownloadsPage extends HookConsumerWidget {
|
||||
const DownloadsPage({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final manager = ref.read(simpleDownloadManagerProvider);
|
||||
final downloadHistory = ref.watch(downloadHistoryProvider());
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Downloads'),
|
||||
backgroundColor: Colors.transparent,
|
||||
),
|
||||
body: Center(
|
||||
// history of downloads
|
||||
child: downloadHistory.when(
|
||||
data: (records) {
|
||||
// each group is one list tile, which contains the files downloaded
|
||||
final uniqueGroups = records.map((e) => e.group).toSet();
|
||||
return ListView.builder(
|
||||
itemCount: uniqueGroups.length,
|
||||
itemBuilder: (context, index) {
|
||||
final group = uniqueGroups.elementAt(index);
|
||||
final groupRecords = records.where((e) => e.group == group);
|
||||
return ExpansionTile(
|
||||
title: Text(group ?? 'No Group'),
|
||||
children: groupRecords
|
||||
.map(
|
||||
(e) => ListTile(
|
||||
title: Text('${e.task.directory}/${e.task.filename}'),
|
||||
subtitle: Text(e.task.creationTime.toString()),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
loading: () => const CircularProgressIndicator(),
|
||||
error: (error, stackTrace) {
|
||||
return Text('Error: $error');
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue