tongmengxiao 9 mesi fa
parent
commit
a52b2a7296

+ 1 - 1
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -224,7 +224,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         chatAdapter.setNewData(dataChatList)
         context?.let {
             svgPlayerManager.init(it, binding.xSvgaPlayer, binding.svgDanDaoView)
-            joinAnimalManager.init(it, binding.xSvgaPlayer)
+            joinAnimalManager.init(it, binding.xJoinSvgaPlayer)
         }
 
         activity?.let {

+ 3 - 0
room/src/main/java/com/swago/room/gift/control/SvgPlayerManager.kt

@@ -1,11 +1,13 @@
 package com.swago.room.gift.control
 
 import android.content.Context
+import com.opensource.svgaplayer.SVGACache
 import com.opensource.svgaplayer.SVGAParser
 import com.swago.baseswago.baseroom.IRoomActiveListener
 import com.swago.baseswago.baseroom.IRoomInfo
 import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.model.live.gift.IMGiftModel
+import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.LogUtil
 import java.util.*
 
@@ -20,6 +22,7 @@ class SvgPlayerManager : IRoomActiveListener {
     private var svgDanDaoView: SvgDanDaoView? = null
 
     fun init(context: Context, xSvgPlayer: XSvgPlayer,svgDanDaoView: SvgDanDaoView) {
+        SVGACache.onCreate(AppContext.getContext(), SVGACache.Type.FILE)
         SVGAParser.shareParser().init(context)
         this.xSvgPlayer = xSvgPlayer
         this.svgDanDaoView = svgDanDaoView

+ 70 - 27
room/src/main/java/com/swago/room/gift/control/XSvgPlayer.kt

@@ -50,40 +50,77 @@ class XSvgPlayer : ConstraintLayout {
        if (imGiftModel.svga.isNullOrEmpty()){
            return
        }
-        svgaParser!!.let {
+        svgaParser?.let {
             LogUtil.d("svgPlayer","xxx--$isPlaying")
-            it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
-                override fun onComplete(videoItem: SVGAVideoEntity) {
-                    binding!!.apply {
-                        val drawable = SVGADrawable(videoItem)
-                        svgaImageView.visibility = View.VISIBLE
-                        svgaImageView.setImageDrawable(drawable)
-                        svgaImageView.loops = 1
-                        svgaImageView.callback = callback
-                        LogUtil.d("svgPlayer","onComplete--$isPlaying")
-                        if (!isPlaying){
-                            svgaImageView.startAnimation()
-                            isPlaying = true
+            try{
+                it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
+                    override fun onComplete(videoItem: SVGAVideoEntity) {
+                        binding?.apply {
+                            val drawable = SVGADrawable(videoItem)
+                            svgaImageView.visibility = View.VISIBLE
+                            svgaImageView.setImageDrawable(drawable)
+                            svgaImageView.loops = 1
+                            svgaImageView.callback = callback
+                            LogUtil.d("svgPlayer","onComplete--$isPlaying")
+                            if (!isPlaying){
+                                svgaImageView.startAnimation()
+                                isPlaying = true
+                            }
+
                         }
 
                     }
 
-                }
+                    override fun onError() {
+                        binding?.apply {
+                            isPlaying = false
+                            LogUtil.d("svgPlayer","onError--$isPlaying")
+                            svgaImageView.visibility = View.GONE
+                            nextSvgPlay?.invoke()
+                        }
+                    }
+                },object:SVGAParser.PlayCallback{
+                    override fun onPlay(file: List<File>) {
+                        LogUtil.d("svgPlayer","onPlay--${file.size}")
+                    }
+
+                })
+
+            } catch (e: Exception){
+                it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
+                    override fun onComplete(videoItem: SVGAVideoEntity) {
+                        binding?.apply {
+                            val drawable = SVGADrawable(videoItem)
+                            svgaImageView.visibility = View.VISIBLE
+                            svgaImageView.setImageDrawable(drawable)
+                            svgaImageView.loops = 1
+                            svgaImageView.callback = callback
+                            LogUtil.d("svgPlayer","onComplete--$isPlaying")
+                            if (!isPlaying){
+                                svgaImageView.startAnimation()
+                                isPlaying = true
+                            }
+
+                        }
 
-                override fun onError() {
-                    binding?.apply {
-                        isPlaying = false
-                        LogUtil.d("svgPlayer","onError--$isPlaying")
-                        svgaImageView.visibility = View.GONE
-                        nextSvgPlay?.invoke()
                     }
-                }
-            },object:SVGAParser.PlayCallback{
-                override fun onPlay(file: List<File>) {
-                    LogUtil.d("svgPlayer","onPlay--${file.size}")
-                }
 
-            })
+                    override fun onError() {
+                        binding?.apply {
+                            isPlaying = false
+                            LogUtil.d("svgPlayer","onError--$isPlaying")
+                            svgaImageView.visibility = View.GONE
+                            nextSvgPlay?.invoke()
+                        }
+                    }
+                },object:SVGAParser.PlayCallback{
+                    override fun onPlay(file: List<File>) {
+                        LogUtil.d("svgPlayer","onPlay--${file.size}")
+                    }
+
+                })
+
+            }
 
         }
     }
@@ -129,11 +166,16 @@ class XSvgPlayer : ConstraintLayout {
                         nextSvgPlay?.invoke()
                     }
                 }
