Remove dead code (QrCode animation)

This commit is contained in:
Benoit Marty 2020-08-27 15:51:28 +02:00
parent b69616117f
commit cd28ad4c07
4 changed files with 5 additions and 53 deletions

View File

@ -68,7 +68,7 @@ class DebugMenuActivity : VectorBaseActivity() {
} }
private fun renderQrCode(text: String) { private fun renderQrCode(text: String) {
debug_qr_code.setData(text, true) debug_qr_code.setData(text)
} }
@OnClick(R.id.debug_test_text_view_link) @OnClick(R.id.debug_test_text_view_link)

View File

@ -18,28 +18,23 @@ package im.vector.app.core.ui.views
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.AnimationDrawable
import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatImageView
import im.vector.app.core.qrcode.toBitMatrix import im.vector.app.core.qrcode.toBitMatrix
import im.vector.app.core.qrcode.toBitmap import im.vector.app.core.qrcode.toBitmap
import kotlin.random.Random
class QrCodeImageView @JvmOverloads constructor( class QrCodeImageView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) { ) : AppCompatImageView(context, attrs, defStyleAttr) {
private var data: String? = null private var data: String? = null
private var animate = false
init { init {
setBackgroundColor(Color.WHITE) setBackgroundColor(Color.WHITE)
} }
fun setData(data: String, animate: Boolean) { fun setData(data: String) {
this.data = data this.data = data
this.animate = animate
render() render()
} }
@ -53,47 +48,8 @@ class QrCodeImageView @JvmOverloads constructor(
data data
?.takeIf { height > 0 } ?.takeIf { height > 0 }
?.let { ?.let {
if (animate) { val bitmap = it.toBitMatrix(height).toBitmap()
// NOT SUPPORTED YET val anim = createAnimation(it) post { setImageBitmap(bitmap) }
// NOT SUPPORTED YET setImageDrawable(anim)
// NOT SUPPORTED YET anim.start()
// NOT SUPPORTED YET setImageDrawable(BitmapDrawable(resources, it.toBitMatrix(height).toBitmap()))
val bitmap = it.toBitMatrix(height).toBitmap()
post { setImageBitmap(bitmap) }
} else {
val bitmap = it.toBitMatrix(height).toBitmap()
post { setImageBitmap(bitmap) }
}
} }
} }
private fun createAnimation(data: String): AnimationDrawable {
val finalQr = data.toBitMatrix(height)
val list = mutableListOf(finalQr)
val random = Random(System.currentTimeMillis())
val repeatTime = 8
repeat(repeatTime) { index ->
val alteredQr = finalQr.clone()
for (x in 0 until alteredQr.width) {
for (y in 0 until alteredQr.height) {
if (random.nextInt(repeatTime - index) == 0) {
// Pb is that it does not toggle a whole black square, but only a pixel
alteredQr.unset(x, y)
}
}
}
list.add(alteredQr)
}
val animDrawable = AnimationDrawable()
list.asReversed()
.forEach {
animDrawable.addFrame(BitmapDrawable(resources, it.toBitmap()), 150)
}
return animDrawable
}
} }

View File

@ -53,7 +53,6 @@ class VerificationChooseMethodController @Inject constructor(
bottomSheetVerificationQrCodeItem { bottomSheetVerificationQrCodeItem {
id("qr") id("qr")
data(state.qrCodeText) data(state.qrCodeText)
animate(false)
} }
dividerItem { dividerItem {

View File

@ -32,12 +32,9 @@ abstract class BottomSheetVerificationQrCodeItem : VectorEpoxyModel<BottomSheetV
@EpoxyAttribute @EpoxyAttribute
lateinit var data: String lateinit var data: String
@EpoxyAttribute
var animate = false
override fun bind(holder: Holder) { override fun bind(holder: Holder) {
super.bind(holder) super.bind(holder)
holder.qsrCodeImage.setData(data, animate) holder.qsrCodeImage.setData(data)
} }
class Holder : VectorEpoxyHolder() { class Holder : VectorEpoxyHolder() {