From ec5460afb05ead0d5b79da30b64122570cb447d8 Mon Sep 17 00:00:00 2001 From: Matte23 Date: Sat, 8 Feb 2020 18:51:16 +0100 Subject: [PATCH] Ask the user to install a PDF reader --- .../circolapp/adapters/AttachmentAdapter.kt | 18 +++++++++++++++++- .../adapters/CircularLetterAdapter.kt | 17 ++++++++++++++++- app/src/main/res/values-it/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 3 +++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt index 708723d..e56fc9e 100644 --- a/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt +++ b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt @@ -28,6 +28,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageButton import android.widget.TextView +import androidx.appcompat.app.AlertDialog import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.item_attachment.view.* import net.underdesk.circolapp.R @@ -59,7 +60,22 @@ class AttachmentAdapter( holder.viewButton.setOnClickListener { val viewIntent = Intent(Intent.ACTION_VIEW) viewIntent.setDataAndType(Uri.parse(attachmentsUrls[position]), "application/pdf") - context.startActivity(viewIntent) + if (viewIntent.resolveActivity(context.packageManager) != null) { + context.startActivity(viewIntent) + } else { + val builder = AlertDialog.Builder(context) + builder.apply { + setTitle(R.string.dialog_install_pdf_reader_title) + setMessage(R.string.dialog_install_pdf_reader_content) + setPositiveButton( + R.string.dialog_ok + ) { dialog, _ -> + dialog.dismiss() + } + } + + builder.create().show() + } } holder.downloadButton.setOnClickListener { diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt index 7744e73..1ff363e 100644 --- a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt +++ b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt @@ -146,7 +146,22 @@ class CircularLetterAdapter( holder.viewButton.setOnClickListener { val viewIntent = Intent(Intent.ACTION_VIEW) viewIntent.setDataAndType(Uri.parse(circulars[position].url), "application/pdf") - context.startActivity(viewIntent) + if (viewIntent.resolveActivity(context.packageManager) != null) { + context.startActivity(viewIntent) + } else { + val builder = AlertDialog.Builder(context) + builder.apply { + setTitle(R.string.dialog_install_pdf_reader_title) + setMessage(R.string.dialog_install_pdf_reader_content) + setPositiveButton( + R.string.dialog_ok + ) { dialog, _ -> + dialog.dismiss() + } + } + + builder.create().show() + } } holder.downloadButton.setOnClickListener { diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 35c608f..891fe04 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -45,6 +45,9 @@ Le circolari sono scritte e pubblicate dal Liceo Scientifico Maria Curie di Pinerolo, e sono scaricate direttamente da https://curiepinerolo.edu.it/.\n Questi documenti sono rilasciati secondo la licenza "Attribution-NonCommercial-ShareAlike 3.0 Unported" (CC BY-NC-SA 3.0)(https://creativecommons.org/licenses/by-nc-sa/3.0/), come specificato in questa pagina: https://curiepinerolo.edu.it/note-legali/ + Lettore PDF non installato + Installa un lettore di PDF per aprire le circolari + Autorizzazioni richieste È necessaria la tua autorizzazione per salvare questa circolare nella memoria interna diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7ec388b..c1eb860 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -46,6 +46,9 @@ Circulars letters are written by the Liceo Scientifico Maria Curie Pinerolo, and are downloaded directly from https://curiepinerolo.edu.it/.\n Those documents are released under the "Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)(https://creativecommons.org/licenses/by-nc-sa/3.0/), as specified in this page: https://curiepinerolo.edu.it/note-legali + PDF reader not found + Please install an external application to open circular letters + Permission required We need your permission to save this circular letter to local storage