diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftGoRoomTipsDialog.kt b/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftGoRoomTipsDialog.kt
new file mode 100644
index 000000000..482c95bc3
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftGoRoomTipsDialog.kt
@@ -0,0 +1,101 @@
+package com.yizhuan.erban.ui.widget.dialog
+
+import android.content.Context
+import android.os.Bundle
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.Window
+import android.view.WindowManager
+import androidx.databinding.DataBindingUtil
+import com.chuhai.utils.ktx.singleClick
+import com.yizhuan.erban.R
+import com.yizhuan.erban.avroom.activity.AVRoomActivity
+import com.yizhuan.erban.databinding.AllServiceGiftGoRoomTipsDialogBinding
+import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity
+import com.yizhuan.xchat_android_core.initial.InitialModel
+import com.yizhuan.xchat_android_library.common.util.SPUtils
+import com.yizhuan.xchat_android_library.utils.JavaUtil
+
+/**
+ * Created by Max on 2023/10/30 10:29
+ * Desc:跳转房间提示
+ **/
+class AllServiceGiftGoRoomTipsDialog(
+ context: Context,
+ private val roomName: String,
+ private val roomId: Long
+) :
+ BaseDialog(context, R.style.dialog) {
+
+ private var binding: AllServiceGiftGoRoomTipsDialogBinding? = null
+
+ companion object {
+ /**
+ * 是否需要提示前往房间
+ */
+ fun isNeedTips(): Boolean {
+ return !SPUtils.getBoolean("all_service_gift_go_room_no_tips", false)
+ }
+
+ /**
+ * 忽略提示/不在提示
+ */
+ private fun ignoreTips() {
+ SPUtils.putBoolean("all_service_gift_go_room_no_tips", true)
+ }
+ }
+
+ private var isCheck: Boolean = false
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ requestWindowFeature(Window.FEATURE_NO_TITLE)
+ val inflate =
+ LayoutInflater.from(context)
+ .inflate(R.layout.all_service_gift_go_room_tips_dialog, null)
+ setContentView(inflate.rootView)
+ binding = DataBindingUtil.bind(inflate)
+
+ binding?.tvRoomName?.text = roomName
+ binding?.ivCheckbox?.setOnClickListener {
+ updateCheckbox(!isCheck)
+ }
+ binding?.tvTips?.setOnClickListener {
+ updateCheckbox(!isCheck)
+ }
+ binding?.tvGo?.singleClick {
+ if (isCheck) {
+ ignoreTips()
+ }
+ if (roomId == JavaUtil.str2long(InitialModel.get().publicChatHallUid)) {
+ PublicChatHallHomeActivity.openPublicChatHallPage(context)
+ } else {
+ AVRoomActivity.start(context, roomId)
+ }
+ dismiss()
+ }
+ binding?.tvCancel?.singleClick {
+ dismiss()
+ }
+ updateCheckbox(false)
+ }
+
+ override fun onStart() {
+ super.onStart()
+ this.window?.attributes?.let {
+ it.width = WindowManager.LayoutParams.MATCH_PARENT
+ it.height = WindowManager.LayoutParams.WRAP_CONTENT
+ it.gravity = Gravity.CENTER
+ window?.attributes = it
+ }
+ }
+
+ private fun updateCheckbox(isCheck: Boolean) {
+ this.isCheck = isCheck
+ if (isCheck) {
+ binding?.ivCheckbox?.setImageResource(R.drawable.base_ic_checkbox_selected)
+ } else {
+ binding?.ivCheckbox?.setImageResource(R.drawable.base_ic_checkbox_unselected)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftLevelDialog.kt b/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftLevelDialog.kt
index 20d531824..327a81e0a 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftLevelDialog.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/widget/dialog/AllServiceGiftLevelDialog.kt
@@ -10,12 +10,13 @@ import android.view.ViewConfiguration
import android.view.Window
import android.view.WindowManager
import android.widget.TextView
+import androidx.core.view.isVisible
import androidx.databinding.DataBindingUtil
import com.chuhai.utils.ktx.singleClick
import com.chuhai.utils.ktx.toStringRes
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
-import com.yizhuan.erban.databinding.DialogGiftAllServiceLevelBinding
+import com.yizhuan.erban.databinding.DialogGiftAllServiceLevel2Binding
import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity
import com.yizhuan.xchat_android_core.initial.InitialModel
import com.yizhuan.xchat_android_core.noble.AllServiceGiftProtocol
@@ -31,7 +32,7 @@ import java.util.concurrent.TimeUnit
class AllServiceGiftLevelDialog : BaseDialog {
private var data: AllServiceGiftProtocol.DataBean? = null
- private var binding: DialogGiftAllServiceLevelBinding? = null
+ private var binding: DialogGiftAllServiceLevel2Binding? = null
private var disposable: Disposable? = null
@@ -49,7 +50,7 @@ class AllServiceGiftLevelDialog : BaseDialog {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
val inflate =
- LayoutInflater.from(context).inflate(R.layout.dialog_gift_all_service_level, null)
+ LayoutInflater.from(context).inflate(R.layout.dialog_gift_all_service_level2, null)
setContentView(inflate.rootView)
setCancelable(true)
setCanceledOnTouchOutside(true)
@@ -82,16 +83,20 @@ class AllServiceGiftLevelDialog : BaseDialog {
private fun init(
data: AllServiceGiftProtocol.DataBean,
- binding: DialogGiftAllServiceLevelBinding
+ binding: DialogGiftAllServiceLevel2Binding
) {
+ binding.ivAvatar.singleClick {
+ goRoom(data)
+ }
binding.tvRoomGo.singleClick {
- if (data.roomUid == JavaUtil.str2long(InitialModel.get().publicChatHallUid)) {
- PublicChatHallHomeActivity.openPublicChatHallPage(context)
- } else {
- AVRoomActivity.start(context, data.roomUid)
- }
+ goRoom(data)
}
binding.giftBean = data
+ if ((data.giftNum) <= 1) {
+ binding.tvCount.text = ""
+ } else {
+ binding.tvCount.text = "X${data.giftNum}"
+ }
binding.tvMessage.text =
"${data.sendUserNick}${R.string.layout_dialog_in_app_sharing_confirm_01.toStringRes()}${data.recvUserNick} ${data.giftName}"
when (data.levelNum.toIntOrNull()) {
@@ -116,6 +121,7 @@ class AllServiceGiftLevelDialog : BaseDialog {
setupTextMarquee(binding.tvMessage)
disposable = Observable.timer(data.notifyStaySecond.toLong(), TimeUnit.SECONDS)
.subscribe { dismiss() }
+ binding.groupRoom.isVisible = data.roomUid != 0L
}
/**
@@ -141,6 +147,20 @@ class AllServiceGiftLevelDialog : BaseDialog {
}
}
+ private fun goRoom(
+ data: AllServiceGiftProtocol.DataBean
+ ) {
+ if (AllServiceGiftGoRoomTipsDialog.isNeedTips()) {
+ AllServiceGiftGoRoomTipsDialog(context, data.roomTitle, data.roomUid).show()
+ } else {
+ if (data.roomUid == JavaUtil.str2long(InitialModel.get().publicChatHallUid)) {
+ PublicChatHallHomeActivity.openPublicChatHallPage(context)
+ } else {
+ AVRoomActivity.start(context, data.roomUid)
+ }
+ }
+ }
+
override fun dismiss() {
super.dismiss()
if (disposable?.isDisposed != true) {
diff --git a/app/src/main/res/drawable/base_ic_checkbox_selected.xml b/app/src/main/res/drawable/base_ic_checkbox_selected.xml
new file mode 100644
index 000000000..d5b22767c
--- /dev/null
+++ b/app/src/main/res/drawable/base_ic_checkbox_selected.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/base_ic_checkbox_unselected.xml b/app/src/main/res/drawable/base_ic_checkbox_unselected.xml
new file mode 100644
index 000000000..20d2db0af
--- /dev/null
+++ b/app/src/main/res/drawable/base_ic_checkbox_unselected.xml
@@ -0,0 +1,12 @@
+
+
+
diff --git a/app/src/main/res/drawable/base_theme_btn_21.xml b/app/src/main/res/drawable/base_theme_btn_21.xml
new file mode 100644
index 000000000..64dfde80e
--- /dev/null
+++ b/app/src/main/res/drawable/base_theme_btn_21.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_e6e6f0_21.xml b/app/src/main/res/drawable/shape_e6e6f0_21.xml
new file mode 100644
index 000000000..f996926dd
--- /dev/null
+++ b/app/src/main/res/drawable/shape_e6e6f0_21.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/all_service_gift_go_room_tips_dialog.xml b/app/src/main/res/layout/all_service_gift_go_room_tips_dialog.xml
new file mode 100644
index 000000000..1b9388e54
--- /dev/null
+++ b/app/src/main/res/layout/all_service_gift_go_room_tips_dialog.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_gift_all_service_level.xml b/app/src/main/res/layout/dialog_gift_all_service_level.xml
index 879fcbda0..1ad98f4b7 100644
--- a/app/src/main/res/layout/dialog_gift_all_service_level.xml
+++ b/app/src/main/res/layout/dialog_gift_all_service_level.xml
@@ -115,6 +115,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/tv_count"
app:layout_constraintTop_toTopOf="parent"
+ app:layout_goneMarginEnd="24dp"
tools:background="@color/black" />
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 49be559d8..e29c2d8c6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5143,5 +5143,9 @@
當前無需選擇解鎖禮物
選擇解鎖禮物
去圍觀
-
+ 前往圍觀
+ 是否離開當前房間前往
+ 下次不再出現此提示
+ 留在這
+ 立即前往
\ No newline at end of file