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