Fix DownloadPageLoader resource leak (#8905)
The underlying ZipFile is leaking. To fix, store a reference to the ZipPageLoader and recycle it on recycle.
This commit is contained in:
parent
8cea78de83
commit
8c494f314c
@ -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…
Reference in New Issue
Block a user