From 8a7241512cdaafa538e82a19f04e2301c11d82d9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 23 Apr 2025 09:06:51 +0200 Subject: [PATCH] Prevent crash & show error toast when trying to open a password protected PDF --- .../ui/fileviewer/viewmodel/FileViewModel.kt | 22 +++++++++++++------ app/src/main/res/values-fr/strings.xml | 5 +++-- app/src/main/res/values/strings.xml | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt index d11a82b40..a623ee8b3 100644 --- a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt @@ -278,13 +278,21 @@ class FileViewModel File(filePath), ParcelFileDescriptor.MODE_READ_ONLY ) - pdfRenderer = PdfRenderer(input) - val count = pdfRenderer.pageCount - Log.i("$TAG $count pages in file $filePath") - pdfPages.postValue(count.toString()) - pdfCurrentPage.postValue("1") - pdfRendererReadyEvent.postValue(Event(true)) - fileReadyEvent.postValue(Event(true)) + try { + pdfRenderer = PdfRenderer(input) + val count = pdfRenderer.pageCount + Log.i("$TAG $count pages in file $filePath") + pdfPages.postValue(count.toString()) + pdfCurrentPage.postValue("1") + pdfRendererReadyEvent.postValue(Event(true)) + fileReadyEvent.postValue(Event(true)) + } catch (se: SecurityException) { + // TODO FIXME: add support for password protected PDFs + Log.e("$TAG Can't open PDF, probably protected by a password: $se") + pdfCurrentPage.postValue("0") + pdfPages.postValue("0") + showRedToast(R.string.conversation_pdf_file_cant_be_opened_error_toast, R.drawable.warning_circle) + } } } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index bd43f5110..344cd086c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -512,7 +512,8 @@ Prendre une photo Ouvrir la gallerie Choisir un fichier - Impossible d\'ouvrir le fichier! + Impossible d\'ouvrir le fichier ! + Impossible d\'ouvrir un PDF protégé par mot de passe Participants (%s) Ajouter des participants @@ -523,7 +524,7 @@ Retirer les droits admin Voir le contact Ajouter aux contacts - Supprimer l\'historique ? + Supprimer l\'historique ? Tout les messages de cette conversation seront supprimés. Historique supprimé %s a rejoint la conversation diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 893b997d6..f45d957fa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -554,6 +554,7 @@ Open gallery Pick file File can\'t be opened! + Can\'t open password protected PDFs yet Group members (%s) Add participants