poppin_leaf 1 mēnesi atpakaļ
vecāks
revīzija
abaa9c012a

+ 2 - 2
buildSrc/src/main/java/com/yc/buildsrc/ProjectBuildConfig.kt

@@ -8,8 +8,8 @@ object ProjectBuildConfig {
     const val applicationId = "com.bmkj.tianka"
     const val minSdkVersion = 23
     const val targetSdkVersion = 30
-    const val versionCode = 2026012801
-    const val versionName = "1.0.1"
+    const val versionCode = 2026032101
+    const val versionName = "1.0.3"
     const val isAppMode = false
 
     /**

+ 68 - 55
module_base/src/main/java/com/yc/module_base/websocket/BaseSocketConnect.java

@@ -1,6 +1,8 @@
 package com.yc.module_base.websocket;
 
 import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
 import android.util.Log;
 
 
@@ -26,13 +28,6 @@ import rx.Subscriber;
 import rx.Subscription;
 import rx.schedulers.Schedulers;
 
-
-/**
- * 基础socket
- *
- * @author chen_bin
- * @date 20-6-2
- */
 public abstract class BaseSocketConnect implements BaseWebSocket.MessageCallback {
 
     /**
@@ -121,7 +116,7 @@ public abstract class BaseSocketConnect implements BaseWebSocket.MessageCallback
     public synchronized void resetConnect(Context context) {
         if (isConnected()) {
             onDisconnect();
-            connect(context);
+            onStart(context);
         }
     }
 
@@ -149,52 +144,54 @@ public abstract class BaseSocketConnect implements BaseWebSocket.MessageCallback
         //        }
         connectSubscription =
                 getConnectObb(getContext()).subscribe(new Subscriber<BaseWebSocket>() {
-            @Override
-            public void onStart() {
-                super.onStart();
-                log("connect");
-                onDisconnect();
-            }
-
-            @Override
-            public void onCompleted() {
-                log("connected");
-                CommonUtil.unSubscribeSubs(pingCounterSubscription);
-                pingCounterSubscription = Observable.interval(10,
-                        10,
-                        TimeUnit.SECONDS,
-                        Schedulers.io())
-                        .subscribe(new EmptySubscriber<Long>() {
-                            @Override
-                            public void onNext(Long pingCount) {
-                                if (pongCount > 4) {
-                                    Log.e("socketMessage", "pong超过了");
-                                    onDisconnect();
-                                    onSocketError();
-                                }
-                                sendPing();
-                            }
-                        });
-            }
+                    @Override
+                    public void onStart() {
+                        super.onStart();
+                        log("connect");
+                        onDisconnect();
+                    }
 
-            @Override
-            public void onError(Throwable e) {
+                    @Override
+                    public void onCompleted() {
+                        log("connected");
+                        //心跳
+                        CommonUtil.unSubscribeSubs(pingCounterSubscription);
+                        pingCounterSubscription = Observable.interval(10,
+                                        10,
+                                        TimeUnit.SECONDS,
+                                        Schedulers.io())
+                                .subscribe(new EmptySubscriber<Long>() {
+                                    @Override
+                                    public void onNext(Long pingCount) {
+                                        if (pongCount > 4) {
+                                            Log.e("socketMessage", "pong超过了");
+                                            onDisconnect();
+                                            onSocketError();
+                                        }
+                                        sendPing();
+                                    }
+                                });
+                    }
 
-            }
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e("socketMessage","BaseSocket"+e.toString());
+                    }
 
-            @Override
-            public void onNext(BaseWebSocket webSocket) {
-                BaseSocketConnect.this.webSocket = webSocket;
-                if (errorCount > 0) {
-                    onSocketReConnected();
-                } else {
-                    onSocketConnected();
-                }
+                    @Override
+                    public void onNext(BaseWebSocket webSocket) {
+                        BaseSocketConnect.this.webSocket = webSocket;
+                        Log.e("socketMessage","onNext");
+                        if (errorCount > 0) {
+                            onSocketReConnected();
+                        } else {
+                            onSocketConnected();
+                        }
 
-                errorCount = 0;
-                addWebSocketCallback(webSocket);
-            }
-        });
+                        errorCount = 0;
+                        addWebSocketCallback(webSocket);
+                    }
+                });
     }
 
     /**
@@ -254,21 +251,37 @@ public abstract class BaseSocketConnect implements BaseWebSocket.MessageCallback
                 public void onCompleted(BaseWebSocket webSocket) {
                     subscriber.onNext(webSocket);
                     subscriber.onCompleted();
+                    errorCount = 0;
                 }
 
                 @Override
                 public void onError(Throwable ex) {
 //                    subscriber.onError(ex);
-                    errorCount++;
-                    if (errorCount > maxReConnect) {
-                        onSocketError();
-                        return;
-                    }
+                    checkReconnect(context);
                 }
             });
         });
     }
 
+    //重连判断
+    private void checkReconnect(final Context context) {
+        if (errorCount >= 5) {
+            // 重连次数超过5次,不再重连
+            onSocketError();
+            webSocket.close();
+            return;
+        }
+        errorCount++;
+        int delaySeconds = 5000 * errorCount;
+        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                reConnect(context);
+                Log.e("socketMessage","断线重连开始");
+            }
+        }, delaySeconds);
+    }
+
     public void reConnect(final Context context) {
         onDestroy();
         onStart(context);

+ 1 - 0
module_base/src/main/java/com/yc/module_base/websocket/DiaochanSocket.kt

@@ -106,6 +106,7 @@ class DiaochanSocket : BaseSocketConnect() {
                                 canCancelOutSide(false)
                                 cancelAble(false)
                                 confirm {
+                                    LiveSession.quitLogin()
                                     Cache.clear()
                                     ActivityManager.finishAll()
                                 }

+ 12 - 10
module_base/src/main/java/com/yc/module_base/websocket/OkWebSocket.java

@@ -4,8 +4,6 @@ import android.content.Context;
 import android.util.Log;
 
 
-import com.yc.networklibrary.utils.SSLContextUtil;
-
 import java.util.concurrent.TimeUnit;
 
 import okhttp3.OkHttpClient;
@@ -33,9 +31,7 @@ public class OkWebSocket extends BaseWebSocket {
 
     @Override
     public void connect(Context context, String url, final ConnectCallback connectCallback) {
-        SSLContextUtil.SSLParams sslParams = SSLContextUtil.getSslSocketFactory();
         OkHttpClient client = new OkHttpClient.Builder().writeTimeout(60, TimeUnit.SECONDS)
-                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                 .readTimeout(60, TimeUnit.SECONDS)
                 .connectTimeout(60, TimeUnit.SECONDS)
                 .build();
@@ -44,7 +40,6 @@ public class OkWebSocket extends BaseWebSocket {
             public void onOpen(WebSocket webSocket, Response response) {
                 isOpen = true;
                 Log.e("socketMessage", "连接上了");
-                OkWebSocket.this.webSocket = webSocket;
                 if (connectCallback != null) {
                     connectCallback.onCompleted(OkWebSocket.this);
                 }
@@ -58,22 +53,29 @@ public class OkWebSocket extends BaseWebSocket {
             }
 
             @Override
-            public void onMessage(WebSocket webSocket, ByteString bytes) {
+            public void onMessage(WebSocket socket, ByteString bytes) {
                 if (messageCallback != null) {
                     messageCallback.onMessage(bytes);
                 }
             }
 
             @Override
-            public void onClosing(WebSocket webSocket, int code, String reason) {
+            public void onClosing(WebSocket socket, int code, String reason) {
+                if (webSocket == null)return;
+                if (!webSocket.equals(socket)) return;
                 webSocket.close(1000, null);
-
+                isOpen = false;
+                if (closedCallback != null) {
+                    closedCallback.onClosed(null);
+                }
             }
 
             @Override
-            public void onClosed(WebSocket webSocket, int code, String reason) {
+            public void onClosed(WebSocket socket, int code, String reason) {
                 Log.e("socketMessage", "断了,原因:"+"WebSocket closed. Code: "
                         + code + "Reason: " + reason + "code:"+code);
+                if (webSocket == null)return;
+                if (!webSocket.equals(socket)) return;
                 isOpen = false;
                 if (closedCallback != null) {
                     closedCallback.onClosed(null);
@@ -83,7 +85,7 @@ public class OkWebSocket extends BaseWebSocket {
             @Override
             public void onFailure(
                     WebSocket webSocket, Throwable t, Response response) {
-                Log.e("socketMessage", "连接失败了,"+"原因:");
+                Log.e("socketMessage", "连接失败了,"+"原因:"+t.getMessage());
                 isOpen = false;
                 if (connectCallback != null) {
                     connectCallback.onError(t);

+ 11 - 8
module_live/src/main/java/com/yc/module_live/view/live/livetop/TopLiveLayerFragment.kt

@@ -571,12 +571,11 @@ class TopLiveLayerFragment : TopLiveLayerClickFragment<TopLayerVm>(),
                 val barrage = data as Barrage
                 viewModel.insertBigGiftMsg(barrage)
                 scrollToBottom(barrage.fromUser?.userId)
-                showBigGiftBarrage(barrage)
             }
 
             BaseRoomVm.RECEIVE_AMOUNT_GIFT_BARRAGE -> {
-                val barrage = data as Barrage
-                showBigGiftBarrage(barrage)
+//                val barrage = data as Barrage
+//                showBigGiftBarrage(barrage)
             }
 
             BaseRoomVm.SWITCH_ROOM -> {//切换房间前执行,通过传送门
@@ -843,10 +842,14 @@ class TopLiveLayerFragment : TopLiveLayerClickFragment<TopLayerVm>(),
             it.giftId == gift.giftId
         }
         gift.giftName = curGift?.giftName
-        smallBarrageLayout?.startBarrage(barrage)
-        if (gift.roomId != viewModel.room?.roomId) {
-            startVideoAnimation(gift)//播放特效的,全站,或者大礼物有中奖动画的
+        if ((curGift?.price ?: 0) >= 5000){
+            showBigGiftBarrage(barrage)
+        }else{
+            smallBarrageLayout?.startBarrage(barrage)
         }
+//        if (gift.roomId == viewModel.room?.roomId) {
+//            startVideoAnimation(gift)//播放特效的,全站,或者大礼物有中奖动画的
+//        }
     }
 
     fun showNotibilyBarrage(notifyNotifyPlatBarrage: NotibilyUserData) {
@@ -939,7 +942,7 @@ class TopLiveLayerFragment : TopLiveLayerClickFragment<TopLayerVm>(),
 
     fun startVideoAnimation(gift: Gift?) {
         gift?.let {
-            if (it.giftType == GiftType.LUXURY_GIFT.type && LiveSession.getIsOpenSpecial()) {
+            if (it.giftType == GiftType.LUXURY_GIFT.type && gift.roomId == viewModel.room?.roomId && LiveSession.getIsOpenSpecial()) {
                 bigGiftView.addGiftList(it)
             } else if (it.luckyMulti >= 500 && gift.roomId == viewModel.room?.roomId && LiveSession.getIsOpenSpecial()) {
                 val luckyGift: Gift? = GiftManager.allGiftList.find {
@@ -948,7 +951,7 @@ class TopLiveLayerFragment : TopLiveLayerClickFragment<TopLayerVm>(),
                 if (luckyGift != null) {
                     bigGiftView.addGiftList(it)
                 }
-            } else if (it.giftType == GiftType.BIG_GIFT.type && LiveSession.getIsOpenSpecial()) {
+            } else if (it.giftType == GiftType.BIG_GIFT.type && gift.roomId == viewModel.room?.roomId && LiveSession.getIsOpenSpecial()) {
                 Log.e("socketMessage", "大礼物")
                 val barrage = Barrage()
                 barrage.giftToBarrage(gift)

+ 2 - 2
module_live/src/main/java/com/yc/module_live/widget/BigGiftBarrageLayout.kt

@@ -90,7 +90,7 @@ class BigGiftBarrageLayout @JvmOverloads constructor(
 
     private fun addBarrageView(barrage: Barrage): Boolean {
         val type = barrage.type
-        if (type == BarrageType.LUXURY_GIFT_BARRAGE.type) {
+        if (type == BarrageType.LUCKY_WIN_BARRAGE.type) {
             if (amountGiftLayout == null) {
                 amountGiftLayout = inflate(
                     context,
@@ -130,7 +130,7 @@ class BigGiftBarrageLayout @JvmOverloads constructor(
     private fun getContentWidth(type: Int): Float {
         var barrageInterface: BarrageInterface?=null
         when (type) {
-            BarrageType.LUXURY_GIFT_BARRAGE.type -> barrageInterface = amountGiftLayout
+            BarrageType.LUCKY_WIN_BARRAGE.type -> barrageInterface = amountGiftLayout
         }
         return barrageInterface?.contentWidth() ?: 0f
     }

+ 27 - 18
module_live/src/main/java/com/yc/module_live/widget/BigGiftLayout.kt

@@ -6,6 +6,7 @@ import android.graphics.Paint
 import android.text.SpannableStringBuilder
 import android.text.TextUtils
 import android.util.AttributeSet
+import android.util.Log
 import android.view.View
 import android.widget.RelativeLayout
 import com.xueyu.kotlinextlibrary.*
@@ -38,32 +39,40 @@ class BigGiftLayout @JvmOverloads constructor(
     override fun updateInfo(barrage: Barrage?) {
         if (barrage == null) return
         this.barrage = barrage
-            val allGiftList = GiftManager.allGiftList
-            var giftName = ""
-            allGiftList.forEach {
-                if (it.giftId == barrage.giftId){
-                    giftName = it.giftName.toString()
-
-                }
-
-            tvWinInfo.text = getBigGiftInfoText(barrage.fromUser?.nickName?.replaceBlank(),barrage.toUser?.nickName?.replaceBlank(),giftName).toString()
+        val allGiftList = GiftManager.allGiftList
+        Log.e("aappqqpp", allGiftList.size.toString())
+        var giftName: String? = ""
+        var price: Long = 0
+        allGiftList.forEach {
+            if (it.giftId == barrage.giftId) {
+                giftName = it.giftName
+                price = it.price
+            }
         }
+        tvWinInfo.text = getBigGiftInfoText(
+            barrage.fromUser?.nickName?.replaceBlank(),
+            barrage.luckyMulti,
+            giftName,
+            price
+        ).toString()
     }
 
-    private fun getBigGiftInfoText(fromUserName: String?,toUserName: String?,giftName: String?): CharSequence? {
+    private fun getBigGiftInfoText(fromUserName: String?,
+                                   luckyMulti: Int,
+                                   giftName: String?,
+                                   price: Long = 0): CharSequence? {
         val builder = SpannableStringBuilder("")
-        builder.append("$fromUserName".spannable {
-            setForeground(color = color(R.color.barrage_big_content))
+        builder.append(" ${fromUserName}".spannable {
+            setForeground(color = color(R.color.room_voice_boss_color))
         })
         builder.append(" 送 ")
-        builder.append("$toUserName".spannable {
-            setForeground(color = color(R.color.barrage_big_content))
+        builder.append("$giftName".spannable {
+            setForeground(color = color(R.color.room_voice_boss_color))
         })
-        builder.append("1个 ")
-        builder.append("${giftName} ".spannable {
-            setForeground(color = color(R.color.barrage_big_content))
+        builder.append(" 礼物中奖 ")
+        builder.append("${luckyMulti} 倍".spannable {
+            setForeground(color = color(R.color.room_voice_boss_color))
         })
-        builder.append("礼物")
         return builder
     }