diff --git a/lib/modules/library/library_screen.dart b/lib/modules/library/library_screen.dart index 55a42b1e..b25b43b7 100644 --- a/lib/modules/library/library_screen.dart +++ b/lib/modules/library/library_screen.dart @@ -1472,7 +1472,10 @@ class _LibraryScreenState extends ConsumerState final mangaDir = await storageProvider .getMangaMainDirectory(chapter); final path = await storageProvider - .getMangaChapterDirectory(chapter); + .getMangaChapterDirectory( + chapter, + mangaMainDirectory: mangaDir, + ); try { try { diff --git a/lib/modules/manga/download/download_page_widget.dart b/lib/modules/manga/download/download_page_widget.dart index 97989b5a..9dcda168 100644 --- a/lib/modules/manga/download/download_page_widget.dart +++ b/lib/modules/manga/download/download_page_widget.dart @@ -28,7 +28,10 @@ class ChapterPageDownload extends ConsumerWidget { void _sendFile() async { final storageProvider = StorageProvider(); final mangaDir = await storageProvider.getMangaMainDirectory(chapter); - final path = await storageProvider.getMangaChapterDirectory(chapter); + final path = await storageProvider.getMangaChapterDirectory( + chapter, + mangaMainDirectory: mangaDir, + ); List files = []; @@ -57,7 +60,10 @@ class ChapterPageDownload extends ConsumerWidget { void _deleteFile(int downloadId) async { final storageProvider = StorageProvider(); final mangaDir = await storageProvider.getMangaMainDirectory(chapter); - final path = await storageProvider.getMangaChapterDirectory(chapter); + final path = await storageProvider.getMangaChapterDirectory( + chapter, + mangaMainDirectory: mangaDir, + ); try { try { diff --git a/lib/modules/manga/download/providers/download_provider.dart b/lib/modules/manga/download/providers/download_provider.dart index 34349338..99446021 100644 --- a/lib/modules/manga/download/providers/download_provider.dart +++ b/lib/modules/manga/download/providers/download_provider.dart @@ -57,7 +57,10 @@ Future downloadChapter( final chapterName = chapter.name!.replaceForbiddenCharacters(' '); final itemType = chapter.manga.value!.itemType; final chapterDirectory = - (await storageProvider.getMangaChapterDirectory(chapter))!; + (await storageProvider.getMangaChapterDirectory( + chapter, + mangaMainDirectory: mangaMainDirectory, + ))!; await Directory(chapterDirectory.path).create(recursive: true); Map videoHeader = {}; Map htmlHeader = { diff --git a/lib/providers/storage_provider.dart b/lib/providers/storage_provider.dart index 4e0de9ce..4a41b7fd 100644 --- a/lib/providers/storage_provider.dart +++ b/lib/providers/storage_provider.dart @@ -103,8 +103,11 @@ class StorageProvider { ); } - Future getMangaChapterDirectory(Chapter chapter) async { - final basedir = await getMangaMainDirectory(chapter); + Future getMangaChapterDirectory( + Chapter chapter, { + Directory? mangaMainDirectory, + }) async { + final basedir = mangaMainDirectory ?? await getMangaMainDirectory(chapter); String scanlator = chapter.scanlator?.isNotEmpty ?? false ? "${chapter.scanlator!.replaceForbiddenCharacters('_')}_" diff --git a/lib/services/get_chapter_pages.dart b/lib/services/get_chapter_pages.dart index 5ea1b50e..7a21822e 100644 --- a/lib/services/get_chapter_pages.dart +++ b/lib/services/get_chapter_pages.dart @@ -50,8 +50,11 @@ Future getChapterPages( .firstOrNull; final incognitoMode = ref.watch(incognitoModeStateProvider); final storageProvider = StorageProvider(); - path = await storageProvider.getMangaChapterDirectory(chapter); final mangaDirectory = await storageProvider.getMangaMainDirectory(chapter); + path = await storageProvider.getMangaChapterDirectory( + chapter, + mangaMainDirectory: mangaDirectory, + ); List archiveImages = []; final isLocalArchive = (chapter.archivePath ?? '').isNotEmpty;