|
@@ -15,12 +15,14 @@ import android.view.animation.DecelerateInterpolator
|
|
import android.widget.FrameLayout
|
|
import android.widget.FrameLayout
|
|
import android.widget.ImageView
|
|
import android.widget.ImageView
|
|
import android.widget.Toast
|
|
import android.widget.Toast
|
|
|
|
+import androidx.constraintlayout.widget.ConstraintLayout
|
|
import com.bumptech.glide.Glide
|
|
import com.bumptech.glide.Glide
|
|
import com.opensource.svgaplayer.SVGADrawable
|
|
import com.opensource.svgaplayer.SVGADrawable
|
|
import com.opensource.svgaplayer.SVGAParser
|
|
import com.opensource.svgaplayer.SVGAParser
|
|
import com.opensource.svgaplayer.SVGAVideoEntity
|
|
import com.opensource.svgaplayer.SVGAVideoEntity
|
|
import com.swago.baseswago.model.live.gift.IMGiftModel
|
|
import com.swago.baseswago.model.live.gift.IMGiftModel
|
|
import com.swago.baseswago.util.AppContext
|
|
import com.swago.baseswago.util.AppContext
|
|
|
|
+import com.swago.baseswago.util.DpPxUtil
|
|
import com.swago.baseswago.util.LogUtil
|
|
import com.swago.baseswago.util.LogUtil
|
|
import com.swago.baseswago.util.UserInfo
|
|
import com.swago.baseswago.util.UserInfo
|
|
import com.swago.room.R
|
|
import com.swago.room.R
|
|
@@ -36,6 +38,7 @@ class GiftDanDaoView : FrameLayout {
|
|
var isBusy = false
|
|
var isBusy = false
|
|
private var binding: ViewItemGiftBinding? = null
|
|
private var binding: ViewItemGiftBinding? = null
|
|
private var svgParser: SVGAParser? = null
|
|
private var svgParser: SVGAParser? = null
|
|
|
|
+ private var svgParser2: SVGAParser? = null
|
|
|
|
|
|
private var giftCount = 0
|
|
private var giftCount = 0
|
|
|
|
|
|
@@ -61,6 +64,7 @@ class GiftDanDaoView : FrameLayout {
|
|
vibrator = context.getSystemService(Service.VIBRATOR_SERVICE) as Vibrator
|
|
vibrator = context.getSystemService(Service.VIBRATOR_SERVICE) as Vibrator
|
|
binding = ViewItemGiftBinding.inflate(LayoutInflater.from(context), this, true)
|
|
binding = ViewItemGiftBinding.inflate(LayoutInflater.from(context), this, true)
|
|
svgParser = SVGAParser(context)
|
|
svgParser = SVGAParser(context)
|
|
|
|
+ svgParser2 = SVGAParser(context)
|
|
for (i in 0..5){
|
|
for (i in 0..5){
|
|
val imageView = ImageView(context)
|
|
val imageView = ImageView(context)
|
|
imageViewData.add(imageView)
|
|
imageViewData.add(imageView)
|
|
@@ -164,31 +168,78 @@ class GiftDanDaoView : FrameLayout {
|
|
|
|
|
|
clItemGift.removeCallbacks(showRunnable)
|
|
clItemGift.removeCallbacks(showRunnable)
|
|
clItemGift.postDelayed(showRunnable, 3000)
|
|
clItemGift.postDelayed(showRunnable, 3000)
|
|
-
|
|
|
|
|
|
+ imGiftModel.multiple = 555
|
|
if (imGiftModel.multiple != 0) {
|
|
if (imGiftModel.multiple != 0) {
|
|
when (imGiftModel.multiple) {
|
|
when (imGiftModel.multiple) {
|
|
- in 1..100 -> {
|
|
|
|
- iv.setImageResource(R.mipmap.win_100_prize)
|
|
|
|
|
|
+ in 1..50 -> {
|
|
|
|
+ iv.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize2.visibility = View.GONE
|
|
|
|
+ svgaWinPrize.visibility = View.GONE
|
|
|
|
+ val layoutParams = tvWinPrize.layoutParams as ConstraintLayout.LayoutParams
|
|
|
|
+ layoutParams.marginStart = DpPxUtil.dip2px(10f)
|
|
|
|
+ tvWinPrize.layoutParams = layoutParams
|
|
|
|
+ iv.setImageResource(R.mipmap.win_1_50_prize)
|
|
|
|
+ clWinPrize.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize.text =
|
|
|
|
+ AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
+ .format(imGiftModel.multiple)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ in 51..100 -> {
|
|
|
|
+ iv.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize2.visibility = View.GONE
|
|
|
|
+ svgaWinPrize.visibility = View.GONE
|
|
|
|
+ val layoutParams = tvWinPrize.layoutParams as ConstraintLayout.LayoutParams
|
|
|
|
+ layoutParams.marginStart = DpPxUtil.dip2px(26f)
|
|
|
|
+ tvWinPrize.layoutParams = layoutParams
|
|
|
|
+ iv.setImageResource(R.mipmap.win_51_100_prize)
|
|
|
|
+ clWinPrize.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize.text =
|
|
|
|
+ AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
+ .format(imGiftModel.multiple)
|
|
}
|
|
}
|
|
|
|
|
|
- in 100..499 -> {
|
|
|
|
- iv.setImageResource(R.mipmap.win_499_prize)
|
|
|
|
|
|
+ in 100..500 -> {
|
|
|
|
+ iv.visibility = View.GONE
|
|
|
|
+ svgaWinPrize.visibility = View.VISIBLE
|
|
|
|
+ playSvg2("win_101_500_prize.svga")
|
|
|
|
+ clWinPrize.visibility = View.GONE
|
|
|
|
+ tvWinPrize2.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize2.text =
|
|
|
|
+ AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
+ .format(imGiftModel.multiple)
|
|
}
|
|
}
|
|
|
|
|
|
- in 500..10000 -> {
|
|
|
|
|
|
+ in 501..1000 -> {
|
|
|
|
+ iv.visibility = View.GONE
|
|
|
|
+ svgaWinPrize.visibility = View.VISIBLE
|
|
UserInfo.getUserInfo()?.let { userInfoModel ->
|
|
UserInfo.getUserInfo()?.let { userInfoModel ->
|
|
if (userInfoModel.id == imGiftModel.senderId){
|
|
if (userInfoModel.id == imGiftModel.senderId){
|
|
vibrator?.vibrate(2500)
|
|
vibrator?.vibrate(2500)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- iv.setImageResource(R.mipmap.win_500_prize)
|
|
|
|
-
|
|
|
|
|
|
+ playSvg2("win_501_1000_prize.svga")
|
|
|
|
+ tvWinPrize2.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize2.text =
|
|
|
|
+ AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
+ .format(imGiftModel.multiple)
|
|
|
|
+ }
|
|
|
|
+ else -> {
|
|
|
|
+ iv.visibility = View.GONE
|
|
|
|
+ svgaWinPrize.visibility = View.VISIBLE
|
|
|
|
+ UserInfo.getUserInfo()?.let { userInfoModel ->
|
|
|
|
+ if (userInfoModel.id == imGiftModel.senderId){
|
|
|
|
+ vibrator?.vibrate(2500)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ playSvg2("win_1001_prize.svga")
|
|
|
|
+ tvWinPrize2.visibility = View.VISIBLE
|
|
|
|
+ tvWinPrize2.text =
|
|
|
|
+ AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
+ .format(imGiftModel.multiple)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- clWinPrize.visibility = View.VISIBLE
|
|
|
|
- tvWinPrize.text =
|
|
|
|
- AppContext.getContext().resources.getString(R.string.win_num_prize)
|
|
|
|
- .format(imGiftModel.multiple)
|
|
|
|
|
|
+
|
|
clWinPrize.removeCallbacks(winPrizeRunnable)
|
|
clWinPrize.removeCallbacks(winPrizeRunnable)
|
|
clWinPrize.postDelayed(winPrizeRunnable, 1500)
|
|
clWinPrize.postDelayed(winPrizeRunnable, 1500)
|
|
}
|
|
}
|
|
@@ -355,6 +406,30 @@ class GiftDanDaoView : FrameLayout {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun playSvg2(path:String){
|
|
|
|
+ svgParser2?.let {
|
|
|
|
+ it.decodeFromAssets(path,object:SVGAParser.ParseCompletion{
|
|
|
|
+ override fun onComplete(videoItem: SVGAVideoEntity) {
|
|
|
|
+ binding?.apply {
|
|
|
|
+ val drawable = SVGADrawable(videoItem)
|
|
|
|
+ svgaWinPrize.setImageDrawable(drawable)
|
|
|
|
+ svgaWinPrize.loops = 99999
|
|
|
|
+ svgaWinPrize.startAnimation()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override fun onError() {
|
|
|
|
+ Toast.makeText(AppContext.getContext(), "播放异常", Toast.LENGTH_SHORT).show()
|
|
|
|
+ }
|
|
|
|
+ },object:SVGAParser.PlayCallback{
|
|
|
|
+ override fun onPlay(file: List<File>) {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
fun clear() {
|
|
fun clear() {
|
|
vibrator?.cancel()
|
|
vibrator?.cancel()
|
|
@@ -365,6 +440,9 @@ class GiftDanDaoView : FrameLayout {
|
|
if (svgaImageView.isAnimating){
|
|
if (svgaImageView.isAnimating){
|
|
svgaImageView.stopAnimation()
|
|
svgaImageView.stopAnimation()
|
|
}
|
|
}
|
|
|
|
+ if (svgaWinPrize.isAnimating){
|
|
|
|
+ svgaWinPrize.stopAnimation()
|
|
|
|
+ }
|
|
clWinPrize.visibility = View.INVISIBLE
|
|
clWinPrize.visibility = View.INVISIBLE
|
|
clItemGift.visibility = View.INVISIBLE
|
|
clItemGift.visibility = View.INVISIBLE
|
|
clWinPrize.removeCallbacks(winPrizeRunnable)
|
|
clWinPrize.removeCallbacks(winPrizeRunnable)
|