From 02fa8764e9a0ef01a98efea025397834df47b62f Mon Sep 17 00:00:00 2001 From: DDUDDY Date: Sun, 4 Feb 2024 16:08:07 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B0=94?= =?UTF-8?q?=ED=85=80=20=EC=8B=9C=ED=8A=B8=20=EB=94=9C=EB=A0=88=EC=9D=B4=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/gdsc/presentation/login/LoginFragment.kt | 3 ++- .../org/gdsc/presentation/utils/viewExtensions.kt | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/presentation/src/main/java/org/gdsc/presentation/login/LoginFragment.kt b/presentation/src/main/java/org/gdsc/presentation/login/LoginFragment.kt index 96e7f90f..b4e9186a 100644 --- a/presentation/src/main/java/org/gdsc/presentation/login/LoginFragment.kt +++ b/presentation/src/main/java/org/gdsc/presentation/login/LoginFragment.kt @@ -22,6 +22,7 @@ import kotlinx.coroutines.launch import org.gdsc.domain.model.response.UserLoginAction import org.gdsc.presentation.R import org.gdsc.presentation.databinding.FragmentLoginBinding +import org.gdsc.presentation.utils.onDelayedClick import org.gdsc.presentation.utils.repeatWhenUiStarted import org.gdsc.presentation.view.LoginManager import org.gdsc.presentation.view.MainActivity @@ -56,7 +57,7 @@ class LoginFragment : Fragment() { } private fun setLoginButton() { - binding.googleLoginBtnTemplate.setOnClickListener { + binding.googleLoginBtnTemplate.onDelayedClick { viewLifecycleOwner.lifecycleScope.launch { try { diff --git a/presentation/src/main/java/org/gdsc/presentation/utils/viewExtensions.kt b/presentation/src/main/java/org/gdsc/presentation/utils/viewExtensions.kt index eb22b9de..4e054f98 100644 --- a/presentation/src/main/java/org/gdsc/presentation/utils/viewExtensions.kt +++ b/presentation/src/main/java/org/gdsc/presentation/utils/viewExtensions.kt @@ -20,6 +20,7 @@ import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.google.android.material.dialog.MaterialAlertDialogBuilder +import kotlin.math.abs fun EditText.addAfterTextChangedListener(block: (String) -> Unit) { this.addTextChangedListener(object : TextWatcher { @@ -35,6 +36,17 @@ fun EditText.addAfterTextChangedListener(block: (String) -> Unit) { }) } +private var lastClickTime: Long = 0L +fun View.onDelayedClick(defaultTime: Int = 400, block: () -> Unit) { + this.setOnClickListener { + val timeStamp =System.currentTimeMillis() + if (abs(timeStamp - lastClickTime) > defaultTime) { + lastClickTime = timeStamp + block() + } + } +} + fun View.fadeIn() { val self = this val animation = AlphaAnimation(0f, 1f)