Merge two identical providers

Merge `isLongPressedMangaStateProvider` and `isLongPressedStateProvider`

Both providers do the same thing and it is impossible to change the value of the provider in different places in the app at the same time.

So just use one `isLongPressedStateProvider`. Reduces code duplication and there is no confusion about which one to use.
This commit is contained in:
NBA2K1 2025-07-29 14:02:48 +02:00
parent c2bae6d17b
commit 69df87ff0e
7 changed files with 22 additions and 46 deletions

View file

@ -18,6 +18,7 @@ import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/models/update.dart';
import 'package:mangayomi/modules/library/providers/add_torrent.dart';
import 'package:mangayomi/modules/library/providers/local_archive.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/manga/detail/providers/update_manga_detail_providers.dart';
import 'package:mangayomi/modules/more/categories/providers/isar_providers.dart';
import 'package:mangayomi/modules/more/settings/appearance/providers/theme_mode_state_provider.dart';
@ -560,7 +561,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
final mangaIds = ref.watch(mangasListStateProvider);
final color = Theme.of(context).textTheme.bodyLarge!.color!;
return BottomSelectBar(
isVisible: ref.watch(isLongPressedMangaStateProvider),
isVisible: ref.watch(isLongPressedStateProvider),
actions: [
BottomSelectButton(
icon: Icon(Icons.label_outline_rounded, color: color),
@ -1133,7 +1134,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
ref.read(mangasListStateProvider.notifier).clear();
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(false);
if (mounted) {
Navigator.pop(context);
@ -1786,7 +1787,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
int? categoryId,
Settings settings,
) {
final isLongPressed = ref.watch(isLongPressedMangaStateProvider);
final isLongPressed = ref.watch(isLongPressedStateProvider);
final mangaIdsList = ref.watch(mangasListStateProvider);
final manga = categoryId == null
? ref.watch(
@ -1815,7 +1816,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
ref.read(mangasListStateProvider.notifier).clear();
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(!isLongPressed);
},
icon: const Icon(Icons.clear),
@ -1840,7 +1841,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
.selectSome(manga);
}
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(false);
} else {
for (var manga in data) {

View file

@ -3,6 +3,7 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/manga/reader/providers/reader_controller_provider.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@ -785,7 +786,7 @@ class MangasListState extends _$MangasListState {
newList.add(value.id!);
}
if (newList.isEmpty) {
ref.read(isLongPressedMangaStateProvider.notifier).update(false);
ref.read(isLongPressedStateProvider.notifier).update(false);
}
state = newList;
}
@ -814,18 +815,6 @@ class MangasListState extends _$MangasListState {
}
}
@riverpod
class IsLongPressedMangaState extends _$IsLongPressedMangaState {
@override
bool build() {
return false;
}
void update(bool value) {
state = value;
}
}
@riverpod
class MangasSetIsReadState extends _$MangasSetIsReadState {
@override
@ -855,7 +844,7 @@ class MangasSetIsReadState extends _$MangasSetIsReadState {
isar.mangas.putAllSync(allMangas);
});
ref.read(isLongPressedMangaStateProvider.notifier).update(false);
ref.read(isLongPressedStateProvider.notifier).update(false);
ref.read(mangasListStateProvider.notifier).clear();
}
}

View file

