From 3b26b94ddcb024b76ad179cb2d6ded916d96373e Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:26:30 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fix=20crash=20with=20PD?= =?UTF-8?q?F=20parser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed crash due to not initialized PDFBoxResourceLoader --- .../book_story/data/parser/pdf/PdfFileParser.kt | 4 +++- .../book_story/data/parser/pdf/PdfTextParser.kt | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfFileParser.kt b/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfFileParser.kt index c7e0fcda..305f8849 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfFileParser.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfFileParser.kt @@ -12,7 +12,9 @@ import ua.acclorite.book_story.domain.util.UIText import java.io.File import javax.inject.Inject -class PdfFileParser @Inject constructor(private val application: Application) : FileParser { +class PdfFileParser @Inject constructor( + private val application: Application +) : FileParser { override suspend fun parse(file: File): BookWithCover? { return try { diff --git a/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfTextParser.kt b/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfTextParser.kt index 58aa1c04..898e5129 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfTextParser.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/parser/pdf/PdfTextParser.kt @@ -1,6 +1,8 @@ package ua.acclorite.book_story.data.parser.pdf +import android.app.Application import android.util.Log +import com.tom_roush.pdfbox.android.PDFBoxResourceLoader import com.tom_roush.pdfbox.pdmodel.PDDocument import com.tom_roush.pdfbox.text.PDFTextStripper import kotlinx.coroutines.yield @@ -15,7 +17,9 @@ import javax.inject.Inject private const val PDF_TAG = "PDF Parser" -class PdfTextParser @Inject constructor() : TextParser { +class PdfTextParser @Inject constructor( + private val application: Application +) : TextParser { override suspend fun parse(file: File): Resource> { Log.i(PDF_TAG, "Started PDF parsing: ${file.name}.") @@ -23,6 +27,10 @@ class PdfTextParser @Inject constructor() : TextParser { return try { yield() + PDFBoxResourceLoader.init(application) + + yield() + val oldText: String val pdfStripper = PDFTextStripper()