+            },object : SVGAParser.PlayCallback{
+                override fun onPlay(file: List<File>) {
+                    LogUtil.d("svgPlayer","onPlay--${file.size}")
+                }
+
             })
 
             if (handler!= null){
                 handler.postDelayed({
-                    if (!callbackExecuted){
+                    if (!callbackExecuted && binding?.svgaImageView?.isAnimating == false){
                         playJoinRoomSvga(userJoinRoomBean)
                         LogUtil.d("JoinAnimalManager","callbackExecuted")
                     }
@@ -159,6 +201,7 @@ class XSvgPlayer : ConstraintLayout {
         override fun onFinished() {
             isPlaying = false
             LogUtil.d("svgPlayer","onFinished--${isPlaying}")
+            binding?.svgaImageView?.pauseAnimation()
             binding?.svgaImageView?.visibility = View.GONE
             nextSvgPlay?.invoke()
         }

+ 2 - 2
room/src/main/java/com/swago/room/widget/AnchorFooterView.kt

@@ -131,10 +131,10 @@ class AnchorFooterView : ConstraintLayout, IFooter, IRoomActiveListener {
             override fun onClick() {
                 if (isMute){
                     AgoraManager.setMute(false)
-                    binding.ivMute.setImageResource(R.mipmap.live_unmute)
+                    binding.ivMute.setImageResource(R.mipmap.live_unmute_white)
                 }else{
                     AgoraManager.setMute(true)
-                    binding.ivMute.setImageResource(R.mipmap.live_mute)
+                    binding.ivMute.setImageResource(R.mipmap.live_mute_white)
                 }
                 isMute = !isMute
             }

+ 2 - 2
room/src/main/res/layout/dialog_audio_action.xml

@@ -148,7 +148,7 @@
         <ImageView
             android:id="@+id/ivMuteMic"
             android:padding="10dp"
-            android:src="@mipmap/live_mute"
+            android:src="@mipmap/live_mute_white"
             android:layout_width="50dp"
             android:layout_height="50dp"/>
         <TextView
@@ -179,7 +179,7 @@
         <ImageView
             android:id="@+id/ivUnMuteMic"
             android:padding="10dp"
-            android:src="@mipmap/live_unmute"
+            android:src="@mipmap/live_unmute_white"
             android:layout_width="50dp"
             android:layout_height="50dp"/>
         <TextView

+ 1 - 1
room/src/main/res/layout/dialog_invited_by_anchor_mic.xml

@@ -66,7 +66,7 @@
                 android:id="@+id/tvAgree"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:drawableStart="@mipmap/live_unmute"
+                android:drawableStart="@mipmap/live_unmute_white"
                 android:gravity="center"
                 android:drawablePadding="5dp"
                 android:layout_gravity="center"

+ 4 - 0
room/src/main/res/layout/fragment_base_com.xml

@@ -187,6 +187,10 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>
 
+    <com.swago.room.gift.control.XSvgPlayer
+        android:id="@+id/xJoinSvgaPlayer"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
 
     <com.swago.room.gift.control.SvgDanDaoView
         android:id="@+id/svgDanDaoView"

+ 1 - 1
room/src/main/res/layout/layout_anchor_footer_view.xml

@@ -132,7 +132,7 @@
         android:background="@drawable/shape_80000000_20"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/ivMore"
-        android:src="@mipmap/live_unmute"
+        android:src="@mipmap/live_unmute_white"
         android:padding="7dp"
         android:layout_width="40dp"
         android:layout_height="40dp"/>

BIN
room/src/main/res/mipmap-xxhdpi/live_mute_white.webp


BIN
room/src/main/res/mipmap-xxhdpi/live_unmute_white.webp


+ 1 - 1
user/src/main/java/com/swago/user/SettingActivity.kt

@@ -32,7 +32,7 @@ class SettingActivity : BaseXActivity<ActivitySettingBinding>() {
         setBackView(binding.toolbar.ivBack)
         binding.toolbar.tvTitle.text = AppContext.getContext().resources.getString(R.string.setting)
 
-        binding.tvVersion.text = getVersionName()
+        binding.tvVersion.text = getVersionName() + "(1)"
 
         binding.tvUserAgreement.setOnClickListener(object : NoDoubleClickListener() {
             override fun onClick() {