some fixes

This commit is contained in:
kodjomoustapha 2024-05-14 13:06:46 +01:00
parent e2c79c829b
commit 8ae2ef20be
7 changed files with 65 additions and 41 deletions

View file

@ -518,6 +518,11 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
mangaIds: mangaIds)
.notifier)
.set();
ref.invalidate(
getAllMangaWithoutCategoriesStreamProvider(
isManga: widget.isManga));
ref.invalidate(getAllMangaStreamProvider(
categoryId: null, isManga: widget.isManga));
},
child: Icon(
Icons.done_all_sharp,
@ -540,6 +545,11 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
mangaIds: mangaIds)
.notifier)
.set();
ref.invalidate(
getAllMangaWithoutCategoriesStreamProvider(
isManga: widget.isManga));
ref.invalidate(getAllMangaStreamProvider(
categoryId: null, isManga: widget.isManga));
},
child: Icon(
Icons.remove_done_sharp,
@ -925,7 +935,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
return mangas;
}
_openCategory() {
void _openCategory() {
List<int> categoryIds = [];
showDialog(
context: context,
@ -1067,7 +1077,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
});
}
_deleteManga() {
void _deleteManga() {
List<int> fromLibList = [];
List<int> downloadedChapsList = [];
showDialog(
@ -1221,7 +1231,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
});
}
_showDraggableMenu(Settings settings) {
void _showDraggableMenu(Settings settings) {
final l10n = l10nLocalizations(context)!;
customDraggableTabBar(tabs: [
Tab(text: l10n.filter),

View file

@ -485,9 +485,9 @@ class LibraryLocalSourceState extends _$LibraryLocalSourceState {
void set(bool value) {
Settings appSettings = Settings();
if (isManga) {
appSettings = settings..libraryShowLanguage = value;
appSettings = settings..libraryLocalSource = value;
} else {
appSettings = settings..animeLibraryShowLanguage = value;
appSettings = settings..animeLibraryLocalSource = value;
}
state = value;
isar.writeTxnSync(() {

View file

@ -5,6 +5,7 @@ import 'package:isar/isar.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/download.dart';
import 'package:mangayomi/modules/history/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/manga/reader/providers/push_router.dart';
import 'package:mangayomi/models/manga.dart';
@ -85,16 +86,20 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
: ref.watch(headersProvider(
source: entry.source!, lang: entry.lang!)),
),
onTap: () {
onTap: () async {
if (isLongPressed) {
ref.read(mangasListStateProvider.notifier).update(entry);
} else {
pushToMangaReaderDetail(
await pushToMangaReaderDetail(
archiveId: isLocalArchive ? entry.id : null,
context: context,
lang: entry.lang!,
mangaM: entry,
source: entry.source!);
ref.invalidate(getAllMangaWithoutCategoriesStreamProvider(
isManga: widget.isManga));
ref.invalidate(getAllMangaStreamProvider(
categoryId: null, isManga: widget.isManga));
}
},
onLongPress: () {
@ -134,7 +139,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
),
child: Row(
children: [
if (widget.localSource || isLocalArchive)
if (widget.localSource && isLocalArchive)
Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.only(
@ -142,12 +147,14 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
bottomLeft: Radius.circular(3)),
color: Theme.of(context).hintColor,
),
child: const Padding(
padding:
EdgeInsets.only(left: 3, right: 3),
child: Padding(
padding: const EdgeInsets.only(
left: 3, right: 3),
child: Text(
"Local",
style: TextStyle(color: Colors.white),
style: TextStyle(
color: context
.dynamicBlackWhiteColor),
),
),
),
@ -205,7 +212,8 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
),
),
Padding(
padding: const EdgeInsets.only(left: 3),
padding: const EdgeInsets.only(
left: 3),
child: Text(
entry.chapters
.where((element) =>

View file

@ -5,6 +5,7 @@ import 'package:isar/isar.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/download.dart';
import 'package:mangayomi/modules/history/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/manga/reader/providers/push_router.dart';
import 'package:mangayomi/models/manga.dart';
@ -48,16 +49,20 @@ class LibraryListViewWidget extends StatelessWidget {
color: Colors.transparent,
clipBehavior: Clip.antiAliasWithSaveLayer,
child: InkWell(
onTap: () {
onTap: () async {
if (isLongPressed) {
ref.read(mangasListStateProvider.notifier).update(entry);
} else {
pushToMangaReaderDetail(
await pushToMangaReaderDetail(
archiveId: isLocalArchive ? entry.id : null,
context: context,
lang: entry.lang!,
mangaM: entry,
source: entry.source!);
ref.invalidate(getAllMangaWithoutCategoriesStreamProvider(
isManga: entry.isManga));
ref.invalidate(getAllMangaStreamProvider(
categoryId: null, isManga: entry.isManga));
}
},
onLongPress: () {

View file

@ -6,6 +6,7 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:isar/isar.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/modules/widgets/loading_icon.dart';
import 'package:mangayomi/services/fetch_anime_sources.dart';
import 'package:mangayomi/services/fetch_manga_sources.dart';
import 'package:mangayomi/modules/main_view/providers/migration.dart';
@ -268,29 +269,9 @@ class MainScreen extends ConsumerWidget {
);
});
}, error: (error, _) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset(
"assets/app_icons/icon.png",
color: Colors.black,
fit: BoxFit.cover,
height: 100,
),
),
);
return const LoadingIcon();
}, loading: () {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset(
"assets/app_icons/icon.png",
color: Colors.black,
fit: BoxFit.cover,
height: 100,
),
),
);
return const LoadingIcon();
});
}
}

View file

@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
class LoadingIcon extends StatelessWidget {
const LoadingIcon({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset(
"assets/app_icons/icon.png",
color: Colors.black,
fit: BoxFit.cover,
height: 100,
),
),
);
}
}

View file

@ -245,7 +245,7 @@ class MangaImageCardListTileWidget extends ConsumerWidget {
}
}
void pushToMangaReaderDetail(
Future<void> pushToMangaReaderDetail(
{MManga? getManga,
required String lang,
required BuildContext context,
@ -254,7 +254,7 @@ void pushToMangaReaderDetail(
Manga? mangaM,
bool? isManga,
bool useMaterialRoute = false,
bool addToFavourite = false}) {
bool addToFavourite = false}) async {
int? mangaId;
if (archiveId == null) {
final manga = mangaM ??
@ -333,14 +333,14 @@ void pushToMangaReaderDetail(
}
if (!addToFavourite) {
if (useMaterialRoute) {
Navigator.push(
await Navigator.push(
context,
createRoute(
page: MangaReaderDetail(
mangaId: mangaId,
)));
} else {
context.push('/manga-reader/detail', extra: mangaId);
await context.push('/manga-reader/detail', extra: mangaId);
}
} else {
final getManga = isar.mangas.filter().idEqualTo(mangaId).findFirstSync()!;