Fix filename not having chapter title and page when sharing (#6827)

(cherry picked from commit f8eb9f94f469d24b78962b2ab9477173207e0e23)
This commit is contained in:
Andreas 2022-03-26 17:40:29 +01:00 committed by Jobobby04
parent 18c1234dfc
commit 6ef1f566ec

View File

@ -672,6 +672,20 @@ class ReaderPresenter(
})
}
/**
* Generate a filename for the given [manga] and [page]
*/
private fun generateFilename(
manga: Manga,
page: ReaderPage,
): String {
val chapter = page.chapter.chapter
val filenameSuffix = " - ${page.number}"
return DiskUtil.buildValidFilename(
"${manga.title} - ${chapter.name}".takeBytes(MAX_FILE_NAME_BYTES - filenameSuffix.byteSize())
) + filenameSuffix
}
/**
* Saves the image of this [page] on the pictures directory and notifies the UI of the result.
* There's also a notification to allow sharing the image somewhere else or deleting it.
@ -684,12 +698,7 @@ class ReaderPresenter(
val notifier = SaveImageNotifier(context)
notifier.onClear()
// Generate filename
val chapter = page.chapter.chapter
val filenameSuffix = " - ${page.number}"
val filename = DiskUtil.buildValidFilename(
"${manga.title} - ${chapter.name}".takeBytes(MAX_FILE_NAME_BYTES - filenameSuffix.byteSize())
) + filenameSuffix
val filename = generateFilename(manga, page)
// Pictures directory.
val relativePath = if (preferences.folderPerManga()) DiskUtil.buildValidFilename(manga.title) else ""
@ -803,13 +812,15 @@ class ReaderPresenter(
val context = Injekt.get<Application>()
val destDir = context.cacheImageDir
val filename = generateFilename(manga, page)
try {
presenterScope.launchIO {
destDir.deleteRecursively()
val uri = imageSaver.save(
image = Image.Page(
inputStream = page.stream!!,
name = manga.title,
name = filename,
location = Location.Cache
)
)