aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/ca/allanwang/kau/ui
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/ca/allanwang/kau/ui')
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/ui/ProgressAnimator.kt8
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/ui/views/CollapsibleViewDelegate.kt38
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/ui/views/MeasureSpecDelegate.kt20
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/ui/views/RippleCanvas.kt3
4 files changed, 48 insertions, 21 deletions
diff --git a/core/src/main/kotlin/ca/allanwang/kau/ui/ProgressAnimator.kt b/core/src/main/kotlin/ca/allanwang/kau/ui/ProgressAnimator.kt
index a46e6c5..bb4cd88 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/ui/ProgressAnimator.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/ui/ProgressAnimator.kt
@@ -94,7 +94,9 @@ class ProgressAnimator private constructor() : ValueAnimator() {
* @return [condition]
*/
private fun ProgressAction.runIf(condition: Boolean, progress: Float): Boolean {
- if (condition) this(progress)
+ if (condition) {
+ this(progress)
+ }
return condition
}
@@ -170,7 +172,9 @@ class ProgressAnimator private constructor() : ValueAnimator() {
fun withDisposableEndAction(action: ProgressDisposableRunnable) = endActions.add(action)
fun reset() {
- if (isRunning) cancel()
+ if (isRunning) {
+ cancel()
+ }
animators.clear()
startActions.clear()
cancelActions.clear()
diff --git a/core/src/main/kotlin/ca/allanwang/kau/ui/views/CollapsibleViewDelegate.kt b/core/src/main/kotlin/ca/allanwang/kau/ui/views/CollapsibleViewDelegate.kt
index b2a0d27..4631aec 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/ui/views/CollapsibleViewDelegate.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/ui/views/CollapsibleViewDelegate.kt
@@ -62,15 +62,22 @@ class CollapsibleViewDelegate : CollapsibleView {
override var expansion = 0f
set(value) {
- if (value == field) return
+ if (value == field) {
+ return
+ }
var v = value
- if (v > 1) v = 1f
- else if (v < 0) v = 0f
+ if (v > 1) {
+ v = 1f
+ } else if (v < 0) {
+ v = 0f
+ }
stateHolder =
- if (v == 0f) KAU_COLLAPSED
- else if (v == 1f) KAU_EXPANDED
- else if (v - field < 0) KAU_COLLAPSING
- else KAU_EXPANDING
+ when {
+ v == 0f -> KAU_COLLAPSED
+ v == 1f -> KAU_EXPANDED
+ v - field < 0 -> KAU_COLLAPSING
+ else -> KAU_EXPANDING
+ }
field = v
view?.goneIf(state == KAU_COLLAPSED)
view?.requestLayout()
@@ -89,8 +96,11 @@ class CollapsibleViewDelegate : CollapsibleView {
override fun resetCollapsibleAnimation() {
animator?.cancel()
animator = null
- if (stateHolder == KAU_COLLAPSING) stateHolder = KAU_COLLAPSED
- else if (stateHolder == KAU_EXPANDING) stateHolder = KAU_EXPANDED
+ if (stateHolder == KAU_COLLAPSING) {
+ stateHolder = KAU_COLLAPSED
+ } else if (stateHolder == KAU_EXPANDING) {
+ stateHolder = KAU_EXPANDED
+ }
}
override fun getCollapsibleDimension(): Pair<Int, Int> {
@@ -116,8 +126,14 @@ class CollapsibleViewDelegate : CollapsibleView {
override fun collapse(animate: Boolean) = setExpanded(false, animate)
override fun setExpanded(expand: Boolean) = setExpanded(expand, true)
override fun setExpanded(expand: Boolean, animate: Boolean) {
- if (expand == expanded) return //state already matches
+ if (expand == expanded) {
+ return //state already matches
+ }
val target = if (expand) 1f else 0f
- if (animate) animateSize(target) else expansion = target
+ if (animate) {
+ animateSize(target)
+ } else {
+ expansion = target
+ }
}
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/ui/views/MeasureSpecDelegate.kt b/core/src/main/kotlin/ca/allanwang/kau/ui/views/MeasureSpecDelegate.kt
index 6481306..8800c2d 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/ui/views/MeasureSpecDelegate.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/ui/views/MeasureSpecDelegate.kt
@@ -95,7 +95,9 @@ class MeasureSpecDelegate : MeasureSpecContract {
private val parentFrame = Rect()
override fun initAttrs(context: Context, attrs: AttributeSet?) {
- if (attrs == null) return
+ if (attrs == null) {
+ return
+ }
val styledAttrs = context.obtainStyledAttributes(attrs, R.styleable.MeasureSpecDelegate)
relativeWidth = styledAttrs.getFloat(R.styleable.MeasureSpecDelegate_relativeWidth, relativeWidth)
relativeHeight = styledAttrs.getFloat(R.styleable.MeasureSpecDelegate_relativeHeight, relativeHeight)
@@ -114,20 +116,24 @@ class MeasureSpecDelegate : MeasureSpecContract {
var width = View.MeasureSpec.getSize(widthMeasureSpec).toFloat()
var height = View.MeasureSpec.getSize(heightMeasureSpec).toFloat()
//first cycle - relative to parent
- if (relativeHeightToParent > 0)
+ if (relativeHeightToParent > 0) {
height = relativeHeightToParent * parentFrame.height()
- if (relativeWidthToParent > 0)
+ }
+ if (relativeWidthToParent > 0) {
width = relativeWidthToParent * parentFrame.width()
+ }
//second cycle - relative to each other
- if (relativeHeight > 0)
+ if (relativeHeight > 0) {
height = relativeHeight * width
- else if (relativeWidth > 0)
+ } else if (relativeWidth > 0) {
width = relativeWidth * height
+ }
//third cycle - relative to each other
- if (postRelativeHeight > 0)
+ if (postRelativeHeight > 0) {
height = postRelativeHeight * width
- else if (postRelativeWidth > 0)
+ } else if (postRelativeWidth > 0) {
width = postRelativeWidth * height
+ }
return Pair(width.measureSpec, height.measureSpec)
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/ui/views/RippleCanvas.kt b/core/src/main/kotlin/ca/allanwang/kau/ui/views/RippleCanvas.kt
index 176b9ea..a972447 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/ui/views/RippleCanvas.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/ui/views/RippleCanvas.kt
@@ -102,11 +102,12 @@ class RippleCanvas @JvmOverloads constructor(
ripple.radius = animation.animatedValue as Float
invalidate()
}
- if (callback != null)
+ if (callback != null) {
animator.addListener(object : AnimatorListenerAdapter() {
override fun onAnimationCancel(animation: Animator?) = callback()
override fun onAnimationEnd(animation: Animator?) = callback()
})
+ }
animator.start()
}