Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.69 KB | None | 0 0
  1. package net.gahfy.tutorialtest
  2.  
  3. import android.graphics.Color
  4. import androidx.appcompat.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.transition.TransitionManager
  7. import android.widget.Toast
  8. import androidx.biometric.BiometricManager
  9. import androidx.biometric.BiometricPrompt
  10. import androidx.constraintlayout.widget.ConstraintSet
  11. import androidx.core.content.ContextCompat
  12. import com.muddzdev.styleabletoast.StyleableToast
  13. import kotlinx.android.synthetic.main.activity_after_tutorial_without_text.*
  14.  
  15. class ActivityAfterTutorial : AppCompatActivity() {
  16.  
  17.     private lateinit var biometricPrompt: BiometricManager
  18.     override fun onCreate(savedInstanceState: Bundle?) {
  19.         super.onCreate(savedInstanceState)
  20.         setContentView(R.layout.activity_after_tutorial_without_text)
  21.         addAnimationOperations()
  22.         biometricPrompt = BiometricManager.from(this)
  23.         if(biometricPrompt.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS){
  24.             instanceOfBiometricPrompt().authenticate(getPromptInfo())
  25.         } else {
  26.             Toast.makeText(this, "Hardware for biometric not found"
  27.                 , Toast.LENGTH_SHORT).show()
  28.         }
  29.     }
  30.  
  31.     private fun addAnimationOperations() {
  32.         var set = false
  33.         val constraint1 = ConstraintSet()
  34.         constraint1.clone(clStart)
  35.         val constraint2 = ConstraintSet()
  36.         constraint2.clone(this, R.layout.activity_after_tutorial_with_text)
  37.  
  38.         clStart.setOnClickListener {
  39.             TransitionManager.beginDelayedTransition(clStart)
  40.             val constraint = if (set) constraint1 else constraint2
  41.             constraint.applyTo(clStart)
  42.             set = !set
  43.             if (!set){
  44.                 StyleableToast.Builder(this)
  45.                     .text("Textview hidden ._.")
  46.                     .textColor(Color.RED)
  47.                     .backgroundColor(Color.BLUE)
  48.                     .show()
  49.             } else {
  50.                 StyleableToast.Builder(this)
  51.                     .text("Textview shown :3")
  52.                     .textColor(Color.BLACK)
  53.                     .backgroundColor(Color.GREEN)
  54.                     .show()
  55.             }
  56.         }
  57.     }
  58.  
  59.     private fun instanceOfBiometricPrompt(): BiometricPrompt {
  60.         val executor = ContextCompat.getMainExecutor(this)
  61.  
  62.         val callback = object: BiometricPrompt.AuthenticationCallback() {
  63.             override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
  64.                 super.onAuthenticationError(errorCode, errString)
  65.                 Toast.makeText(this@ActivityAfterTutorial, "$errorCode :: $errString", Toast.LENGTH_SHORT).show()
  66.             }
  67.  
  68.             override fun onAuthenticationFailed() {
  69.                 super.onAuthenticationFailed()
  70.                 Toast.makeText(this@ActivityAfterTutorial, "Authentication failed for an unknown reason",
  71.                     Toast.LENGTH_SHORT).show()
  72.             }
  73.  
  74.             override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
  75.                 super.onAuthenticationSucceeded(result)
  76.                 Toast.makeText(this@ActivityAfterTutorial, "Authentication was successful",
  77.                     Toast.LENGTH_SHORT).show()
  78.             }
  79.         }
  80.  
  81.         return BiometricPrompt(this, executor, callback)
  82.     }
  83.  
  84.     private fun getPromptInfo(): BiometricPrompt.PromptInfo {
  85.         return BiometricPrompt.PromptInfo.Builder()
  86.             .setTitle("My App's Authentication")
  87.             .setSubtitle("Please login to get access")
  88.             .setDescription("My App is using Android biometric authentication")
  89.             .setDeviceCredentialAllowed(true)
  90.             .build()
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement