Fix filename not having chapter title and page when sharing (#6827)
Cette révision appartient à :
Parent
c581b9eeb9
révision
f8eb9f94f4
1 fichiers modifiés avec 18 ajouts et 7 suppressions
|
@ -565,6 +565,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.
|
||||
|
@ -577,12 +591,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 ""
|
||||
|
@ -624,13 +633,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
|
||||
)
|
||||
)
|
||||
|
|
Référencer dans un nouveau ticket