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) {
debug_qr_code.setData(text, true)
debug_qr_code.setData(text)
}
@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.graphics.Color
import android.graphics.drawable.AnimationDrawable
import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import im.vector.app.core.qrcode.toBitMatrix
import im.vector.app.core.qrcode.toBitmap
import kotlin.random.Random
class QrCodeImageView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {
private var data: String? = null
private var animate = false
init {
setBackgroundColor(Color.WHITE)
}
fun setData(data: String, animate: Boolean) {
fun setData(data: String) {
this.data = data
this.animate = animate
render()
}
@ -53,47 +48,8 @@ class QrCodeImageView @JvmOverloads constructor(
data
?.takeIf { height > 0 }
?.let {
if (animate) {
// NOT SUPPORTED YET val anim = createAnimation(it)
// 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 {
id("qr")
data(state.qrCodeText)
animate(false)
}
dividerItem {

View File

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