Less ugly code.
This commit is contained in:
parent
7113795df2
commit
ae2616d6a2
1 changed files with 9 additions and 7 deletions
|
|
@ -35,19 +35,21 @@ class PdfRendererManager(
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
mutex.withLock {
|
mutex.withLock {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
runCatching {
|
pdfRenderer = runCatching {
|
||||||
PdfRenderer(parcelFileDescriptor)
|
PdfRenderer(parcelFileDescriptor)
|
||||||
}.fold(
|
}.fold(
|
||||||
onSuccess = { pdfRenderer ->
|
onSuccess = { pdfRenderer ->
|
||||||
this@PdfRendererManager.pdfRenderer = pdfRenderer
|
pdfRenderer.apply {
|
||||||
// Preload just 3 pages so we can render faster
|
// Preload just 3 pages so we can render faster
|
||||||
val firstPages = pdfRenderer.loadPages(from = 0, to = 3)
|
val firstPages = loadPages(from = 0, to = 3)
|
||||||
mutablePdfPages.value = AsyncData.Success(firstPages.toImmutableList())
|
mutablePdfPages.value = AsyncData.Success(firstPages.toImmutableList())
|
||||||
val nextPages = pdfRenderer.loadPages(from = 3, to = pdfRenderer.pageCount)
|
val nextPages = loadPages(from = 3, to = pageCount)
|
||||||
mutablePdfPages.value = AsyncData.Success((firstPages + nextPages).toImmutableList())
|
mutablePdfPages.value = AsyncData.Success((firstPages + nextPages).toImmutableList())
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onFailure = {
|
onFailure = {
|
||||||
mutablePdfPages.value = AsyncData.Failure(it)
|
mutablePdfPages.value = AsyncData.Failure(it)
|
||||||
|
null
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue