honghengqiang 2 anni fa
parent
commit
c188865e84

+ 0 - 1
app/src/main/java/com/swago/app/SplashVm.kt

@@ -108,7 +108,6 @@ class SplashVm(application: Application) : BaseViewModel(application) {
         if (BuildConfig.DEBUG) {
             UrlConstant.BASE_URL =   "http:test-api.swago.cn"
 //            UrlConstant.BASE_URL =   "http:huawei.swago.cn"
-//            UrlConstant.BASE_URL =    "https://api.swagobei.com"
 //            UrlConstant.BASE_URL =   "https://pro-api.swago.cn"
         } else {
             UrlConstant.BASE_URL = baseUrl

+ 0 - 1
baseswago/src/main/java/com/swago/baseswago/constant/UrlConstant.kt

@@ -16,7 +16,6 @@ object UrlConstant {
     var BASE_URL = if (BuildConfig.DEBUG) {
             "http:test-api.swago.cn"
 //            "http:huawei.swago.cn"
-//        "https://api.swagobei.com"
 //        "https://pro-api.swago.cn"
     } else {
             "https://pro-api.swago.cn"

+ 3 - 0
baseswago/src/main/res/values-ar/strings.xml

@@ -222,4 +222,7 @@
     <string name="close_mic">كتم الجيست</string>
     <string name="open_mic">إلغاء الكتم</string>
     <string name="ji_fen_to_zero">هل تتأكد من إعادة احتساب جميع نقاط مستخدم الميكروفون في الغرفة؟</string>
+    <string name="notice">النشرة</string>
+    <string name="not_exceed_char">الحد الأقصى لا يتجاوز 150 حرفا</string>
+    <string name="no_send_people">لا يوجد مستخدم يقبل الهدايا</string>
 </resources>

+ 3 - 0
baseswago/src/main/res/values-in/strings.xml

@@ -226,4 +226,7 @@
     <string name="close_mic">Tutup Mikropon</string>
     <string name="open_mic">Membuka Mikropon</string>
     <string name="ji_fen_to_zero">Apakah Anda ingin mengatur kembali semua poin pengguna di kursi menjadi nol</string>
+    <string name="notice">Pengumuman</string>
+    <string name="not_exceed_char">Tidak lebih dari 150 karakter</string>
+    <string name="no_send_people">Pengguna yang tidak menerima hadiah</string>
 </resources>

+ 3 - 1
baseswago/src/main/res/values-ms/strings.xml

@@ -223,5 +223,7 @@
     <string name="close_mic">Matikan suara</string>
     <string name="open_mic">Buka bunyi</string>
     <string name="ji_fen_to_zero">Adakah anda perlu menetapkan semula semua skor tempat duduk di bilik semasa hingga sifar?</string>
-
+    <string name="notice">Pengumuman</string>
+    <string name="not_exceed_char">Saiz maksimum ialah 150 aksara</string>
+    <string name="no_send_people">Pengguna yang tidak menerima hadiah</string>
 </resources>

+ 3 - 1
baseswago/src/main/res/values-zh/strings.xml

@@ -222,5 +222,7 @@
     <string name="close_mic">闭麦</string>
     <string name="open_mic">开麦</string>
     <string name="ji_fen_to_zero">您是否需要将当前房间的所有麦位用户积分值重置为零?</string>
-
+    <string name="notice">公告</string>
+    <string name="not_exceed_char">不超过150个字符</string>
+    <string name="no_send_people">麦位无可送礼人</string>
 </resources>

+ 2 - 1
baseswago/src/main/res/values/strings.xml

@@ -245,6 +245,7 @@
     <string name="open_mic">on the mic</string>
     <string name="ji_fen_to_zero">Do you need to reset all microphone user point in the room?</string>
     <string name="notice">Notice</string>
-    <string name="not_exceed_char">不超过150个字符</string>
+    <string name="not_exceed_char">A maximum of 150 characters</string>
+    <string name="no_send_people">No users accept gifts</string>
 
 </resources>

+ 40 - 0
room/src/main/java/com/swago/room/dialog/AudioNoticeUserDialog.kt

@@ -0,0 +1,40 @@
+package com.swago.room.dialog
+
+import android.os.Bundle
+import android.view.Gravity
+import com.swago.baseswago.baseroom.SwagoRoomManager
+import com.swago.baseswago.dialog.BaseXDFragment
+import com.swago.baseswago.util.NoDoubleClickListener
+import com.swago.room.databinding.DialogAudioNoticeUserBinding
+
+class AudioNoticeUserDialog : BaseXDFragment<DialogAudioNoticeUserBinding>() {
+
+
+    init {
+        setGravity(Gravity.CENTER)
+        setDimAmount(0.5f)
+        setCanCancel(false)
+    }
+
+    companion object{
+        fun newInstance(): AudioNoticeUserDialog {
+            val args = Bundle()
+            val fragment = AudioNoticeUserDialog()
+            fragment.arguments = args
+            return fragment
+        }
+    }
+
+    override fun initOther() {
+        SwagoRoomManager.iRoomInfo?.let {
+            binding.tvNotice.text = it.getAudioNotice()
+        }
+        binding.tvSure.setOnClickListener(object: NoDoubleClickListener(){
+            override fun onClick() {
+               dismissAllowingStateLoss()
+            }
+        })
+    }
+
+    override fun initLiveData() {}
+}

+ 32 - 8
room/src/main/java/com/swago/room/game/GamePlayDialog.kt

@@ -5,13 +5,11 @@ import android.os.Bundle
 import android.view.Gravity
 import android.view.ViewGroup
 import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
-import android.webkit.JavascriptInterface
-import android.webkit.WebResourceRequest
-import android.webkit.WebView
-import android.webkit.WebViewClient
+import android.webkit.*
 import android.widget.FrameLayout
 import android.widget.ImageView
 import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.lifecycle.lifecycleScope
 import com.google.gson.Gson
 import com.swago.baseswago.baseroom.IRoomActiveListener
 import com.swago.baseswago.baseroom.IRoomInfo
@@ -27,14 +25,15 @@ import com.swago.baseswago.model.im.CusNewMsgBean
 import com.swago.baseswago.model.im.FollowSuccessMsgBean
 import com.swago.baseswago.model.im.GameData
 import com.swago.baseswago.model.live.game.GameInfoModel
-import com.swago.baseswago.util.DpPxUtil
-import com.swago.baseswago.util.NoDoubleClickListener
-import com.swago.baseswago.util.SwagoInfo
-import com.swago.baseswago.util.UserInfo
+import com.swago.baseswago.util.*
 import com.swago.room.R
 import com.swago.room.bean.UserRoomModel
 import com.swago.room.databinding.DialogGamePlayBinding
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import org.json.JSONObject
+import java.io.File
 
 /**
  *@date 2022/1/19 20:41
@@ -45,6 +44,7 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
     private var url = ""
 
     private var webView: WebView? = null
+    private var localGameUrl = ""
     private val jsLoad by lazy {
         JSLoad()
     }
@@ -80,6 +80,9 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
         SwagoRoomManager.addListener(this)
         arguments?.let {
             url = it.getString(URL, "")
+            if (url.startsWith("file://")){
+                localGameUrl = url
+            }
             isFullScreen = it.getBoolean(FULL_GAME,false)
             activity?.let { activity ->
 
@@ -114,6 +117,27 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(), IRoomActiveListe
                         ): Boolean {
                             return super.shouldOverrideUrlLoading(view, request)
                         }
+
+                        override fun onReceivedError(
+                            view: WebView?,
+                            request: WebResourceRequest?,
+                            error: WebResourceError?
+                        ) {
+                            super.onReceivedError(view, request, error)
+                            try {
+                                if (localGameUrl.isNotEmpty()) {
+                                    lifecycleScope.launch {
+                                        withContext(Dispatchers.IO) {
+                                            val file =
+                                                File(localGameUrl.substring(7, localGameUrl.length - 11))
+                                            FileUtil.deleteFile(file)
+                                        }
+                                    }
+                                }
+                            } catch (e: Exception) {
+                                e.printStackTrace()
+                            }
+                        }
                     }
 
                     //设置大小

+ 6 - 0
room/src/main/java/com/swago/room/gift/GiftDialog.kt

@@ -398,6 +398,12 @@ class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
                         selectedUserList,
                         giftNum
                     )
+                }else{
+                    Toast.makeText(
+                        AppContext.getContext(),
+                        AppContext.getContext().resources.getString(R.string.no_send_people),
+                        Toast.LENGTH_SHORT
+                    ).show()
                 }
             }
         }

+ 9 - 6
room/src/main/java/com/swago/room/user/UserRoomFragment.kt

@@ -3,17 +3,11 @@ package com.swago.room.user
 import android.view.View
 import android.widget.Toast
 import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.lifecycleScope
 import com.swago.baseswago.PersonDataDFragment
-import com.swago.baseswago.agora.AgoraManager
 import com.swago.baseswago.baseroom.IRoomInfo
 import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.dialog.BenefitBagDialog
 import com.swago.baseswago.dialog.ReportDialog
-import com.swago.baseswago.model.UserInfoModel
-import com.swago.baseswago.model.im.UserJoinRoomBean
-import com.swago.baseswago.model.live.audio.AudioSeatModel
 import com.swago.baseswago.model.live.pk.ProcessPKModel
 import com.swago.baseswago.model.live.pk.PunishPKModel
 import com.swago.baseswago.model.live.pk.StartPKModel
@@ -26,6 +20,7 @@ import com.swago.room.audio.UserByAnchorInviteDialog
 import com.swago.room.base.BaseComFragment
 import com.swago.room.bean.UserRoomModel
 import com.swago.room.databinding.FragmentBaseComBinding
+import com.swago.room.dialog.AudioNoticeUserDialog
 import com.swago.room.dialog.ShareDialog
 import com.swago.room.enum.RoomType
 import com.swago.room.game.GameListDialog
@@ -182,6 +177,9 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
             UserByAnchorInviteDialog.newInstance(it.inviteName,it.inviteAvatar,it.maiIndex,it.applyId).show(childFragmentManager,"UserByAnchorInviteDialog")
         }
 
+        (iHeader as ComHeaderView).showAudioUserNoticeFun = {
+            AudioNoticeUserDialog.newInstance().show(childFragmentManager,"AudioNoticeUserDialog")
+        }
 
         (iHeader as ComHeaderView).showUserInfo = {
             PersonDataDFragment.newInstance(it, isAnchor = false, inRoom = true,SwagoRoomManager.iRoomInfo?.getRoomId()?:"")
@@ -239,6 +237,11 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
 
     override fun joinedRoom(iRoomInfo: IRoomInfo) {
         super.joinedRoom(iRoomInfo)
+        SwagoRoomManager.iRoomInfo?.let {
+            if (it.getAudioNotice().isNotEmpty()){
+                AudioNoticeUserDialog.newInstance().show(childFragmentManager,"AudioNoticeUserDialog")
+            }
+        }
     }
 
     override fun endRoom(iRoomInfo: IRoomInfo?) {

+ 4 - 0
room/src/main/java/com/swago/room/vm/MsgVm.kt

@@ -50,6 +50,7 @@ import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.UserInfo
 import com.swago.room.audio.AudioRoomManager
 import com.swago.room.audio.IAudioRoomListener
+import com.swago.room.bean.UserRoomModel
 import com.swago.room.manager.JoinRoomManager
 import java.util.concurrent.CopyOnWriteArrayList
 
@@ -513,6 +514,9 @@ class MsgVm(application: Application) : AbsMsgVm(application) {
                 it.data?.let {
                     if (it.roomId == iRoomInfo.getRoomId() && it.roomSessionId == iRoomInfo.getBroadcastId()) {
                         updateAudioNotice?.invoke(it.notice)
+                        SwagoRoomManager.iRoomInfo?.let {iRoomInfo ->
+                            (iRoomInfo as UserRoomModel).roomModel?.yuying_notice_content = it.notice
+                        }
                     }
                 }
             }

+ 10 - 0
room/src/main/java/com/swago/room/widget/ComHeaderView.kt

@@ -20,6 +20,8 @@ import com.swago.baseswago.util.NoDoubleClickListener
 import com.swago.baseswago.util.TimeUtil
 import com.swago.room.adapter.RoomUserAdapter
 import com.swago.room.databinding.LayoutUserHeaderViewBinding
+import com.swago.room.dialog.AudioNoticeDialog
+import com.swago.room.dialog.AudioNoticeUserDialog
 import com.swago.room.inter.IHeader
 
 /**
@@ -34,6 +36,7 @@ class ComHeaderView  : ConstraintLayout, IRoomActiveListener, IHeader, RoomTimer
     var followFun:((id:String)->Unit)? = null
     var showUserInfo:((id:String)->Unit)? = null
     var openAudienceListDialog:(()->Unit)? = null
+    var showAudioUserNoticeFun:(()->Unit)? = null
 
     //钻石收入
     private var localIncome = 0L
@@ -98,6 +101,13 @@ class ComHeaderView  : ConstraintLayout, IRoomActiveListener, IHeader, RoomTimer
             }
         })
 
+        binding.tvAnnouncement.setOnClickListener(object:NoDoubleClickListener(){
+            override fun onClick() {
+                if (SwagoRoomManager.roleType == RoleType.user){
+                    showAudioUserNoticeFun?.invoke()
+                }
+            }
+        })
     }
 
 

+ 65 - 0
room/src/main/res/layout/dialog_audio_notice_user.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_marginStart="40dp"
+        android:layout_marginEnd="40dp"
+        android:background="@drawable/shape_white_20"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/tvTitle"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="16dp"
+            android:textSize="16dp"
+            android:drawableStart="@mipmap/icon_notice"
+            android:textColor="@color/_000000"
+            android:text="@string/notice"
+            android:drawablePadding="2dp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+
+        <TextView
+            android:id="@+id/tvNotice"
+            android:layout_marginStart="24dp"
+            android:layout_marginEnd="24dp"
+            android:gravity="center"
+            android:textSize="14dp"
+            android:textColor="#000"
+            android:padding="10dp"
+            android:maxLength="150"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle"
+            android:layout_marginTop="16dp"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+        <TextView
+            android:id="@+id/tvSure"
+            android:textSize="14dp"
+            android:textColor="#fff"
+            android:text="@string/confirm"
+            android:gravity="center"
+            android:layout_marginStart="24dp"
+            android:layout_marginEnd="24dp"
+            android:layout_marginBottom="10dp"
+            android:layout_marginTop="20dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:background="@drawable/shape_ff56b7_5"
+            app:layout_constraintTop_toBottomOf="@+id/tvNotice"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_width="0dp"
+            android:layout_height="40dp"/>
+
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>