mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-01 22:25:46 +01:00
Always notifyIfReady for each boolean change.
This commit is contained in:
committed by
Greyson Parrelli
parent
98194c854a
commit
a06528e5e1
@@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
|||||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader
|
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader
|
||||||
import org.thoughtcrime.securesms.mms.GlideApp
|
import org.thoughtcrime.securesms.mms.GlideApp
|
||||||
import org.thoughtcrime.securesms.stories.StoryTextPostModel
|
import org.thoughtcrime.securesms.stories.StoryTextPostModel
|
||||||
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
||||||
context: Context,
|
context: Context,
|
||||||
@@ -40,10 +41,10 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
private val targetView: ImageView = findViewById(R.id.target_image)
|
private val targetView: ImageView = findViewById(R.id.target_image)
|
||||||
private val targetBlurView: ImageView = findViewById(R.id.target_image_blur)
|
private val targetBlurView: ImageView = findViewById(R.id.target_image_blur)
|
||||||
|
|
||||||
private var isSourceReady: Boolean = false
|
private var isSourceReady: Boolean by NotifyIfReadyDelegate(false)
|
||||||
private var isSourceBlurReady: Boolean = false
|
private var isSourceBlurReady: Boolean by NotifyIfReadyDelegate(false)
|
||||||
private var isTargetReady: Boolean = false
|
private var isTargetReady: Boolean by NotifyIfReadyDelegate(false)
|
||||||
private var isTargetBlurReady: Boolean = false
|
private var isTargetBlurReady: Boolean by NotifyIfReadyDelegate(false)
|
||||||
|
|
||||||
private var latestSource: Any? = null
|
private var latestSource: Any? = null
|
||||||
private var latestTarget: Any? = null
|
private var latestTarget: Any? = null
|
||||||
@@ -62,7 +63,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isSourceReady = true
|
isSourceReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.placeholder(storyTextPostModel.getPlaceholder())
|
.placeholder(storyTextPostModel.getPlaceholder())
|
||||||
@@ -86,7 +86,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isSourceReady = true
|
isSourceReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
@@ -102,7 +101,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isSourceBlurReady = true
|
isSourceBlurReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
@@ -135,7 +133,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isTargetReady = true
|
isTargetReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
@@ -159,7 +156,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isTargetReady = true
|
isTargetReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
@@ -175,7 +171,6 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
.addListener(
|
.addListener(
|
||||||
OnReadyListener {
|
OnReadyListener {
|
||||||
isTargetBlurReady = true
|
isTargetBlurReady = true
|
||||||
notifyIfReady()
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
@@ -241,6 +236,17 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor(
|
|||||||
callback?.onAnimationFinished()
|
callback?.onAnimationFinished()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private inner class NotifyIfReadyDelegate(var value: Boolean) {
|
||||||
|
operator fun getValue(storiesSharedElementCrossFaderView: StoriesSharedElementCrossFaderView, property: KProperty<*>): Boolean {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun setValue(storiesSharedElementCrossFaderView: StoriesSharedElementCrossFaderView, property: KProperty<*>, b: Boolean) {
|
||||||
|
value = b
|
||||||
|
notifyIfReady()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
interface Callback {
|
interface Callback {
|
||||||
fun onReadyToAnimate()
|
fun onReadyToAnimate()
|
||||||
fun onAnimationStarted()
|
fun onAnimationStarted()
|
||||||
|
|||||||
Reference in New Issue
Block a user