diff --git a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt
index ba2d174..fc7226a 100644
--- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt
+++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt
@@ -58,6 +58,10 @@ class TaskManager private constructor() {
initialized = true
}
}
+
+ fun getHomeWatchDurationRewardNum(): Int {
+ return 28; // TODO - mTaskConfigBean.xxxx
+ }
}
diff --git a/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt b/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt
index 93c42a8..d4d4268 100644
--- a/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt
+++ b/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt
@@ -1,12 +1,16 @@
package com.gamedog.vididin.widget
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.ObjectAnimator
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
+import androidx.core.view.isVisible
import com.gamedog.vididin.databinding.LayoutDragIconViewBinding
-import kotlin.run
+import com.gamedog.vididin.manager.TaskManager
class HomeDragIconView @JvmOverloads constructor(
context: Context,
@@ -14,16 +18,78 @@ class HomeDragIconView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
- private var mBinding: LayoutDragIconViewBinding? = null
+ private var mBinding: LayoutDragIconViewBinding
init {
mBinding = LayoutDragIconViewBinding.inflate(LayoutInflater.from(context), this, true)
- mBinding?.run {
+ mBinding.run {
+ progressBar.setProgressListener { progress->
+ if (progress >= 100) {
+ tvGoldNum.text = buildString {
+ append("+")
+ append(TaskManager.instance().getHomeWatchDurationRewardNum())
+ }
+ executeGoldNumAnim()
+ }
+ }
}
}
+
+ private fun executeGoldNumAnim() {
+ val animView = mBinding.llGoldRoot
+
+ val alphaAnimator = ObjectAnimator.ofFloat(
+ animView,
+ "alpha",
+ 0.5f, 1.0f, 0.5f
+ ).apply {
+ duration = 500
+ }
+
+ val scaleXAnimator = ObjectAnimator.ofFloat(
+ animView,
+ "scaleX",
+ 0.5f, 1.0f, 0.5f
+ ).apply {
+ duration = 500
+ }
+
+ val scaleYAnimator = ObjectAnimator.ofFloat(
+ animView,
+ "scaleY",
+ 0.5f, 1.0f, 0.5f
+ ).apply {
+ duration = 500
+ }
+
+
+ val animatorSet = AnimatorSet()
+ animatorSet.playTogether(alphaAnimator, scaleXAnimator, scaleYAnimator)
+ animatorSet.addListener(object : Animator.AnimatorListener {
+ override fun onAnimationCancel(animation: Animator) {
+ animView.isVisible = false
+ mBinding.progressBar.setProgress(0)
+ }
+
+ override fun onAnimationEnd(animation: Animator) {
+ animView.isVisible = false
+ mBinding.progressBar.setProgress(0)
+ }
+
+ override fun onAnimationRepeat(animation: Animator) {
+
+ }
+
+ override fun onAnimationStart(animation: Animator) {
+
+ }
+ })
+ animatorSet.start()
+ }
+
}
diff --git a/app/src/main/res/layout/layout_drag_icon_view.xml b/app/src/main/res/layout/layout_drag_icon_view.xml
index bfa3d34..063c167 100644
--- a/app/src/main/res/layout/layout_drag_icon_view.xml
+++ b/app/src/main/res/layout/layout_drag_icon_view.xml
@@ -15,14 +15,15 @@
android:gravity="center_horizontal"
android:orientation="vertical">
-
Unit)? = null
+
+ fun setProgressListener(progressListener: (progress: Int) -> Unit) {
+ this.progressListener = progressListener
+ }
+
fun setProgress(progress: Int) {
this.currentProgress = progress.coerceIn(0, maxProgress)
invalidate()
+ progressListener?.invoke(currentProgress)
}
fun setCenterIcon(@DrawableRes iconRes: Int) {