@@ -4,6 +4,9 @@ import 'package:flood_mobile/Blocs/theme_bloc/theme_bloc.dart';
4
4
import 'package:flood_mobile/Model/torrent_model.dart' ;
5
5
import 'package:flood_mobile/Pages/widgets/flood_snackbar.dart' ;
6
6
import 'package:flood_mobile/l10n/l10n.dart' ;
7
+ import 'package:flutter_bloc/flutter_bloc.dart' ;
8
+
9
+ import '../../Blocs/home_screen_bloc/home_screen_bloc.dart' ;
7
10
8
11
class DeleteTorrentSheet extends StatefulWidget {
9
12
final int themeIndex;
@@ -118,6 +121,21 @@ class _DeleteTorrentSheetState extends State<DeleteTorrentSheet> {
118
121
),
119
122
child: ElevatedButton (
120
123
onPressed: () {
124
+ final homeScreenBloc =
125
+ BlocProvider .of <HomeScreenBloc >(context);
126
+ List <TorrentModel > torrentList =
127
+ homeScreenBloc.state.torrentList;
128
+
129
+ List <TorrentModel > remainingTorrents = torrentList
130
+ .where ((torrent) => ! widget.torrents.any (
131
+ (deletedTorrent) => deletedTorrent == torrent))
132
+ .toList ();
133
+
134
+ final SetTorrentListEvent setTorrentListEvent =
135
+ SetTorrentListEvent (
136
+ newTorrentList: remainingTorrents);
137
+ homeScreenBloc.add (setTorrentListEvent);
138
+
121
139
List <String > hashes = [];
122
140
widget.torrents.forEach ((element) {
123
141
hashes.add (element.hash);
@@ -132,7 +150,13 @@ class _DeleteTorrentSheetState extends State<DeleteTorrentSheet> {
132
150
final deleteTorrentSnackBar = addFloodSnackBar (
133
151
SnackbarType .caution,
134
152
context.l10n.torrent_delete_snackbar,
135
- context.l10n.button_dismiss);
153
+ context.l10n.button_dismiss,
154
+ undoText: context.l10n.button_undo, undoFunction: () {
155
+ final SetTorrentListEvent setTorrentListEvent =
156
+ SetTorrentListEvent (newTorrentList: torrentList);
157
+ homeScreenBloc.add (setTorrentListEvent);
158
+ TorrentApi .undoDelete (id: widget.indexes);
159
+ });
136
160
137
161
ScaffoldMessenger .of (context).clearSnackBars ();
138
162
ScaffoldMessenger .of (context)
0 commit comments