From 01daefc9c90039206d08dc0e9797a71117831720 Mon Sep 17 00:00:00 2001
From: "Nicola M. Cornelio" <80268479+nicola-95@users.noreply.github.com>
Date: Thu, 10 Mar 2022 16:33:54 +0100
Subject: [PATCH] fix: cancel post-delayed callback
---
.../ui/main/verification/VerificationFragment.kt | 16 +++++++++-------
app/src/main/res/values/strings.xml | 2 +-
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/it/ministerodellasalute/verificaC19/ui/main/verification/VerificationFragment.kt b/app/src/main/java/it/ministerodellasalute/verificaC19/ui/main/verification/VerificationFragment.kt
index b4f1ce6a..421cd335 100644
--- a/app/src/main/java/it/ministerodellasalute/verificaC19/ui/main/verification/VerificationFragment.kt
+++ b/app/src/main/java/it/ministerodellasalute/verificaC19/ui/main/verification/VerificationFragment.kt
@@ -27,7 +27,6 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout
@@ -65,7 +64,9 @@ class VerificationFragment : Fragment(), View.OnClickListener {
private lateinit var certificateModel: CertificateViewBean
private var userName: String = ""
- private var callback: OnBackPressedCallback? = null
+ private var handler: Handler? = null
+ private var onBackPressedCallback: OnBackPressedCallback? = null
+ private var runnableRunner: Runnable? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -83,13 +84,15 @@ class VerificationFragment : Fragment(), View.OnClickListener {
certificate?.let {
certificateModel = it
- callback = object : OnBackPressedCallback(true) {
+ handler = Handler(Looper.getMainLooper())
+ runnableRunner = Runnable { findNavController().popBackStack() }
+ onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
findNavController().popBackStack()
}
}
- setOnBackPressed(callback)
+ setOnBackPressed(onBackPressedCallback)
if (
viewModel.getTotemMode() &&
(certificate.certificateStatus == CertificateStatus.VALID) &&
@@ -156,9 +159,7 @@ class VerificationFragment : Fragment(), View.OnClickListener {
}
private fun setOnBackTimer() {
- Handler(Looper.getMainLooper()).postDelayed({
- findNavController().navigate(R.id.action_verificationFragment_to_codeReaderFragment)
- }, 5000)
+ runnableRunner?.let { handler?.postDelayed(it, 5000) }
}
private fun addDoubleScanResult(icon: Int, text: Int) {
@@ -391,6 +392,7 @@ class VerificationFragment : Fragment(), View.OnClickListener {
}
override fun onDestroy() {
+ runnableRunner?.let { handler?.removeCallbacks(it) }
viewModel.setDoubleScanFlag(false)
super.onDestroy()
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 17d87fe0..c44eb6c1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -151,7 +151,7 @@
È necessario aggiornare la lista delle Certificazione verdi COVID-19 revocate per un totale di %1$.2fMB.
È necessario aggiornare la lista delle Certificazione verdi COVID-19 revocate.
L\'aggiornamento della lista delle Certificazione verdi COVID-19 revocate è incompleto. Assicurati di essere connesso a Internet e clicca per continuare.
- È necessario aggiornare la lista delle Certificazione verdi COVID-19 revocate, per un totale di %1$.2fMB. Controlla il tuo piano dati oppure connettiti a una rete wi-fi prima di procedere. Il tempo di aggiornamento dipende dalla velocità di connessione e dal tipo di device in uso.La lista verrà aggiornata ogni 24 ore.
+ È necessario aggiornare la lista delle Certificazione verdi COVID-19 revocate, per un totale di %1$.2fMB. Controlla il tuo piano dati oppure connettiti a una rete wi-fi prima di procedere. Il tempo di aggiornamento dipende dalla velocità di connessione e dal tipo di device in uso. La lista verrà aggiornata ogni 24 ore.
È in corso l\'aggiornamento della lista delle Certificazioni verdi COVID-19 revocate. Attendere la fine del download per procedere con le scansioni.
Pacchetto %1$d su %2$d
%1$.2f Mb su %2$.2f Mb