mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix fingerprint animation
This commit is contained in:
@@ -20,43 +20,44 @@
|
|||||||
package com.kunzisoft.keepass.biometric
|
package com.kunzisoft.keepass.biometric
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.drawable.Animatable2
|
|
||||||
import android.graphics.drawable.AnimatedVectorDrawable
|
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
|
import androidx.vectordrawable.graphics.drawable.Animatable2Compat
|
||||||
|
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
|
||||||
|
|
||||||
import com.kunzisoft.keepass.R
|
import com.kunzisoft.keepass.R
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
class FingerPrintAnimatedVector(context: Context, imageView: ImageView) {
|
class FingerPrintAnimatedVector(context: Context, imageView: ImageView) {
|
||||||
|
|
||||||
private val scanFingerprint: AnimatedVectorDrawable =
|
private val scanFingerprint: AnimatedVectorDrawableCompat? =
|
||||||
context.getDrawable(R.drawable.scan_fingerprint) as AnimatedVectorDrawable
|
AnimatedVectorDrawableCompat.create(context, R.drawable.scan_fingerprint)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
imageView.setImageDrawable(scanFingerprint)
|
imageView.setImageDrawable(scanFingerprint)
|
||||||
}
|
}
|
||||||
|
|
||||||
private var animationCallback = object : Animatable2.AnimationCallback() {
|
private var animationCallback = object : Animatable2Compat.AnimationCallback() {
|
||||||
override fun onAnimationEnd(drawable: Drawable) {
|
override fun onAnimationEnd(drawable: Drawable) {
|
||||||
if (!scanFingerprint.isRunning)
|
imageView.post {
|
||||||
scanFingerprint.start()
|
scanFingerprint?.start()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun startScan() {
|
fun startScan() {
|
||||||
scanFingerprint.registerAnimationCallback(animationCallback)
|
scanFingerprint?.registerAnimationCallback(animationCallback)
|
||||||
|
|
||||||
if (!scanFingerprint.isRunning)
|
if (scanFingerprint?.isRunning != true)
|
||||||
scanFingerprint.start()
|
scanFingerprint?.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stopScan() {
|
fun stopScan() {
|
||||||
scanFingerprint.unregisterAnimationCallback(animationCallback)
|
scanFingerprint?.unregisterAnimationCallback(animationCallback)
|
||||||
|
|
||||||
if (scanFingerprint.isRunning)
|
if (scanFingerprint?.isRunning == true)
|
||||||
scanFingerprint.stop()
|
scanFingerprint.stop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user