Skip to content

Commit ecaae1a

Browse files
fixing startAnimation on create bug (#137)
1 parent 9c73e98 commit ecaae1a

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

loading-button-android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ apply plugin: 'com.github.dcendents.android-maven'
55
apply plugin: 'org.jmailen.kotlinter'
66

77
// Bintray depends on this global variable to set the library version!
8-
version = "2.1.1"
8+
version = "2.1.3"
99
group = 'br.com.simplepass'
1010

1111
android {

loading-button-android/src/main/java/br/com/simplepass/loadingbutton/customViews/CircularProgressButton.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ open class CircularProgressButton : AppCompatButton, ProgressButton {
5959

6060
override lateinit var drawableBackground: Drawable
6161

62+
private var savedAnimationEndListener: () -> Unit = {}
63+
6264
private val presenter = ProgressButtonPresenter(this)
6365

6466
private val morphAnimator by lazy {
@@ -124,10 +126,12 @@ open class CircularProgressButton : AppCompatButton, ProgressButton {
124126
}
125127

126128
override fun startMorphAnimation() {
129+
applyAnimationEndListener(morphAnimator, savedAnimationEndListener)
127130
morphAnimator.start()
128131
}
129132

130133
override fun startMorphRevertAnimation() {
134+
applyAnimationEndListener(morphAnimator, savedAnimationEndListener)
131135
morphRevertAnimator.start()
132136
}
133137

@@ -140,14 +144,12 @@ open class CircularProgressButton : AppCompatButton, ProgressButton {
140144
}
141145

142146
override fun startAnimation(onAnimationEndListener: () -> Unit) {
143-
applyAnimationEndListener(morphAnimator, onAnimationEndListener)
144-
147+
savedAnimationEndListener = onAnimationEndListener
145148
presenter.startAnimation()
146149
}
147150

148151
override fun revertAnimation(onAnimationEndListener: () -> Unit) {
149-
applyAnimationEndListener(morphRevertAnimator, onAnimationEndListener)
150-
152+
savedAnimationEndListener = onAnimationEndListener
151153
presenter.revertAnimation()
152154
}
153155

loading-button-android/src/main/java/br/com/simplepass/loadingbutton/customViews/CircularProgressImageButton.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ open class CircularProgressImageButton : AppCompatImageButton, ProgressButton {
5858

5959
override lateinit var drawableBackground: Drawable
6060

61+
private var savedAnimationEndListener: () -> Unit = {}
62+
6163
private val presenter = ProgressButtonPresenter(this)
6264

6365
private val morphAnimator by lazy {
@@ -113,10 +115,12 @@ open class CircularProgressImageButton : AppCompatImageButton, ProgressButton {
113115
}
114116

115117
override fun startMorphAnimation() {
118+
applyAnimationEndListener(morphAnimator, savedAnimationEndListener)
116119
morphAnimator.start()
117120
}
118121

119122
override fun startMorphRevertAnimation() {
123+
applyAnimationEndListener(morphAnimator, savedAnimationEndListener)
120124
morphRevertAnimator.start()
121125
}
122126

@@ -129,14 +133,12 @@ open class CircularProgressImageButton : AppCompatImageButton, ProgressButton {
129133
}
130134

131135
override fun startAnimation(onAnimationEndListener: () -> Unit) {
132-
applyAnimationEndListener(morphAnimator, onAnimationEndListener)
133-
136+
savedAnimationEndListener = onAnimationEndListener
134137
presenter.startAnimation()
135138
}
136139

137140
override fun revertAnimation(onAnimationEndListener: () -> Unit) {
138-
applyAnimationEndListener(morphRevertAnimator, onAnimationEndListener)
139-
141+
savedAnimationEndListener = onAnimationEndListener
140142
presenter.revertAnimation()
141143
}
142144

loading-button-android/src/main/java/br/com/simplepass/loadingbutton/presentation/ProgressButtonPresenter.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,15 @@ internal class ProgressButtonPresenter(private val view: ProgressButton) {
5454
}
5555

5656
fun onDraw(canvas: Canvas) {
57-
if (state == State.BEFORE_DRAW) {
58-
state = State.IDLE
59-
view.saveInitialState()
60-
}
61-
6257
when (state) {
63-
State.WAITING_PROGRESS -> view.startMorphAnimation()
58+
State.BEFORE_DRAW -> {
59+
state = State.IDLE
60+
view.saveInitialState()
61+
}
62+
State.WAITING_PROGRESS -> {
63+
view.saveInitialState()
64+
view.startMorphAnimation()
65+
}
6466
State.PROGRESS -> view.drawProgress(canvas)
6567
State.DONE -> view.drawDoneAnimation(canvas)
6668
else -> return

0 commit comments

Comments
 (0)