mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-03-11 17:25:32 +00:00
some fixes
This commit is contained in:
parent
e2c79c829b
commit
8ae2ef20be
7 changed files with 65 additions and 41 deletions
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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(() {
|
||||
|
|
|
|||
|
|
@ -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) =>
|
||||
|
|
|
|||
|
|
@ -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: () {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
20
lib/modules/widgets/loading_icon.dart
Normal file
20
lib/modules/widgets/loading_icon.dart
Normal 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,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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()!;
|
||||
|
|
|
|||
Loading…
Reference in a new issue