feat: enhance update total numbers filter options for updates and sources
This commit is contained in:
parent
32b10b8a30
commit
3fdaf80b7c
1 changed files with 31 additions and 2 deletions
|
|
@ -6,6 +6,8 @@ import 'package:go_router/go_router.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:mangayomi/main.dart';
|
import 'package:mangayomi/main.dart';
|
||||||
|
import 'package:mangayomi/models/chapter.dart';
|
||||||
|
import 'package:mangayomi/models/manga.dart';
|
||||||
import 'package:mangayomi/models/update.dart';
|
import 'package:mangayomi/models/update.dart';
|
||||||
import 'package:mangayomi/models/source.dart';
|
import 'package:mangayomi/models/source.dart';
|
||||||
import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_provider.dart';
|
import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_provider.dart';
|
||||||
|
|
@ -371,11 +373,17 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _extensionUpdateTotalNumbers(WidgetRef re, Widget widget) {
|
Widget _extensionUpdateTotalNumbers(WidgetRef ref, Widget widget) {
|
||||||
return StreamBuilder(
|
return StreamBuilder(
|
||||||
stream: isar.sources
|
stream: isar.sources
|
||||||
.filter()
|
.filter()
|
||||||
.idIsNotNull()
|
.idIsNotNull()
|
||||||
|
.optional(ref.watch(hideMangaStateProvider),
|
||||||
|
(q) => q.not().itemTypeEqualTo(ItemType.manga))
|
||||||
|
.optional(ref.watch(hideAnimeStateProvider),
|
||||||
|
(q) => q.not().itemTypeEqualTo(ItemType.anime))
|
||||||
|
.optional(ref.watch(hideNovelStateProvider),
|
||||||
|
(q) => q.not().itemTypeEqualTo(ItemType.novel))
|
||||||
.and()
|
.and()
|
||||||
.isActiveEqualTo(true)
|
.isActiveEqualTo(true)
|
||||||
.watch(fireImmediately: true),
|
.watch(fireImmediately: true),
|
||||||
|
|
@ -396,7 +404,28 @@ Widget _extensionUpdateTotalNumbers(WidgetRef re, Widget widget) {
|
||||||
|
|
||||||
Widget _updatesTotalNumbers(WidgetRef ref, Widget widget) {
|
Widget _updatesTotalNumbers(WidgetRef ref, Widget widget) {
|
||||||
return StreamBuilder(
|
return StreamBuilder(
|
||||||
stream: isar.updates.filter().idIsNotNull().watch(fireImmediately: true),
|
stream: isar.updates
|
||||||
|
.filter()
|
||||||
|
.idIsNotNull()
|
||||||
|
.optional(
|
||||||
|
ref.watch(hideMangaStateProvider),
|
||||||
|
(q) => q.chapter(
|
||||||
|
(c) =>
|
||||||
|
c.manga((m) => m.not().itemTypeEqualTo(ItemType.manga)),
|
||||||
|
))
|
||||||
|
.optional(
|
||||||
|
ref.watch(hideAnimeStateProvider),
|
||||||
|
(q) => q.chapter(
|
||||||
|
(c) =>
|
||||||
|
c.manga((m) => m.not().itemTypeEqualTo(ItemType.anime)),
|
||||||
|
))
|
||||||
|
.optional(
|
||||||
|
ref.watch(hideNovelStateProvider),
|
||||||
|
(q) => q.chapter(
|
||||||
|
(c) =>
|
||||||
|
c.manga((m) => m.not().itemTypeEqualTo(ItemType.novel)),
|
||||||
|
))
|
||||||
|
.watch(fireImmediately: true),
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
if (snapshot.hasData && snapshot.data!.isNotEmpty) {
|
if (snapshot.hasData && snapshot.data!.isNotEmpty) {
|
||||||
final entries = snapshot.data!.where((element) {
|
final entries = snapshot.data!.where((element) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue