diff --git a/app/lib/features/bangs/domain/repositories/data.dart b/app/lib/features/bangs/domain/repositories/data.dart index c51f672c..ae71cb27 100644 --- a/app/lib/features/bangs/domain/repositories/data.dart +++ b/app/lib/features/bangs/domain/repositories/data.dart @@ -97,7 +97,11 @@ class BangDataRepository extends _$BangDataRepository { return _db.bangIcon.deleteAll(); } - Future clearFrequency() { + Future resetFrequencies() { return _db.bangFrequency.deleteAll(); } + + Future resetFrequency(String trigger) { + return _db.bangFrequency.deleteWhere((t) => t.trigger.equals(trigger)); + } } diff --git a/app/lib/features/bangs/domain/repositories/data.g.dart b/app/lib/features/bangs/domain/repositories/data.g.dart index d79cf558..f70405ce 100644 --- a/app/lib/features/bangs/domain/repositories/data.g.dart +++ b/app/lib/features/bangs/domain/repositories/data.g.dart @@ -7,7 +7,7 @@ part of 'data.dart'; // ************************************************************************** String _$bangDataRepositoryHash() => - r'369790e5e6b9c70daa04a898c40f0bed5e008400'; + r'ef06babcaa07361e37f5cc62a268eb10aed0fc82'; /// See also [BangDataRepository]. @ProviderFor(BangDataRepository) diff --git a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart index 646d7f56..eb3d5e1c 100644 --- a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart +++ b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart @@ -74,7 +74,7 @@ class SearchTab extends HookConsumerWidget { .read(selectedBangTriggerProvider().notifier) .setTrigger(trigger); }, - onDeleted: (trigger) { + onDeleted: (trigger) async { if (ref.read(selectedBangTriggerProvider()) == trigger) { ref @@ -82,6 +82,36 @@ class SearchTab extends HookConsumerWidget { selectedBangTriggerProvider().notifier, ) .clearTrigger(); + } else { + final dialogResult = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text( + 'Reset usage frequency of !$trigger?', + ), + content: const Text( + 'This will remove the Bang from quick select.', + ), + actions: [ + TextButton( + onPressed: () => + Navigator.pop(context, false), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => + Navigator.pop(context, true), + child: const Text('Reset'), + ), + ], + ), + ); + + if (dialogResult == true) { + await ref + .read(bangDataRepositoryProvider.notifier) + .resetFrequency(trigger); + } } }, ), diff --git a/app/lib/features/settings/presentation/screens/settings.dart b/app/lib/features/settings/presentation/screens/settings.dart index 33a36070..cdae47d1 100644 --- a/app/lib/features/settings/presentation/screens/settings.dart +++ b/app/lib/features/settings/presentation/screens/settings.dart @@ -249,7 +249,7 @@ class SettingsScreen extends HookConsumerWidget { onPressed: () async { await ref .read(bangDataRepositoryProvider.notifier) - .clearFrequency(); + .resetFrequencies(); }, icon: const Icon(Icons.delete), label: const Text('Clear'),