Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.gahfy.tutorialtest
- import android.graphics.Color
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.transition.TransitionManager
- import android.widget.Toast
- import androidx.biometric.BiometricManager
- import androidx.biometric.BiometricPrompt
- import androidx.constraintlayout.widget.ConstraintSet
- import androidx.core.content.ContextCompat
- import com.muddzdev.styleabletoast.StyleableToast
- import kotlinx.android.synthetic.main.activity_after_tutorial_without_text.*
- class ActivityAfterTutorial : AppCompatActivity() {
- private lateinit var biometricPrompt: BiometricManager
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_after_tutorial_without_text)
- addAnimationOperations()
- biometricPrompt = BiometricManager.from(this)
- if(biometricPrompt.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS){
- instanceOfBiometricPrompt().authenticate(getPromptInfo())
- } else {
- Toast.makeText(this, "Hardware for biometric not found"
- , Toast.LENGTH_SHORT).show()
- }
- }
- private fun addAnimationOperations() {
- var set = false
- val constraint1 = ConstraintSet()
- constraint1.clone(clStart)
- val constraint2 = ConstraintSet()
- constraint2.clone(this, R.layout.activity_after_tutorial_with_text)
- clStart.setOnClickListener {
- TransitionManager.beginDelayedTransition(clStart)
- val constraint = if (set) constraint1 else constraint2
- constraint.applyTo(clStart)
- set = !set
- if (!set){
- StyleableToast.Builder(this)
- .text("Textview hidden ._.")
- .textColor(Color.RED)
- .backgroundColor(Color.BLUE)
- .show()
- } else {
- StyleableToast.Builder(this)
- .text("Textview shown :3")
- .textColor(Color.BLACK)
- .backgroundColor(Color.GREEN)
- .show()
- }
- }
- }
- private fun instanceOfBiometricPrompt(): BiometricPrompt {
- val executor = ContextCompat.getMainExecutor(this)
- val callback = object: BiometricPrompt.AuthenticationCallback() {
- override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
- super.onAuthenticationError(errorCode, errString)
- Toast.makeText(this@ActivityAfterTutorial, "$errorCode :: $errString", Toast.LENGTH_SHORT).show()
- }
- override fun onAuthenticationFailed() {
- super.onAuthenticationFailed()
- Toast.makeText(this@ActivityAfterTutorial, "Authentication failed for an unknown reason",
- Toast.LENGTH_SHORT).show()
- }
- override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
- super.onAuthenticationSucceeded(result)
- Toast.makeText(this@ActivityAfterTutorial, "Authentication was successful",
- Toast.LENGTH_SHORT).show()
- }
- }
- return BiometricPrompt(this, executor, callback)
- }
- private fun getPromptInfo(): BiometricPrompt.PromptInfo {
- return BiometricPrompt.PromptInfo.Builder()
- .setTitle("My App's Authentication")
- .setSubtitle("Please login to get access")
- .setDescription("My App is using Android biometric authentication")
- .setDeviceCredentialAllowed(true)
- .build()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement