1:修改我的页面
2:添加爵位功能
This commit is contained in:
@@ -16,13 +16,14 @@ import android.text.Spannable
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.TextUtils
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.DecelerateInterpolator
|
||||
import android.view.animation.TranslateAnimation
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.ImageView
|
||||
import android.widget.*
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
@@ -32,10 +33,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.facade.annotation.Autowired
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
import com.blankj.utilcode.util.*
|
||||
import com.blankj.utilcode.util.GsonUtils
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.blankj.utilcode.util.ThreadUtils
|
||||
import com.blankj.utilcode.util.TimeUtils
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.example.moduleroom.R
|
||||
@@ -52,6 +51,7 @@ import com.liulishuo.okdownload.OkDownloadProvider
|
||||
import com.orhanobut.logger.Logger
|
||||
import com.petterp.floatingx.assist.helper.FxScopeHelper
|
||||
import com.petterp.floatingx.listener.control.IFxControl
|
||||
import com.sunfusheng.marqueeview.DisplayUtil
|
||||
import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.tencent.imsdk.v2.V2TIMSDKListener
|
||||
import com.tencent.imsdk.v2.V2TIMUserFullInfo
|
||||
@@ -87,8 +87,10 @@ import com.xscm.moduleutil.rtc.AgoraManagerEx
|
||||
import com.xscm.moduleutil.rtc.MusicPlayBean
|
||||
import com.xscm.moduleutil.service.MyRoomSingleton
|
||||
import com.xscm.moduleutil.utils.*
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
import com.xscm.moduleutil.utils.roomview.GiftDisplayManager
|
||||
import com.xscm.moduleutil.widget.*
|
||||
import com.xscm.moduleutil.widget.ViewUtils
|
||||
import com.xscm.moduleutil.widget.ViewUtils.OnViewCreatedListener
|
||||
import com.xscm.moduleutil.widget.floatingView.Floa
|
||||
import io.agora.musiccontentcenter.Music
|
||||
@@ -558,6 +560,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
|
||||
// 初始化礼物管理器
|
||||
GiftDisplayManager.getInstance().setupDisplayView(mBinding!!.giftContainer)
|
||||
initPublicScreenFragment()
|
||||
|
||||
}
|
||||
|
||||
@@ -624,10 +627,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
mBinding!!.roomTop.tvNum.text = number.toString() + ""
|
||||
|
||||
setviewyc(true)
|
||||
initPublicScreenFragment()
|
||||
|
||||
// 确保Fragment已完全初始化后再调用getUpRoomInfo
|
||||
if (publicScreenFragment != null && publicScreenFragment!!.isAdded && publicScreenFragment!!.view != null) {
|
||||
publicScreenFragment!!.getUpRoomInfo(resp)
|
||||
publicScreenFragment!!.upRoomInfo(resp)
|
||||
}
|
||||
if (!isFinishing && !isDestroyed) {
|
||||
resetFragment()
|
||||
@@ -696,12 +699,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
mBinding!!.rlMisc.visibility = View.GONE
|
||||
}
|
||||
setupEffectView()
|
||||
// 使用Handler延迟执行,确保Fragment视图已完全创建
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
if (publicScreenFragment != null && publicScreenFragment!!.isAdded && publicScreenFragment!!.view != null) {
|
||||
publicScreenFragment!!.getUpRoomInfo(resp)
|
||||
}
|
||||
}
|
||||
|
||||
if (mRoomInfoResp!!.gift_cycle != null && mRoomInfoResp!!.gift_cycle.xlh_info != null && mRoomInfoResp!!.gift_cycle.xlh_info.xlh_status != null && mRoomInfoResp!!.gift_cycle.xlh_info.xlh_status == "1") {
|
||||
mBinding?.xlhRk?.visibility = View.VISIBLE
|
||||
@@ -720,7 +717,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
|
||||
|
||||
private fun checkAndRestoreMinimizeState() {
|
||||
val prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE)
|
||||
val prefs = getSharedPreferences("room_minimize_state", MODE_PRIVATE)
|
||||
var isMinimized = prefs.getBoolean("is_minimized", false)
|
||||
|
||||
if (isMinimized) {
|
||||
@@ -1184,7 +1181,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
|
||||
override fun initData() {
|
||||
if (!EasyPermissions.hasPermissions(this, *permissions)) {
|
||||
PermissionDescriptionHelper.addPermissionDescription(false,mBinding?.root as ViewGroup,permissions)
|
||||
PermissionDescriptionHelper.addPermissionDescription(false, mBinding?.root as ViewGroup, permissions)
|
||||
EasyPermissions.requestPermissions(
|
||||
this, "请开启录音使用权限",
|
||||
1, *permissions
|
||||
@@ -1240,7 +1237,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
this, LinearLayoutManager.HORIZONTAL, false
|
||||
)
|
||||
likeUserAdapter = LikeUserAdapter()
|
||||
mBinding!!.roomTop.userRecyclerView.adapter = likeUserAdapter
|
||||
mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter
|
||||
likeUserAdapter!!.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { adapter, view, position ->
|
||||
// RoomOnlineDialogFragment.show(roomId, "", mRoomUserBean, mRoomInfoResp, getSupportFragmentManager());
|
||||
@@ -1342,13 +1339,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
|
||||
|
||||
private fun initPublicScreenFragment() {
|
||||
// 检查是否已经存在 Fragment 实例(例如在配置更改后)
|
||||
publicScreenFragment = supportFragmentManager
|
||||
.findFragmentById(R.id.ease_container) as PublicScreenEaseChatFragment?
|
||||
|
||||
// 如果不存在,则创建新的实例
|
||||
if (publicScreenFragment == null) {
|
||||
publicScreenFragment = PublicScreenEaseChatFragment.newInstance(roomId)
|
||||
publicScreenFragment = PublicScreenEaseChatFragment.newInstance(mRoomInfoResp)
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.ease_container, publicScreenFragment!!)
|
||||
.commitAllowingStateLoss()
|
||||
@@ -1436,7 +1430,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else if (msgType == 1011) {
|
||||
handleMsgType1011(messageEvent, text)
|
||||
} else if (msgType == 1001) {
|
||||
handleMsgType1001()
|
||||
handleMsgType1001(messageEvent)
|
||||
} else if (msgType == 1002) {
|
||||
handleMsgType1002(messageEvent, text)
|
||||
} else if (msgType == 1029) {
|
||||
@@ -1702,11 +1696,14 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
toPitNumber: String,
|
||||
messageEvent: RoomMessageEvent
|
||||
) {
|
||||
mRoomInfoResp!!.user_info.pit_number = Integer.parseInt(toPitNumber)
|
||||
|
||||
if ("9" == toPitNumber && messageEvent.text.user_id.equals(SpUtil.getUserId().toString())) {
|
||||
|
||||
if ("9" == toPitNumber && messageEvent.text.fromUserInfo.user_id == SpUtil.getUserId()) {
|
||||
mRoomInfoResp!!.user_info.pit_number = Integer.parseInt(toPitNumber)
|
||||
mBinding!!.roomTop.rl.visibility = View.VISIBLE
|
||||
ivSoundEffects(true)
|
||||
|
||||
|
||||
} else {
|
||||
if (customMusicFloatingView != null) {
|
||||
customMusicFloatingView!!.destroy()
|
||||
@@ -1740,6 +1737,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
if (mRoomInfoResp!!.user_info.pit_number == 9) {
|
||||
mBinding!!.roomTop.rl.visibility = View.VISIBLE
|
||||
ivSoundEffects(true)
|
||||
setRoleType(3, 9)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1871,10 +1869,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
aBoolean = false
|
||||
ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up)
|
||||
setBoolean(aBoolean)
|
||||
if (mRoomInfoResp!!.user_info != null) {
|
||||
mRoomInfoResp!!.user_info.pit_number =
|
||||
pitNumber?.toInt() ?: -1
|
||||
}
|
||||
mRoomInfoResp?.user_info?.pit_number =
|
||||
pitNumber?.toInt() ?: -1
|
||||
setRoleType(3, pitNumber!!.toInt())
|
||||
switchMic(2)
|
||||
}
|
||||
@@ -1893,21 +1889,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else if ("3" == typeId || "4" == typeId || "1" == typeId || "8" == typeId) {
|
||||
val labelId = mRoomInfoResp!!.room_info.label_id
|
||||
if ("2" == labelId) {
|
||||
// val pitBean = RoomPitBean()
|
||||
// pitBean.pit_number = messageEvent.text.pit_number
|
||||
// pitBean.user_id = messageEvent.text.fromUserInfo.user_id.toString() + ""
|
||||
// pitBean.avatar = messageEvent.text.fromUserInfo.avatar
|
||||
// pitBean.nickname = messageEvent.text.fromUserInfo.nickname
|
||||
// pitBean.sex = messageEvent.text.fromUserInfo.sex.toString() + ""
|
||||
// pitBean.charm = messageEvent.text.fromUserInfo.charm
|
||||
// pitBean.dress = messageEvent.text.fromUserInfo.dress
|
||||
//
|
||||
// if (pitBean.pit_number == "9") {
|
||||
// val roomDefaultWheatView: RoomKtvWheatView = mBinding?.roomTop!!.muZc
|
||||
// roomDefaultWheatView.setData(pitBean)
|
||||
// }
|
||||
|
||||
|
||||
roomFragment!!.KtvFragmentEvent(messageEvent)
|
||||
} else if ("1" == labelId) {
|
||||
mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt() - 1, getPitBean(messageEvent))
|
||||
@@ -1922,12 +1903,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else {
|
||||
roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp)
|
||||
}
|
||||
|
||||
// if (pitNumber.equals("9") && mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId()+"")) {
|
||||
// ivSoundEffects(true);
|
||||
// } else {
|
||||
// ivSoundEffects(false);
|
||||
// }
|
||||
}
|
||||
|
||||
private fun handleMsgType1004(messageEvent: RoomMessageEvent, text: T?) {
|
||||
@@ -1938,14 +1913,11 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
val pitNumber = text.pit_number
|
||||
val userId = fromUserInfo.user_id
|
||||
val currentUserId = SpUtil.getUserId()
|
||||
|
||||
if (userId == currentUserId) {
|
||||
aBoolean = true
|
||||
ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding)
|
||||
setBoolean(aBoolean)
|
||||
if (mRoomInfoResp!!.user_info != null) {
|
||||
mRoomInfoResp!!.user_info.pit_number = 0
|
||||
}
|
||||
mRoomInfoResp?.user_info?.pit_number = 0
|
||||
setRoleType(0, 0)
|
||||
switchMic(2)
|
||||
}
|
||||
@@ -1969,9 +1941,9 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
if ("9" == pitNumber) {
|
||||
if (userId == currentUserId) {
|
||||
mRoomInfoResp!!.room_info.pit_list[0] = getPitBean2(messageEvent, "9")
|
||||
if (mRoomInfoResp!!.user_info != null) {
|
||||
mRoomInfoResp!!.user_info.pit_number = 0
|
||||
}
|
||||
// if (mRoomInfoResp!!.user_info != null) {
|
||||
// mRoomInfoResp!!.user_info.pit_number = 0
|
||||
// }
|
||||
}
|
||||
} else if ("888" == pitNumber) {
|
||||
mRoomInfoResp!!.room_auction = null
|
||||
@@ -1985,17 +1957,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else if ("3" == typeId || "4" == typeId || "1" == typeId || "8" == typeId) {
|
||||
val labelId = mRoomInfoResp!!.room_info.label_id
|
||||
if ("2" == labelId) {
|
||||
// val pitBean = RoomPitBean()
|
||||
// pitBean.pit_number = messageEvent.text.pit_number
|
||||
// pitBean.user_id = ""
|
||||
// pitBean.avatar = ""
|
||||
// pitBean.nickname = ""
|
||||
// pitBean.sex = ""
|
||||
// pitBean.charm = ""
|
||||
// if (pitBean.pit_number == "9") {
|
||||
// val roomDefaultWheatView: RoomKtvWheatView = mBinding?.roomTop!!.muZc
|
||||
// roomDefaultWheatView.setData(pitBean)
|
||||
// }
|
||||
roomFragment!!.KtvFragmentEvent(messageEvent)
|
||||
} else if ("1" == labelId) {
|
||||
mRoomInfoResp!!.room_info.pit_list.set(pitNumber.toInt() - 1, getPitBean2(messageEvent, pitNumber))
|
||||
@@ -2090,10 +2051,125 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
performExitRoom(1);
|
||||
}
|
||||
}
|
||||
private var currentMqttView: View? = null // 正在播放
|
||||
var decorView: ViewGroup? = null //礼物的
|
||||
|
||||
private fun handleMsgType1001() {
|
||||
number++
|
||||
mBinding!!.roomTop.tvNum.text = number.toString() + ""
|
||||
|
||||
private fun handleMsgType1001(roomMessageEvent: RoomMessageEvent) {
|
||||
if (roomMessageEvent.text.fromUserInfo.enter_image?.isNotEmpty() == true){
|
||||
showFloatingMessage(roomMessageEvent.text.fromUserInfo)
|
||||
}
|
||||
// number++
|
||||
// mBinding!!.roomTop.tvNum.text = number.toString() + ""
|
||||
}
|
||||
private fun showFloatingMessage(userInfo: UserInfo) {
|
||||
try {
|
||||
// 清理之前的视图(如果存在)
|
||||
if ( currentMqttView?.getParent() != null) {
|
||||
val parent = currentMqttView?.getParent() as ViewGroup
|
||||
parent.removeView(currentMqttView)
|
||||
}
|
||||
|
||||
if (decorView == null) {
|
||||
decorView = getWindow().getDecorView() as ViewGroup?
|
||||
}
|
||||
|
||||
currentMqttView = LayoutInflater.from(this).inflate(R.layout.item_noble_piaoping, null)
|
||||
val layoutParams = FrameLayout.LayoutParams(
|
||||
FrameLayout.LayoutParams.MATCH_PARENT,
|
||||
FrameLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
layoutParams.topMargin = DisplayUtil.dip2px(this, 300f)
|
||||
layoutParams.gravity = Gravity.TOP or Gravity.CENTER_HORIZONTAL
|
||||
currentMqttView?.setLayoutParams(layoutParams)
|
||||
decorView?.addView(currentMqttView)
|
||||
currentMqttView?.let { updateFloatingViewData(it, userInfo) }
|
||||
|
||||
currentMqttView?.let {
|
||||
resetAndStartMqttAnimation(it, Runnable {
|
||||
// 清理当前视图
|
||||
if (currentMqttView?.getParent() != null) {
|
||||
val parent = currentMqttView?.getParent() as ViewGroup
|
||||
parent.removeView(currentMqttView)
|
||||
}
|
||||
currentMqttView = null
|
||||
|
||||
})
|
||||
}
|
||||
} catch (e: java.lang.Exception) {
|
||||
|
||||
}
|
||||
}
|
||||
private fun resetAndStartMqttAnimation(view: View, onAnimationEnd: Runnable) {
|
||||
try {
|
||||
val screenWidth = getScreenWidth()
|
||||
// 设置初始位置:在屏幕右侧外部(完全不可见)
|
||||
view.setTranslationX(screenWidth.toFloat())
|
||||
|
||||
|
||||
val enterAnim = TranslateAnimation(
|
||||
Animation.ABSOLUTE, screenWidth.toFloat(),
|
||||
Animation.ABSOLUTE, ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(),
|
||||
Animation.ABSOLUTE, 0f,
|
||||
Animation.ABSOLUTE, 0f
|
||||
)
|
||||
enterAnim.setDuration(1500)
|
||||
enterAnim.setInterpolator(DecelerateInterpolator(2.0f))
|
||||
enterAnim.setAnimationListener(object : Animation.AnimationListener {
|
||||
override fun onAnimationStart(animation: Animation?) {
|
||||
}
|
||||
|
||||
override fun onAnimationEnd(animation: Animation?) {
|
||||
// 停留后退出
|
||||
CommonAppContext.postDelayed(Runnable {
|
||||
val exitAnim = TranslateAnimation(
|
||||
Animation.ABSOLUTE, ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(),
|
||||
Animation.ABSOLUTE, -screenWidth.toFloat(),
|
||||
Animation.ABSOLUTE, 0f,
|
||||
Animation.ABSOLUTE, 0f
|
||||
)
|
||||
exitAnim.setDuration(3000)
|
||||
exitAnim.setInterpolator(DecelerateInterpolator(2f))
|
||||
exitAnim.setAnimationListener(object : Animation.AnimationListener {
|
||||
override fun onAnimationStart(animation: Animation?) {
|
||||
}
|
||||
|
||||
override fun onAnimationEnd(animation: Animation?) {
|
||||
// 移除视图并处理下一个
|
||||
onAnimationEnd.run()
|
||||
}
|
||||
|
||||
override fun onAnimationRepeat(animation: Animation?) {
|
||||
}
|
||||
})
|
||||
view.startAnimation(exitAnim)
|
||||
}, 5000) // 停留1秒
|
||||
}
|
||||
|
||||
override fun onAnimationRepeat(animation: Animation?) {
|
||||
}
|
||||
})
|
||||
view.startAnimation(enterAnim)
|
||||
} catch (e: java.lang.Exception) {
|
||||
LogUtils.e("MQTT动画启动失败", e)
|
||||
onAnimationEnd.run()
|
||||
}
|
||||
}
|
||||
private fun getScreenWidth(): Int {
|
||||
val displayMetrics = DisplayMetrics()
|
||||
if (getWindowManager() != null) {
|
||||
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics)
|
||||
return displayMetrics.widthPixels
|
||||
}
|
||||
return getResources().getDisplayMetrics().widthPixels
|
||||
}
|
||||
|
||||
private fun updateFloatingViewData(view: View, userInfo: UserInfo) {
|
||||
val textView = view.findViewById<TextView?>(R.id.tv_name)
|
||||
val im_bj = view.findViewById<ImageView?>(R.id.im_bj)
|
||||
|
||||
textView.text = userInfo.enter_text
|
||||
ImageUtils.loadHeadCC(userInfo.enter_image, im_bj)
|
||||
}
|
||||
|
||||
private fun handleMsgType1002(messageEvent: RoomMessageEvent, text: T?) {
|
||||
@@ -2658,13 +2734,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
// if (mRoomInfoResp!!.room_info.label_id == "1") {
|
||||
// queren()
|
||||
// } else {
|
||||
val fragment = RequestDialogFragment.show(
|
||||
roomId, mRoomInfoResp, 1,
|
||||
supportFragmentManager
|
||||
)
|
||||
if (fragment != null) {
|
||||
addActiveDialogFragment(fragment) // 添加到管理列表
|
||||
}
|
||||
val fragment = RequestDialogFragment.show(
|
||||
roomId, mRoomInfoResp, 1,
|
||||
supportFragmentManager
|
||||
)
|
||||
if (fragment != null) {
|
||||
addActiveDialogFragment(fragment) // 添加到管理列表
|
||||
}
|
||||
// }
|
||||
} else if (id == R.id.rl_gift) { //礼物
|
||||
// RoomGiftDialogFragment.show(mRoomInfoResp, null, roomId, 0, "", getSupportFragmentManager());
|
||||
@@ -2806,7 +2882,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
}
|
||||
if (mRoomInfoResp!!.room_info.label_id != "6") {
|
||||
val activityManager =
|
||||
getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
|
||||
getSystemService(ACTIVITY_SERVICE) as ActivityManager
|
||||
val appProcesses =
|
||||
activityManager.runningAppProcesses ?: return false
|
||||
|
||||
@@ -2871,7 +2947,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
}
|
||||
|
||||
private fun saveMinimizeState() {
|
||||
val prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE)
|
||||
val prefs = getSharedPreferences("room_minimize_state", MODE_PRIVATE)
|
||||
val editor = prefs.edit()
|
||||
editor.putString(PREF_MINIMIZED_ROOM, roomId)
|
||||
editor.putLong(PREF_MINIMIZED_TIME, System.currentTimeMillis())
|
||||
@@ -2880,7 +2956,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
}
|
||||
|
||||
private fun clearMinimizeState() {
|
||||
val prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE)
|
||||
val prefs = getSharedPreferences("room_minimize_state", MODE_PRIVATE)
|
||||
val editor = prefs.edit()
|
||||
editor.remove(PREF_MINIMIZED_ROOM)
|
||||
editor.remove(PREF_MINIMIZED_TIME)
|
||||
@@ -2889,7 +2965,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
}
|
||||
|
||||
private fun wasMinimized(): Boolean {
|
||||
val prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE)
|
||||
val prefs = getSharedPreferences("room_minimize_state", MODE_PRIVATE)
|
||||
return prefs.getBoolean("is_minimized", false)
|
||||
}
|
||||
|
||||
@@ -3014,7 +3090,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
|
||||
val typeId = mRoomInfoResp!!.room_info.type_id
|
||||
val labelId = mRoomInfoResp!!.room_info.label_id
|
||||
val userPitNumber = mRoomInfoResp!!.user_info.pit_number
|
||||
val userPitNumber = mRoomInfoResp?.user_info?.pit_number!!
|
||||
|
||||
// 情况1: typeId = 6 时,只显示消息按钮
|
||||
if ("6" == typeId) {
|
||||
@@ -3078,14 +3154,17 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
switchMic(2) // 关闭麦克风
|
||||
}
|
||||
}
|
||||
|
||||
pit_number == 888 -> {
|
||||
rl_mic?.visibility = View.VISIBLE
|
||||
switchMic(2) // 关闭麦克风
|
||||
}
|
||||
|
||||
pit_number == -1 -> {
|
||||
rl_mic?.visibility = View.VISIBLE
|
||||
switchMic(1) // 打开麦克风
|
||||
}
|
||||
|
||||
else -> {
|
||||
rl_mic?.visibility = View.GONE
|
||||
switchMic(2) // 关闭麦克风
|
||||
@@ -3102,7 +3181,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
if ("1" != typeId) {
|
||||
rl_more?.visibility = View.GONE
|
||||
}
|
||||
if ("1"==typeId && "2" == labelId){
|
||||
if ("1" == typeId && "2" == labelId) {
|
||||
rl_misc?.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
@@ -3215,7 +3294,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
dialog.setOnShowListener {
|
||||
etContent.requestFocus()
|
||||
val imm =
|
||||
OkDownloadProvider.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||
OkDownloadProvider.context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
|
||||
imm.showSoftInput(etContent, InputMethodManager.SHOW_IMPLICIT)
|
||||
}
|
||||
if (inputSting != null) {
|
||||
@@ -3468,8 +3547,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
ivSoundEffects(false)
|
||||
}
|
||||
// }
|
||||
if (mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId()
|
||||
.toString() + "" && mRoomInfoResp!!.user_info.pit_number == 9 && mRoomInfoResp!!.room_info.type_id == "1" && mRoomInfoResp!!.room_info.label_id != "1"
|
||||
if (mRoomInfoResp?.user_info?.user_id == SpUtil.getUserId()
|
||||
.toString() + "" && mRoomInfoResp?.user_info?.pit_number == 9 && mRoomInfoResp?.room_info?.type_id == "1" && mRoomInfoResp?.room_info?.label_id != "1"
|
||||
) {
|
||||
rlMore(true)
|
||||
} else {
|
||||
@@ -4144,6 +4223,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
GiftDisplayManager.getInstance().clearAll()
|
||||
mBinding!!.giftContainer.removeAllViews()
|
||||
CommonAppContext.getInstance().isMai = false
|
||||
CommonAppContext.getInstance().playId = null
|
||||
// 确保父类的 onDestroy 被调用
|
||||
super.finish()
|
||||
}
|
||||
@@ -4415,7 +4495,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
* @return 服务是否正在运行
|
||||
*/
|
||||
private fun isServiceExisted(context: Context, serviceName: String): Boolean {
|
||||
val manager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
|
||||
val manager = context.getSystemService(ACTIVITY_SERVICE) as ActivityManager
|
||||
if (manager != null) {
|
||||
val runningServices = manager.getRunningServices(Int.MAX_VALUE)
|
||||
for (serviceInfo in runningServices) {
|
||||
|
||||
@@ -40,17 +40,16 @@ import com.xscm.moduleutil.bean.GiftBean;
|
||||
import com.xscm.moduleutil.bean.RoomMessageEvent;
|
||||
import com.xscm.moduleutil.bean.UserInfo;
|
||||
import com.xscm.moduleutil.bean.room.EMMessageInfo;
|
||||
import com.xscm.moduleutil.bean.room.EmotionDeatils;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.MeHeadView;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
import com.xscm.moduleutil.widget.AdaptiveImageView;
|
||||
import com.xscm.moduleutil.widget.GifAvatarOvalView;
|
||||
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
/**
|
||||
@@ -215,9 +214,11 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
|
||||
emojiImageView.setVisibility(View.VISIBLE);
|
||||
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.GONE);
|
||||
|
||||
|
||||
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
|
||||
MeHeadView avatar = helper.getView(com.xscm.moduleutil.R.id.avatar);
|
||||
avatar.setData(emMessage.getText().getFromUserInfo().getAvatar(), "", emMessage.getText().getFromUserInfo().getNobility_image());
|
||||
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
|
||||
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
|
||||
helper.setTextColor(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname_color()!=null && !emMessage.getText().getFromUserInfo().getNickname_color().isEmpty()? Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()):Color.parseColor("#CCA882"));
|
||||
if (emMessage.getText().getText() != null) {
|
||||
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
|
||||
}
|
||||
@@ -275,10 +276,16 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
|
||||
// 为每个加载任务设置唯一标识
|
||||
String uniqueId = emMessage.getRoomId() + "_" + helper.getLayoutPosition();
|
||||
emojiImageView.setTag(uniqueId);
|
||||
//这段代码使用 Optional 链式调用安全地获取 emMessage 中的 animate_image 字段,避免空指针异常。如果任意环节为 null,则返回空字符串。
|
||||
String animateImage = Optional.ofNullable(emMessage)
|
||||
.map(RoomMessageEvent::getText)
|
||||
.map(RoomMessageEvent.T::getEmoji)
|
||||
.map(EmotionDeatils::getAnimate_image)
|
||||
.orElse("");
|
||||
|
||||
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") ||
|
||||
emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
|
||||
|
||||
// if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") ||
|
||||
// emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
|
||||
if (!animateImage.isEmpty()){
|
||||
// 检查视图是否仍属于当前数据项
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), emojiImageView);
|
||||
@@ -286,35 +293,42 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
|
||||
return;
|
||||
}
|
||||
|
||||
// 使用 RequestListener 监听加载完成
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getAnimate_image())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
|
||||
DataSource dataSource, boolean isFirstResource) {
|
||||
// 检查视图是否仍属于当前数据项
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
// 加载完成后执行
|
||||
new Handler().postDelayed(() -> {
|
||||
// 再次检查视图状态
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getImage())
|
||||
.into(emojiImageView);
|
||||
}
|
||||
}, 1500);
|
||||
if (!emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
|
||||
// 使用 RequestListener 监听加载完成
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getAnimate_image())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
|
||||
DataSource dataSource, boolean isFirstResource) {
|
||||
// 检查视图是否仍属于当前数据项
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
// 加载完成后执行
|
||||
new Handler().postDelayed(() -> {
|
||||
// 再次检查视图状态
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getImage())
|
||||
.into(emojiImageView);
|
||||
}
|
||||
}, 1500);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,
|
||||
boolean isFirstResource) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.into(emojiImageView);
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,
|
||||
boolean isFirstResource) {
|
||||
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.into(emojiImageView);
|
||||
}else {
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getImage())
|
||||
.into(emojiImageView);
|
||||
}
|
||||
} else {
|
||||
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
|
||||
emojiImageView.setVisibility(View.GONE);
|
||||
@@ -579,7 +593,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
|
||||
GifAvatarOvalView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
|
||||
MeHeadView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
|
||||
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);
|
||||
ImageView ivCharm = holder.getView(com.xscm.moduleutil.R.id.iv_charm);
|
||||
|
||||
@@ -598,7 +612,6 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
|
||||
|
||||
// 清理其他图片
|
||||
if (avatarOvalView != null) {
|
||||
avatarOvalView.setImageDrawable(null);
|
||||
Glide.with(avatarOvalView.getContext()).clear(avatarOvalView);
|
||||
}
|
||||
if (ivNobility != null) {
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package com.example.moduleroom.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.moduleroom.R;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.xscm.moduleutil.bean.room.EmotionDeatils;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
|
||||
public class EmotionAdapter extends BaseQuickAdapter<EmotionDeatils, BaseViewHolder> {
|
||||
// 转换后的 Java 代码
|
||||
private OnEmotionClickListener onEmotionClickListener;
|
||||
@@ -28,9 +32,17 @@ public class EmotionAdapter extends BaseQuickAdapter<EmotionDeatils, BaseViewHol
|
||||
protected void convert(BaseViewHolder helper, EmotionDeatils item) {
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_emotion));
|
||||
helper.setText(R.id.tv_emotion_name, item.getName());
|
||||
|
||||
if (item.is_lock()==0){
|
||||
helper.setVisible(R.id.iv_select,false);
|
||||
}else {
|
||||
helper.setVisible(R.id.iv_select,true);
|
||||
}
|
||||
// 设置点击事件
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
if (item.is_lock()==1){
|
||||
ToastUtils.show("当前属于爵位专属,请先开通爵位");
|
||||
return;
|
||||
}
|
||||
if (onEmotionClickListener != null) {
|
||||
onEmotionClickListener.onEmotionClick(item);
|
||||
}
|
||||
|
||||
@@ -362,7 +362,6 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
// 点击“取消”按钮时什么都不做
|
||||
}, false, 0).show();
|
||||
}
|
||||
|
||||
private void upAdapter() {
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import static android.view.View.VISIBLE;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -399,9 +400,16 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
// userInfo.setAuction_id(isNum+"");
|
||||
// }
|
||||
// ImageUtils.loadHeadCC(userInfo.getAvatar(), mBinding.ivAvatar);
|
||||
mBinding.ivAvatar.setData(userInfo.getAvatar(), "", userInfo.getSex() + "");
|
||||
mBinding.ivAvatar.setData(userInfo.getAvatar(), "", userInfo.getNobility_image() + "");
|
||||
// mBinding.tvName.setText(userInfo.getNickname());
|
||||
|
||||
String sex = userInfo.getSex()==1?"男":"女";
|
||||
mBinding.tvId.setText(sex+" | ID:"+userInfo.getUser_code());
|
||||
mBinding.tvName.setText(userInfo.getNickname());
|
||||
mBinding.tvId.setText("ID:" + userInfo.getUser_code());
|
||||
mBinding.tvName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))? Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333"));
|
||||
|
||||
|
||||
// mBinding.tvId.setText( "ID:" + userInfo.getUser_code());
|
||||
if (userInfo.getIs_in_pit() == 1) {
|
||||
mBinding.roomMCz.setText("下麦");
|
||||
} else {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1349,6 +1349,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
pitBean.setSex(message.getText().getFromUserInfo().getSex() + "");
|
||||
pitBean.setCharm(message.getText().getFromUserInfo().getCharm());
|
||||
pitBean.setDress(message.getText().getFromUserInfo().getDress());
|
||||
pitBean.setMic_cycle(message.getText().getFromUserInfo().getMic_cycle()!=null?message.getText().getFromUserInfo().getMic_cycle():"");
|
||||
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
|
||||
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
|
||||
// if (pitBean.getPit_number().equals("9")){
|
||||
@@ -1392,6 +1393,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
pitBean.setSex("");
|
||||
pitBean.setCharm("");
|
||||
pitBean.setDress("");
|
||||
pitBean.setMic_cycle("");
|
||||
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
|
||||
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
|
||||
// if (pitBean.getPit_number().equals("9")){
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
android:layout_height="@dimen/dp_320"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:layout_marginEnd="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_3"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintTop_toBottomOf="@+id/bt_sta">
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginEnd="@dimen/dp_4"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:background="@mipmap/pk_left"
|
||||
@@ -119,6 +118,7 @@
|
||||
android:id="@+id/cl_right"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginStart="@dimen/dp_3"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/cl_left"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="@dimen/dp_60"
|
||||
android:layout_height="@dimen/dp_85"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:padding="8dp">
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_emotion"
|
||||
@@ -15,6 +15,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
@@ -31,4 +32,14 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_emotion" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="invisible"
|
||||
android:src="@mipmap/noble_is_lock"
|
||||
android:scaleType="fitCenter"
|
||||
android:id="@+id/iv_select"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
34
moduleroom/src/main/res/layout/item_noble_piaoping.xml
Normal file
34
moduleroom/src/main/res/layout/item_noble_piaoping.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/dp_208"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/im_bj"
|
||||
android:layout_width="@dimen/dp_208"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"
|
||||
tools:src="@mipmap/gift_p_b"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="70dp"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:ellipsize="start"
|
||||
android:maxLines="1"
|
||||
tools:text="礼品"
|
||||
android:textColor="#fff"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/im_bj"
|
||||
app:layout_constraintStart_toStartOf="@+id/im_bj"
|
||||
app:layout_constraintTop_toTopOf="@+id/im_bj"/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -108,7 +108,8 @@
|
||||
android:gravity="center"
|
||||
android:text="0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:visibility="gone"/>
|
||||
|
||||
|
||||
<ImageView
|
||||
|
||||
Reference in New Issue
Block a user