Less ugly code.

This commit is contained in:
Benoit Marty 2024-09-24 18:21:30 +02:00
parent 7113795df2
commit ae2616d6a2

View file

@ -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
} }
) )
} }