Fix DownloadPageLoader resource leak (#8905)
The underlying ZipFile is leaking. To fix, store a reference to the ZipPageLoader and recycle it on recycle. (cherry picked from commit 8c494f314cf77e54675f8d9742d50ed0ef94df59)
This commit is contained in:
parent
822fda4d2b
commit
68609b38b0
@ -29,6 +29,13 @@ class DownloadPageLoader(
|
||||
// Needed to open input streams
|
||||
private val context: Application by injectLazy()
|
||||
|
||||
private var zipPageLoader: ZipPageLoader? = null
|
||||
|
||||
override fun recycle() {
|
||||
super.recycle()
|
||||
zipPageLoader?.recycle()
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an observable containing the pages found on this downloaded chapter.
|
||||
*/
|
||||
@ -43,7 +50,7 @@ class DownloadPageLoader(
|
||||
}
|
||||
|
||||
private fun getPagesFromArchive(chapterPath: UniFile): Observable<List<ReaderPage>> {
|
||||
val loader = ZipPageLoader(File(chapterPath.filePath!!))
|
||||
val loader = ZipPageLoader(File(chapterPath.filePath!!)).also { zipPageLoader = it }
|
||||
return loader.getPages()
|
||||
}
|
||||
|
||||
@ -61,6 +68,6 @@ class DownloadPageLoader(
|
||||
}
|
||||
|
||||
override fun getPage(page: ReaderPage): Observable<Page.State> {
|
||||
return Observable.just(Page.State.READY)
|
||||
return zipPageLoader?.getPage(page) ?: Observable.just(Page.State.READY)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user