diff --git a/SimpleLogin/app/src/main/java/io/simplelogin/android/module/login/VerificationActivity.kt b/SimpleLogin/app/src/main/java/io/simplelogin/android/module/login/VerificationActivity.kt index 7460d3d..cd1a13a 100755 --- a/SimpleLogin/app/src/main/java/io/simplelogin/android/module/login/VerificationActivity.kt +++ b/SimpleLogin/app/src/main/java/io/simplelogin/android/module/login/VerificationActivity.kt @@ -7,6 +7,8 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.view.View import android.view.Window import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -29,6 +31,8 @@ class VerificationActivity : BaseAppCompatActivity(), Window.Callback { const val ACCOUNT = "account" } + private val DELAY_AFTER_RESET_MS = 100L + private lateinit var binding: ActivityVerificationBinding private lateinit var verificationMode: VerificationMode private val dash = "-" @@ -122,14 +126,17 @@ class VerificationActivity : BaseAppCompatActivity(), Window.Callback { } private fun pasteAndVerify(code: String) { - code.asIterable().forEach { char -> - addNumber(char.toString()) - } + reset() + Handler(Looper.getMainLooper()).postDelayed({ + code.asIterable().forEach { char -> + addNumber(char.toString(), false) + } - verify(code) + verify(code) + }, DELAY_AFTER_RESET_MS) } - private fun addNumber(number: String) { + private fun addNumber(number: String, launchVerify: Boolean = true) { when { binding.firstNumberTextView.text == dash -> { binding.firstNumberTextView.text = number @@ -149,7 +156,9 @@ class VerificationActivity : BaseAppCompatActivity(), Window.Callback { code += binding.fifthNumberTextView.text code += binding.sixthNumberTextView.text - verify(code) + if (launchVerify) { + verify(code) + } } } }