mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-20 19:12:04 +00:00
updates screen search query
This commit is contained in:
parent
90dadbd2c6
commit
50fe6abfac
7 changed files with 48 additions and 26 deletions
|
|
@ -238,7 +238,10 @@ class _HistoryTabState extends ConsumerState<HistoryTab> {
|
|||
Widget build(BuildContext context) {
|
||||
final l10n = l10nLocalizations(context)!;
|
||||
final history = ref.watch(
|
||||
getAllHistoryStreamProvider(itemType: widget.itemType, search: widget.query),
|
||||
getAllHistoryStreamProvider(
|
||||
itemType: widget.itemType,
|
||||
search: widget.query,
|
||||
),
|
||||
);
|
||||
return Scaffold(
|
||||
body: history.when(
|
||||
|
|
@ -425,7 +428,7 @@ class _HistoryTabState extends ConsumerState<HistoryTab> {
|
|||
|
||||
Widget getCoverImage(Manga manga) {
|
||||
return manga.customCoverImage != null
|
||||
? Image.memory(manga.customCoverImage as Uint8List,)
|
||||
? Image.memory(manga.customCoverImage as Uint8List)
|
||||
: cachedCompressedNetworkImage(
|
||||
headers: ref.watch(
|
||||
headersProvider(source: manga.source!, lang: manga.lang!),
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ part 'isar_providers.g.dart';
|
|||
Stream<List<History>> getAllHistoryStream(
|
||||
Ref ref, {
|
||||
required ItemType itemType,
|
||||
required String search,
|
||||
String search = "",
|
||||
}) async* {
|
||||
yield* isar.historys
|
||||
.filter()
|
||||
|
|
@ -30,11 +30,16 @@ Stream<List<History>> getAllHistoryStream(
|
|||
Stream<List<Update>> getAllUpdateStream(
|
||||
Ref ref, {
|
||||
required ItemType itemType,
|
||||
String search = "",
|
||||
}) async* {
|
||||
yield* isar.updates
|
||||
.filter()
|
||||
.idIsNotNull()
|
||||
.and()
|
||||
.chapter((q) => q.manga((q) => q.itemTypeEqualTo(itemType)))
|
||||
.and()
|
||||
.chapter(
|
||||
(q) => q.manga((q) => q.nameContains(search, caseSensitive: false)),
|
||||
)
|
||||
.watch(fireImmediately: true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'isar_providers.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$getAllHistoryStreamHash() =>
|
||||
r'704060d31ee10db47bb6f9900b0678747f67abbe';
|
||||
r'1ce5bd0046fbbec46e91b7a486523945699d95f3';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
@ -42,7 +42,7 @@ class GetAllHistoryStreamFamily extends Family<AsyncValue<List<History>>> {
|
|||
/// See also [getAllHistoryStream].
|
||||
GetAllHistoryStreamProvider call({
|
||||
required ItemType itemType,
|
||||
required String search,
|
||||
String search = "",
|
||||
}) {
|
||||
return GetAllHistoryStreamProvider(
|
||||
itemType: itemType,
|
||||
|
|
@ -81,7 +81,7 @@ class GetAllHistoryStreamProvider
|
|||
/// See also [getAllHistoryStream].
|
||||
GetAllHistoryStreamProvider({
|
||||
required ItemType itemType,
|
||||
required String search,
|
||||
String search = "",
|
||||
}) : this._internal(
|
||||
(ref) => getAllHistoryStream(
|
||||
ref as GetAllHistoryStreamRef,
|
||||
|
|
@ -178,7 +178,7 @@ class _GetAllHistoryStreamProviderElement
|
|||
}
|
||||
|
||||
String _$getAllUpdateStreamHash() =>
|
||||
r'6a20f8feba3010c2ab7a80560f7a7f6cf10c7366';
|
||||
r'43369b20d702d12aeae627fcd04ceb61caf0dc74';
|
||||
|
||||
/// See also [getAllUpdateStream].
|
||||
@ProviderFor(getAllUpdateStream)
|
||||
|
|
@ -192,9 +192,11 @@ class GetAllUpdateStreamFamily extends Family<AsyncValue<List<Update>>> {
|
|||
/// See also [getAllUpdateStream].
|
||||
GetAllUpdateStreamProvider call({
|
||||
required ItemType itemType,
|
||||
String search = "",
|
||||
}) {
|
||||
return GetAllUpdateStreamProvider(
|
||||
itemType: itemType,
|
||||
search: search,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -204,6 +206,7 @@ class GetAllUpdateStreamFamily extends Family<AsyncValue<List<Update>>> {
|
|||
) {
|
||||
return call(
|
||||
itemType: provider.itemType,
|
||||
search: provider.search,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -228,10 +231,12 @@ class GetAllUpdateStreamProvider
|
|||
/// See also [getAllUpdateStream].
|
||||
GetAllUpdateStreamProvider({
|
||||
required ItemType itemType,
|
||||
String search = "",
|
||||
}) : this._internal(
|
||||
(ref) => getAllUpdateStream(
|
||||
ref as GetAllUpdateStreamRef,
|
||||
itemType: itemType,
|
||||
search: search,
|
||||
),
|
||||
from: getAllUpdateStreamProvider,
|
||||
name: r'getAllUpdateStreamProvider',
|
||||
|
|
@ -243,6 +248,7 @@ class GetAllUpdateStreamProvider
|
|||
allTransitiveDependencies:
|
||||
GetAllUpdateStreamFamily._allTransitiveDependencies,
|
||||
itemType: itemType,
|
||||
search: search,
|
||||
);
|
||||
|
||||
GetAllUpdateStreamProvider._internal(
|
||||
|
|
@ -253,9 +259,11 @@ class GetAllUpdateStreamProvider
|
|||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.itemType,
|
||||
required this.search,
|
||||
}) : super.internal();
|
||||
|
||||
final ItemType itemType;
|
||||
final String search;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
|
|
@ -271,6 +279,7 @@ class GetAllUpdateStreamProvider
|
|||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
itemType: itemType,
|
||||
search: search,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
@ -282,13 +291,16 @@ class GetAllUpdateStreamProvider
|
|||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is GetAllUpdateStreamProvider && other.itemType == itemType;
|
||||
return other is GetAllUpdateStreamProvider &&
|
||||
other.itemType == itemType &&
|
||||
other.search == search;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, itemType.hashCode);
|
||||
hash = _SystemHash.combine(hash, search.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
|
@ -299,6 +311,9 @@ class GetAllUpdateStreamProvider
|
|||
mixin GetAllUpdateStreamRef on AutoDisposeStreamProviderRef<List<Update>> {
|
||||
/// The parameter `itemType` of this provider.
|
||||
ItemType get itemType;
|
||||
|
||||
/// The parameter `search` of this provider.
|
||||
String get search;
|
||||
}
|
||||
|
||||
class _GetAllUpdateStreamProviderElement
|
||||
|
|
@ -308,6 +323,8 @@ class _GetAllUpdateStreamProviderElement
|
|||
|
||||
@override
|
||||
ItemType get itemType => (origin as GetAllUpdateStreamProvider).itemType;
|
||||
@override
|
||||
String get search => (origin as GetAllUpdateStreamProvider).search;
|
||||
}
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
||||
|
|
|
|||
|
|
@ -64,7 +64,11 @@ class _UpdatesScreenState extends ConsumerState<UpdatesScreen>
|
|||
for (var manga in mangaList) {
|
||||
try {
|
||||
await ref.read(
|
||||
updateMangaDetailProvider(mangaId: manga.id, isInit: false, showToast: false).future,
|
||||
updateMangaDetailProvider(
|
||||
mangaId: manga.id,
|
||||
isInit: false,
|
||||
showToast: false,
|
||||
).future,
|
||||
);
|
||||
} catch (_) {}
|
||||
numbers++;
|
||||
|
|
@ -335,26 +339,18 @@ class _UpdateTabState extends ConsumerState<UpdateTab> {
|
|||
Widget build(BuildContext context) {
|
||||
final l10n = l10nLocalizations(context)!;
|
||||
final update = ref.watch(
|
||||
getAllUpdateStreamProvider(itemType: widget.itemType),
|
||||
getAllUpdateStreamProvider(
|
||||
itemType: widget.itemType,
|
||||
search: widget.query,
|
||||
),
|
||||
);
|
||||
return Scaffold(
|
||||
body: Stack(
|
||||
children: [
|
||||
update.when(
|
||||
data: (data) {
|
||||
final entries =
|
||||
data
|
||||
.where(
|
||||
(element) =>
|
||||
widget.query.isNotEmpty
|
||||
? element.chapter.value!.manga.value!.name!
|
||||
.toLowerCase()
|
||||
.contains(widget.query.toLowerCase())
|
||||
: true,
|
||||
)
|
||||
.toList();
|
||||
data: (entries) {
|
||||
final lastUpdatedList =
|
||||
data
|
||||
entries
|
||||
.map((e) => e.chapter.value!.manga.value!.lastUpdate!)
|
||||
.toList();
|
||||
lastUpdatedList.sort((a, b) => b.compareTo(a));
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'aniskip.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$aniSkipHash() => r'887869b54e2e151633efd46da83bde845e14f421';
|
||||
String _$aniSkipHash() => r'2e5d19b025a2207ff64da7bf7908450ea9e5ff8c';
|
||||
|
||||
/// See also [AniSkip].
|
||||
@ProviderFor(AniSkip)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'anilist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$anilistHash() => r'70e8cd537270a9054a1ef72de117fc7ad5545218';
|
||||
String _$anilistHash() => r'ddd07acc8d28d2aa95c942566109e9393ca9e5ed';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -41,13 +41,14 @@ Widget cachedCompressedNetworkImage({
|
|||
AlignmentGeometry? alignment,
|
||||
bool useCustomNetworkImage = true,
|
||||
Widget errorWidget = const Icon(Icons.error, size: 50),
|
||||
int maxBytes = 5 << 10,
|
||||
}) {
|
||||
return ExtendedImage(
|
||||
image: ExtendedResizeImage(
|
||||
useCustomNetworkImage
|
||||
? CustomExtendedNetworkImageProvider(imageUrl, headers: headers)
|
||||
: ExtendedNetworkImageProvider(imageUrl, headers: headers),
|
||||
maxBytes: 5 << 10,
|
||||
maxBytes: maxBytes,
|
||||
),
|
||||
width: width,
|
||||
height: height,
|
||||
|
|
|
|||
Loading…
Reference in a new issue