diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-22 16:57:32 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-22 16:57:32 +0300 |
| commit | 32aa3946cc1a0f5166ecff59dc229d0c02c7e9b6 (patch) | |
| tree | 535291d3f2809deed4b9a62d4aba5c71cac2a1ea | |
| parent | 19f535df56ba17760bc81351c91fc7b8bb568035 (diff) | |
Remove dead index parameter from _restore and _hardDelete in admin_trash_screen
The index was never used after identity-based removeWhere replaced index-based
removal. Drop it from the method signatures, the _TrashList/_TrashTile callback
types, and all call sites.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| -rw-r--r-- | player-android/lib/screens/admin_trash_screen.dart | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/player-android/lib/screens/admin_trash_screen.dart b/player-android/lib/screens/admin_trash_screen.dart index db0354a..768bb11 100644 --- a/player-android/lib/screens/admin_trash_screen.dart +++ b/player-android/lib/screens/admin_trash_screen.dart @@ -86,7 +86,7 @@ class _AdminTrashScreenState extends ConsumerState<AdminTrashScreen> { /// On error the item is re-appended to the list and a SnackBar reports the /// problem. Re-appending (rather than re-inserting at the original index) /// avoids position jitter from concurrent mutations. - Future<void> _restore(Media item, int index) async { + Future<void> _restore(Media item) async { // Identity-based removal (by id) avoids position drift from concurrent // operations that could shift list indices between tap and setState. setState(() => _items!.removeWhere((e) => e.id == item.id)); @@ -119,7 +119,7 @@ class _AdminTrashScreenState extends ConsumerState<AdminTrashScreen> { /// permanent removal. The server's GC worker completes the physical file /// removal. The item is removed from the local list optimistically and /// reverted on error. - Future<void> _hardDelete(Media item, int index) async { + Future<void> _hardDelete(Media item) async { final confirmed = await _confirmHardDelete(item.fileName); if (!confirmed || !mounted) return; @@ -260,8 +260,8 @@ class _TrashList extends StatelessWidget { }); final List<Media> items; - final Future<void> Function(Media item, int index) onRestore; - final Future<void> Function(Media item, int index) onHardDelete; + final Future<void> Function(Media item) onRestore; + final Future<void> Function(Media item) onHardDelete; @override Widget build(BuildContext context) { @@ -271,7 +271,6 @@ class _TrashList extends StatelessWidget { separatorBuilder: (_, __) => const Divider(height: 1), itemBuilder: (_, index) => _TrashTile( item: items[index], - index: index, onRestore: onRestore, onHardDelete: onHardDelete, ), @@ -283,15 +282,13 @@ class _TrashList extends StatelessWidget { class _TrashTile extends StatelessWidget { const _TrashTile({ required this.item, - required this.index, required this.onRestore, required this.onHardDelete, }); final Media item; - final int index; - final Future<void> Function(Media item, int index) onRestore; - final Future<void> Function(Media item, int index) onHardDelete; + final Future<void> Function(Media item) onRestore; + final Future<void> Function(Media item) onHardDelete; @override Widget build(BuildContext context) { @@ -313,14 +310,14 @@ class _TrashTile extends StatelessWidget { key: Key('admin_trash_restore_${item.id}'), icon: const Icon(Icons.restore_outlined), tooltip: 'Restore', - onPressed: () => onRestore(item, index), + onPressed: () => onRestore(item), ), IconButton( key: Key('admin_trash_delete_${item.id}'), icon: const Icon(Icons.delete_forever_outlined), tooltip: 'Delete permanently', color: Theme.of(context).colorScheme.error, - onPressed: () => onHardDelete(item, index), + onPressed: () => onHardDelete(item), ), ], ), |
