关系系统顶部弹窗 关系绑定解绑自动刷新
This commit is contained in:
@@ -4,9 +4,11 @@ import android.app.Activity;
|
||||
|
||||
import com.tencent.bugly.beta.Beta;
|
||||
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
|
||||
import com.yizhuan.erban.relation.cp.dialog.CpGlobalDialog;
|
||||
import com.yizhuan.erban.ui.widget.lottery_dialog.LotteryDialogManager;
|
||||
import com.yizhuan.erban.vip.VipUpgradeDialog;
|
||||
import com.yizhuan.xchat_android_core.activity.bean.LotteryInfo;
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo;
|
||||
import com.yizhuan.xchat_android_core.upgrade.event.ImPushUpdateAppEvent;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
|
||||
@@ -73,6 +75,13 @@ public class GlobalHandleManager {
|
||||
VipUpgradeDialog.newInstance(vipUpgradeEvent.getVipInfo()).show(activity);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onCpInviteEvent(CpInviteInfo entity) {
|
||||
Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
CpGlobalDialog.newInstance(entity, activity).openDialog();
|
||||
}
|
||||
|
||||
private static final class Helper {
|
||||
private static final GlobalHandleManager INSTANCE = new GlobalHandleManager();
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ object CpViewHelper {
|
||||
|
||||
fun setInviteTimeRemain(time: String, tv: TextView) {
|
||||
val s = "请在${time}内决定,过期自动失效!"
|
||||
tv.text = getColorSpan(s, Color.RED, 2, time.length + 2)
|
||||
tv.text = getColorSpan(s, Color.parseColor("#FB466A"), 2, time.length + 2)
|
||||
}
|
||||
|
||||
fun getColorSpan(text: String, @ColorInt color: Int, start: Int, end: Int) =
|
||||
|
@@ -9,12 +9,12 @@ import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseBindingActivity
|
||||
import com.yizhuan.erban.base.TitleBar
|
||||
import com.yizhuan.erban.databinding.ActivityCpHomeBinding
|
||||
import com.yizhuan.erban.relation.cp.event.CpBindUnbindEvent
|
||||
import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel
|
||||
import com.yizhuan.erban.relation.cp.widget.RelationCpCardView.Companion.PAGE_TYPE_SELF_CP
|
||||
import com.yizhuan.erban.ui.relation.FansListActivity
|
||||
import com.yizhuan.erban.ui.user.UserInfoActivity
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpBindUnbindEvent
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
@@ -23,6 +23,7 @@ import org.greenrobot.eventbus.ThreadMode
|
||||
@ActLayoutRes(R.layout.activity_cp_home)
|
||||
class CpHomeActivity : BaseBindingActivity<ActivityCpHomeBinding>() {
|
||||
private val mUserId = AuthModel.get().currentUid
|
||||
private var hasAddedTitle = false
|
||||
private val vm: CpViewModel by viewModels()
|
||||
override fun init() {
|
||||
initTitleBar("亲密关系")
|
||||
@@ -76,6 +77,8 @@ class CpHomeActivity : BaseBindingActivity<ActivityCpHomeBinding>() {
|
||||
}
|
||||
|
||||
private fun initRightTitle() {
|
||||
if (hasAddedTitle) return
|
||||
hasAddedTitle = true
|
||||
mTitleBar.addAction(object : TitleBar.TextAction(
|
||||
"关系任务", Color.parseColor("#4C5AF1")
|
||||
) {
|
||||
|
@@ -12,10 +12,15 @@ import com.yizhuan.erban.databinding.ActivityCpInviteRecordBinding
|
||||
import com.yizhuan.erban.relation.cp.CpViewHelper
|
||||
import com.yizhuan.erban.relation.cp.adapter.InviteRecordAdapter
|
||||
import com.yizhuan.erban.relation.cp.dialog.CpInviteReplyConfirmDialog
|
||||
import com.yizhuan.erban.relation.cp.dialog.CpInviteReplyDialog
|
||||
import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel
|
||||
import com.yizhuan.erban.ui.widget.dialog.CommonTipDialog
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpBindUnbindEvent
|
||||
import com.yizhuan.xchat_android_core.relation.cp.UserCpListEntity
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
@ActLayoutRes(R.layout.activity_cp_invite_record)
|
||||
class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding>() {
|
||||
@@ -25,9 +30,13 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
|
||||
private val confirmDialog: CpInviteReplyConfirmDialog by lazy {
|
||||
CpInviteReplyConfirmDialog(this)
|
||||
}
|
||||
private val replyDialog: CpInviteReplyDialog by lazy {
|
||||
CpInviteReplyDialog(this)
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
initTitleBar("关系申请")
|
||||
EventBus.getDefault().register(this)
|
||||
|
||||
adapter = InviteRecordAdapter(this)
|
||||
adapter.onVisitClickListener = object : InviteRecordAdapter.OnVisitClickListener {
|
||||
@@ -69,9 +78,26 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
|
||||
}
|
||||
|
||||
private fun onItemClick(item: UserCpListEntity) {
|
||||
replyDialog.cpInviteData = item
|
||||
if (replyDialog.listener == null) {
|
||||
replyDialog.listener = object : CpInviteReplyDialog.ReplyListener {
|
||||
override fun onAgree() {
|
||||
showConfirmDialog(item, true)
|
||||
}
|
||||
|
||||
override fun onRefuse() {
|
||||
showConfirmDialog(item, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (replyDialog.isShowing) replyDialog.closeDialog()
|
||||
replyDialog.openDialog()
|
||||
}
|
||||
|
||||
private fun showConfirmDialog(item: UserCpListEntity, isAgree: Boolean) {
|
||||
confirmDialog.setDialogTitle(
|
||||
CpViewHelper.getColorSpan(
|
||||
"是否同意与${item.inviteUserNick}成为CP?",
|
||||
"是否${if (isAgree) "同意" else "拒绝"}与${item.inviteUserNick}成为CP?",
|
||||
Color.parseColor("#4C5AF1"),
|
||||
5, item.inviteUserNick.length
|
||||
)
|
||||
@@ -79,15 +105,21 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
|
||||
if (confirmDialog.okCancelListener == null) {
|
||||
confirmDialog.okCancelListener = object : CommonTipDialog.OnActionListener {
|
||||
override fun onOk() {
|
||||
vm.replyInvite(item.id, 2)
|
||||
}
|
||||
|
||||
override fun onCancel() {
|
||||
vm.replyInvite(item.id, 3)
|
||||
vm.replyInvite(item.id, if (isAgree) 2 else 3)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (confirmDialog.isShowing) confirmDialog.closeDialog()
|
||||
confirmDialog.openDialog()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onBindUnbindEvent(event: CpBindUnbindEvent) {
|
||||
queryRecord(type)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
}
|
@@ -6,7 +6,10 @@ import android.view.View
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.databinding.DialogCpGlobalBinding
|
||||
import com.yizhuan.erban.relation.cp.activity.CpInviteRecordActivity
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import io.reactivex.*
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
@@ -19,6 +22,7 @@ import java.util.concurrent.TimeUnit
|
||||
class CpGlobalDialog(context: Context) :
|
||||
View.OnClickListener,
|
||||
BaseBindingDialog<DialogCpGlobalBinding>(context) {
|
||||
private var entity: CpInviteInfo? = null
|
||||
private val disposeSet: CompositeDisposable by lazy {
|
||||
CompositeDisposable()
|
||||
}
|
||||
@@ -32,6 +36,11 @@ class CpGlobalDialog(context: Context) :
|
||||
binding.ivClose.setOnClickListener(this)
|
||||
binding.tvVisit.setOnClickListener(this)
|
||||
setCancelable(false)
|
||||
|
||||
entity?.let {
|
||||
ImageLoadUtilsV2.loadAvatar(binding.ivAvatar,entity?.inviteAvatar)
|
||||
binding.tvNick.text=it.inviteNick
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
@@ -40,7 +49,7 @@ class CpGlobalDialog(context: Context) :
|
||||
closeDialog()
|
||||
}
|
||||
R.id.tv_visit -> {
|
||||
|
||||
CpInviteRecordActivity.start(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,4 +85,12 @@ class CpGlobalDialog(context: Context) :
|
||||
disposeSet.dispose()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(entity: CpInviteInfo, context: Context): CpGlobalDialog =
|
||||
CpGlobalDialog(context).apply {
|
||||
this.entity = entity
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +0,0 @@
|
||||
package com.yizhuan.erban.relation.cp.event;
|
||||
|
||||
public class BalanceEvent {
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
package com.yizhuan.erban.relation.cp.event;
|
||||
|
||||
public class CpBindUnbindEvent {
|
||||
|
||||
}
|
@@ -3,8 +3,6 @@ package com.yizhuan.erban.relation.cp.viewmodel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yizhuan.erban.base.BaseViewModel
|
||||
import com.yizhuan.erban.relation.cp.event.BalanceEvent
|
||||
import com.yizhuan.erban.relation.cp.event.CpBindUnbindEvent
|
||||
import com.yizhuan.erban.relation.cp.model.CpModel
|
||||
import com.yizhuan.xchat_android_core.relation.cp.*
|
||||
import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption
|
||||
@@ -154,6 +152,9 @@ class CpViewModel : BaseViewModel() {
|
||||
_loadingLiveData.value = true
|
||||
safeLaunch(
|
||||
onError = dealCpDataError,
|
||||
onComplete={
|
||||
EventBus.getDefault().post(CpBindUnbindEvent())
|
||||
},
|
||||
block = {
|
||||
CpModel.replyCpInvite(id, state)
|
||||
_loadingLiveData.value = false
|
||||
|
@@ -3,9 +3,11 @@ package com.yizhuan.erban.relation.cp.widget
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.util.AttributeSet
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.databinding.LayoutCpCardBinding
|
||||
import com.yizhuan.erban.relation.extention.visibility
|
||||
@@ -22,7 +24,7 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) :
|
||||
|
||||
init {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
binding = DataBindingUtil.inflate(inflater, R.layout.layout_cp_card, this, true)
|
||||
binding = DataBindingUtil.inflate(inflater, R.layout.layout_cp_card, this, false)
|
||||
}
|
||||
|
||||
private fun setPageData(
|
||||
@@ -40,6 +42,7 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) :
|
||||
binding.cpEntity = cpRelation
|
||||
setBackground(type, cpRelation)
|
||||
inviteData?.let { binding.inviteData = it }
|
||||
var height = 0
|
||||
when (type) {
|
||||
PAGE_TYPE_SELF_CP -> {
|
||||
if (cpRelation == null) throw Exception("type:PAGE_TYPE_SELF_CP,cpRelation: CpRelation cant be null!!!")
|
||||
@@ -47,17 +50,20 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) :
|
||||
cpLevelVisibility = cpRelation.waitUnbound
|
||||
binding.tvCpTime.setTextColor(context.resources.getColor(R.color.white))
|
||||
unbindRecoverVisibility = cpRelation.waitUnbound
|
||||
unbindVisibility = (cpRelation.unboundUid == selfUId) && !cpRelation.waitUnbound
|
||||
unbindVisibility =
|
||||
(cpRelation.uid == selfUId) && cpRelation.cpUid != 0L && !cpRelation.waitUnbound
|
||||
if (unbindRecoverVisibility && cpRelation.uid != selfUId) {
|
||||
binding.tvRecoveryUnbind.text = "关系解绑中"
|
||||
binding.tvRecoveryUnbind.isEnabled = false
|
||||
}
|
||||
height = ScreenUtil.dip2px(180f)
|
||||
}
|
||||
PAGE_TYPE_SELF_INFO -> {
|
||||
if (cpRelation == null) throw Exception("type:PAGE_TYPE_SELF_INFO,cpRelation: CpRelation cant be null!!!")
|
||||
userInfoVisibility = true
|
||||
cpLevelVisibility = cpRelation.cpUid != 0.toLong()
|
||||
binding.tvCpTime.setTextColor(Color.parseColor("#917FFF"))
|
||||
height = LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
PAGE_TYPE_CUS_INFO -> {
|
||||
if (cpRelation == null) throw Exception("type:PAGE_TYPE_CUS_INFO,cpRelation: CpRelation cant be null!!!")
|
||||
@@ -66,9 +72,11 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) :
|
||||
binding.tvCpTime.setTextColor(Color.parseColor("#917FFF"))
|
||||
groupEmptyVisibility = cpRelation.cpUid == 0.toLong()
|
||||
declarationVisibility = cpRelation.cpUid != 0.toLong()
|
||||
height = LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
PAGE_TYPE_INVITE_DIALOG -> {
|
||||
userInfoVisibility = true
|
||||
height = ScreenUtil.dip2px(80f)
|
||||
}
|
||||
}
|
||||
val centerHeartVisibility = userInfoVisibility
|
||||
@@ -88,6 +96,10 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) :
|
||||
binding.ivInvite.visibility = groupEmptyVisibility.visibility()
|
||||
binding.tvDeclaration.visibility = declarationVisibility.visibility()
|
||||
binding.ivUnbind.visibility = unbindVisibility.visibility()
|
||||
|
||||
val params = LayoutParams(LayoutParams.MATCH_PARENT, height)
|
||||
params.gravity = Gravity.CENTER
|
||||
addView(binding.root, params)
|
||||
binding.cpEntity = cpRelation
|
||||
|
||||
}
|
||||
|
@@ -285,6 +285,9 @@ public class RouterHandler {
|
||||
break;
|
||||
case RouterType.CP_INVITE:
|
||||
CpInviteRecordActivity.Companion.start(context);
|
||||
break;
|
||||
case RouterType.CP_HEAD_WARE:
|
||||
|
||||
break;
|
||||
case RouterType.CP_TASK:
|
||||
CpTaskActivity.Companion.start(context);
|
||||
|
20
app/src/main/res/drawable/bg_cp_task_progress_bar.xml
Normal file
20
app/src/main/res/drawable/bg_cp_task_progress_bar.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- 定义轨道的背景 -->
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/white_transparent_30"/>
|
||||
<corners android:radius="@dimen/dp_6" />
|
||||
<stroke android:width="1px" android:color="@color/white"/>
|
||||
</shape>
|
||||
</item>
|
||||
<!-- 定义轨道上已完成部分的样式 -->
|
||||
<item android:id="@android:id/progress">
|
||||
<clip>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/white"/>
|
||||
<corners android:radius="@dimen/dp_6" />
|
||||
</shape>
|
||||
</clip>
|
||||
</item>
|
||||
</layer-list>
|
@@ -16,8 +16,8 @@
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginBottom="@dimen/dp_16"
|
||||
android:fillViewport="true"
|
||||
android:paddingLeft="@dimen/dp_15"
|
||||
android:paddingTop="@dimen/dp_8"
|
||||
@@ -31,11 +31,12 @@
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/layout_task_progress"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/layout_task_progress"
|
||||
android:background="@drawable/bg_white_cornor_8"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
|
||||
android:id="@+id/indicator"
|
||||
android:layout_width="match_parent"
|
||||
@@ -50,6 +51,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/indicator" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_cp_level_label"
|
||||
android:layout_width="match_parent"
|
||||
@@ -72,5 +74,70 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_cp_level_label" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="76dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:background="@drawable/bg_cp_task_label_selected"
|
||||
>
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="vertical"
|
||||
android:layoutDirection="ltr"
|
||||
app:layout_constraintGuide_begin="95dp"
|
||||
android:id="@+id/guide_line"
|
||||
/>
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:id="@+id/iv_accept"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/guide_line"
|
||||
/>
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:id="@+id/iv_invite"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/iv_accept"
|
||||
android:layout_marginRight="@dimen/dp_33"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tv_level"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintLeft_toRightOf="@id/guide_line"
|
||||
android:layout_marginLeft="@dimen/dp_4"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/progress_bar"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
/>
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="0dp"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_height="12dp"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_marginLeft="@dimen/dp_4"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_level"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:progress="20"
|
||||
android:progressDrawable="@drawable/bg_cp_task_progress_bar"
|
||||
app:layout_constraintLeft_toRightOf="@id/guide_line"
|
||||
android:layout_marginRight="@dimen/dp_8"
|
||||
android:max="100"
|
||||
android:id="@+id/progress_bar"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
@@ -11,20 +11,22 @@
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="291dp"
|
||||
android:layout_height="450dp">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="@dimen/dp_30"
|
||||
android:layout_height="@dimen/dp_30"
|
||||
android:layout_marginEnd="@dimen/dp_35"
|
||||
android:src="@drawable/ic_invite_dialog_close"
|
||||
android:onClick="@{click}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="@dimen/dp_20"
|
||||
android:layout_marginTop="1dp"
|
||||
android:background="@drawable/bg_dialog_cp_invite_replay"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
@@ -12,6 +12,8 @@
|
||||
android:layout_height="300dp"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:paddingLeft="@dimen/dp_6"
|
||||
android:paddingRight="@dimen/dp_6"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@{inviteData==null?@dimen/cp_card_normal:@dimen/cp_card_dialog,default=@dimen/cp_card_normal}"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="@dimen/dp_4"
|
||||
android:paddingTop="@dimen/dp_5"
|
||||
android:paddingRight="@dimen/dp_4"
|
||||
@@ -42,7 +42,6 @@
|
||||
app:civ_border_color="@color/white"
|
||||
app:civ_border_width="1dp"
|
||||
app:layout_constrainedHeight="true"
|
||||
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_mine_name"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_mine_name"
|
||||
app:layout_constraintRight_toRightOf="@id/tv_mine_name"
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package com.yizhuan.xchat_android_core.im.custom.bean;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.gson.Gson;
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo;
|
||||
|
||||
public class CpInviteAttachment extends CustomAttachment {
|
||||
|
||||
@@ -9,6 +11,7 @@ public class CpInviteAttachment extends CustomAttachment {
|
||||
public String routerValue;
|
||||
public String title;
|
||||
public int mSecond;
|
||||
private CpInviteInfo entity;
|
||||
|
||||
public CpInviteAttachment(int second) {
|
||||
super(CustomAttachment.CP_INVITE_MESSAGE, second);
|
||||
@@ -16,7 +19,6 @@ public class CpInviteAttachment extends CustomAttachment {
|
||||
|
||||
@Override
|
||||
protected void parseData(JSONObject data) {
|
||||
super.parseData(data);
|
||||
super.parseData(data);
|
||||
if (data != null) {
|
||||
if (data.containsKey("msg")) {
|
||||
@@ -25,8 +27,8 @@ public class CpInviteAttachment extends CustomAttachment {
|
||||
if (data.containsKey("routerType")) {
|
||||
routerType = data.getInteger("routerType");
|
||||
}
|
||||
if (data.containsKey("propInfo")) {
|
||||
routerValue = data.getString("propInfo");
|
||||
if (data.containsKey("popInfo")) {
|
||||
entity = new Gson().fromJson(routerValue, CpInviteInfo.class);
|
||||
}
|
||||
if (data.containsKey("title")) {
|
||||
title = data.getString("title");
|
||||
@@ -34,6 +36,9 @@ public class CpInviteAttachment extends CustomAttachment {
|
||||
}
|
||||
}
|
||||
|
||||
public CpInviteInfo getEntity() {
|
||||
return entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JSONObject packData() {
|
||||
|
@@ -24,6 +24,7 @@ import com.yizhuan.xchat_android_core.miniworld.bean.MWChatTopicAttachment;
|
||||
import com.yizhuan.xchat_android_core.miniworld.bean.OpenAudioPartyAttachment;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitFriendsAttachment;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitMeAttachment;
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo;
|
||||
import com.yizhuan.xchat_android_core.room.bean.LeaveModeAttachment;
|
||||
import com.yizhuan.xchat_android_core.room.pk.attachment.RoomPkAttachment;
|
||||
import com.yizhuan.xchat_android_core.room.queuing_mic.attachment.QueuingMicAttachment;
|
||||
@@ -109,6 +110,8 @@ import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUS
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_NOTI_SUB_GAME_ATTACK;
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_NOTI_SUB_GAME_RESULT;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
/**
|
||||
* 云信自定义消息解析器
|
||||
*
|
||||
|
@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_core.manager;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.netease.nimlib.sdk.InvocationFuture;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.Observer;
|
||||
@@ -19,6 +20,7 @@ import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.RecentContact;
|
||||
import com.yizhuan.xchat_android_core.activity.event.ActivityEvent;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.CpInviteAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.LevelUpAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.LotteryAttachment;
|
||||
@@ -31,6 +33,7 @@ import com.yizhuan.xchat_android_core.luckymoney.LuckyMoneyInfo;
|
||||
import com.yizhuan.xchat_android_core.manager.event.HallInfoChangeEvent;
|
||||
import com.yizhuan.xchat_android_core.newbie.NewbieHelloInfo;
|
||||
import com.yizhuan.xchat_android_core.newbie.event.NewbieHelloDialogEvent;
|
||||
import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo;
|
||||
import com.yizhuan.xchat_android_core.web.event.WebViewRefreshEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@@ -41,6 +44,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CP_INVITE_MESSAGE;
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_LOTTERY;
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_PACKET;
|
||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LEVEL_UP;
|
||||
@@ -165,7 +169,10 @@ public class IMMessageManager {
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CP_INVITE_MESSAGE:
|
||||
CpInviteInfo cpInviteInfo = ((CpInviteAttachment) attachment).getEntity();
|
||||
EventBus.getDefault().post(cpInviteInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,4 @@
|
||||
package com.yizhuan.xchat_android_core.relation.cp;
|
||||
|
||||
public class CpBindUnbindEvent {
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
package com.yizhuan.xchat_android_core.relation.cp
|
||||
|
||||
data class CpInviteMessageEntity(
|
||||
data class CpInviteInfo(
|
||||
val replyExpireTime: String,
|
||||
val inviteUid: Long,
|
||||
val inviteAvatar: String,
|
Reference in New Issue
Block a user