@ -2517,7 +2517,7 @@ class _SortLibraryMangaStateProviderElement
Settings get settings => (origin as SortLibraryMangaStateProvider).settings;
}
String _$mangasListStateHash() => r'ad1cc419dfd3793bfc8c90f3ce8b7726561dd9ad';
String _$mangasListStateHash() => r'bbd2e3600ec22a774b1774ae3c221815e52bfef6';
/// See also [MangasListState].
@ProviderFor(MangasListState)
@ -2533,25 +2533,8 @@ final mangasListStateProvider =
);
typedef _$MangasListState = AutoDisposeNotifier<List<int>>;
String _$isLongPressedMangaStateHash() =>
r'f77076b0335e92df26a75ea0c338d4214a330184';
/// See also [IsLongPressedMangaState].
@ProviderFor(IsLongPressedMangaState)
final isLongPressedMangaStateProvider =
AutoDisposeNotifierProvider<IsLongPressedMangaState, bool>.internal(
IsLongPressedMangaState.new,
name: r'isLongPressedMangaStateProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$isLongPressedMangaStateHash,
dependencies: null,
allTransitiveDependencies: null,
);
typedef _$IsLongPressedMangaState = AutoDisposeNotifier<bool>;
String _$mangasSetIsReadStateHash() =>
r'0bc11e49fd33d7c76e86b005e6d30d7ac39bb5e2';
r'2a1b1005e2ed5068d36188a3fb969d21b64bfef6';
abstract class _$MangasSetIsReadState
extends BuildlessAutoDisposeNotifier<void> {

View file

@ -9,6 +9,7 @@ import 'package:mangayomi/models/history.dart';
import 'package:mangayomi/modules/library/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
import 'package:mangayomi/utils/constant.dart';
@ -52,7 +53,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
Widget build(BuildContext context) {
return Consumer(
builder: (context, ref, child) {
final isLongPressed = ref.watch(isLongPressedMangaStateProvider);
final isLongPressed = ref.watch(isLongPressedStateProvider);
final itemType = widget.itemType;
final gridSize = ref.watch(
@ -430,7 +431,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
) {
if (!isLongPressed) {
ref.read(mangasListStateProvider.notifier).update(entry);
ref.read(isLongPressedMangaStateProvider.notifier).update(!isLongPressed);
ref.read(isLongPressedStateProvider.notifier).update(!isLongPressed);
} else {
ref.read(mangasListStateProvider.notifier).update(entry);
}

View file

@ -9,6 +9,7 @@ import 'package:mangayomi/models/history.dart';
import 'package:mangayomi/modules/library/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
import 'package:mangayomi/utils/constant.dart';
@ -44,7 +45,7 @@ class LibraryListViewWidget extends StatelessWidget {
bool isLocalArchive = entry.isLocalArchive ?? false;
return Consumer(
builder: (context, ref, child) {
final isLongPressed = ref.watch(isLongPressedMangaStateProvider);
final isLongPressed = ref.watch(isLongPressedStateProvider);
return Material(
borderRadius: BorderRadius.circular(5),
color: Colors.transparent,
@ -80,7 +81,7 @@ class LibraryListViewWidget extends StatelessWidget {
ref.read(mangasListStateProvider.notifier).update(entry);
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(!isLongPressed);
} else {
ref.read(mangasListStateProvider.notifier).update(entry);
@ -91,7 +92,7 @@ class LibraryListViewWidget extends StatelessWidget {
ref.read(mangasListStateProvider.notifier).update(entry);
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(!isLongPressed);
} else {
ref.read(mangasListStateProvider.notifier).update(entry);

View file

@ -23,7 +23,7 @@ import 'package:mangayomi/router/router.dart';
import 'package:mangayomi/services/fetch_sources_list.dart';
import 'package:mangayomi/services/sync_server.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/more/providers/incognito_mode_state_provider.dart';
final libLocationRegex = RegExp(r"^/(Manga|Anime|Novel)Library$");
@ -239,7 +239,7 @@ class _MainScreenState extends ConsumerState<MainScreen> {
}
final incognitoMode = ref.watch(incognitoModeStateProvider);
final isLongPressed = ref.watch(isLongPressedMangaStateProvider);
final isLongPressed = ref.watch(isLongPressedStateProvider);
return Column(
children: [

View file

@ -7,6 +7,7 @@ import 'package:mangayomi/models/category.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/library/widgets/list_tile_manga_category.dart';
import 'package:mangayomi/modules/manga/detail/providers/state_providers.dart';
import 'package:mangayomi/modules/manga/detail/widgets/chapter_filter_list_tile_widget.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
@ -151,7 +152,7 @@ void showCategorySelectionDialog({
if (isBulk) {
ref.read(mangasListStateProvider.notifier).clear();
ref
.read(isLongPressedMangaStateProvider.notifier)
.read(isLongPressedStateProvider.notifier)
.update(false);
}
});