diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java index d108cfb50..1e0979f89 100644 --- a/app/src/main/java/com/yizhuan/erban/MainActivity.java +++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java @@ -130,6 +130,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.AssistantAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CarAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CarveUpGoldThirdLevelAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.ChatHintAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.CpInviteAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingFamilyAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingMiniWorldAttachment; @@ -414,6 +415,8 @@ public class MainActivity extends BaseMvpActivity NimUIKit.registerMsgItemViewHolder(ChatHintAttachment.class, MsgViewHolderChatHint.class); NimUIKit.registerMsgItemViewHolder(MatchAttachment.class, MsgViewHolderMatch.class); + //CP + NimUIKit.registerMsgItemViewHolder(CpInviteAttachment.class, MsgViewHolderText.class); NimUIKit.setSessionListener(listener); NimUIKit.setContactEventListener(listener1); } diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpHomeActivity.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpHomeActivity.kt index 6ddf94985..8df2fc5a2 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpHomeActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpHomeActivity.kt @@ -9,13 +9,16 @@ 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.CpDataManager +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_library.annatation.ActLayoutRes +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode @ActLayoutRes(R.layout.activity_cp_home) class CpHomeActivity : BaseBindingActivity() { @@ -40,23 +43,35 @@ class CpHomeActivity : BaseBindingActivity() { toUserInfoActivity(vm.cpRelation.value?.cpUid) } } - R.id.tv_recovery_unbind -> vm.revertUnbindCp() + R.id.tv_recovery_unbind -> { + dialogManager.showOkCancelWithTitleDialog( + resources.getString(R.string.cp_revert_tip) + ) { + vm.revertUnbindCp() + } + } + R.id.iv_unbind -> { + dialogManager.showOkCancelWithTitleDialog( + resources.getString(R.string.cp_unbind_tip) + ) { + vm.unBindCp() + } + } } } private fun initObserver() { + EventBus.getDefault().register(this) vm.loadingLiveData.observe(this) { if (it) dialogManager.showProgressDialog(this) else dialogManager.dismissDialog() } vm.cpRelation.observe(this) { - CpDataManager.get().cpRelation = it mBinding.cpCardView.setCpEntityData(mUserId, PAGE_TYPE_SELF_CP, it) if (it.cpUid != 0L) { - //initRightTitle() + initRightTitle() } - initRightTitle() } } @@ -82,8 +97,13 @@ class CpHomeActivity : BaseBindingActivity() { } } + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRelationChange(event: CpBindUnbindEvent) { + vm.getCpRelation(mUserId) + } + override fun onDestroy() { super.onDestroy() - CpDataManager.get().clear() + EventBus.getDefault().unregister(this) } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpTaskActivity.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpTaskActivity.kt index 5890a4e9a..a65f4c0e8 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpTaskActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/activity/CpTaskActivity.kt @@ -8,7 +8,6 @@ import androidx.activity.viewModels import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseBindingActivity import com.yizhuan.erban.databinding.ActivityCpTaskBinding -import com.yizhuan.erban.relation.cp.CpDataManager import com.yizhuan.erban.relation.cp.adapter.CpTaskIndicatorAdapter import com.yizhuan.erban.relation.cp.adapter.TaskPagerAdapter import com.yizhuan.erban.relation.cp.fragment.CpTaskFragment @@ -32,16 +31,11 @@ class CpTaskActivity : BaseBindingActivity(), override fun init() { initTitleBar("关系任务") - if (CpDataManager.get().cpRelation == null) { - vm.cpRelation.observe(this) { - CpDataManager.get().cpRelation = it - } - vm.loadingLiveData.observe(this) { - if (it) dialogManager.showProgressDialog(this) - else dialogManager.dismissDialog() - } - vm.getCpRelation(AuthModel.get().currentUid) + vm.loadingLiveData.observe(this) { + if (it) dialogManager.showProgressDialog(this) + else dialogManager.dismissDialog() } + vm.cpTaskProcess(AuthModel.get().currentUid) setViewPager() setCpLevelContent() } diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/adapter/InviteRecordAdapter.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/adapter/InviteRecordAdapter.kt index 698d97e3f..8535acedb 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/adapter/InviteRecordAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/adapter/InviteRecordAdapter.kt @@ -29,7 +29,7 @@ class InviteRecordAdapter(private val context: Context) : val tvVisit = helper.getView(R.id.tv_visit) item?.state?.let { when (it) { - 1 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_invited) + 1 -> tvVisit.text = "查看" 2 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_agreed) 3 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_refused) 4 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_unbinding) diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpGlobalDialog.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpGlobalDialog.kt new file mode 100644 index 000000000..042a388c8 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpGlobalDialog.kt @@ -0,0 +1,79 @@ +package com.yizhuan.erban.relation.cp.dialog + +import android.content.Context +import android.view.Gravity +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.treasure_box.widget.dialog.BaseBindingDialog +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes +import io.reactivex.* +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.CompositeDisposable +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +@ActLayoutRes(R.layout.dialog_cp_global) +class CpGlobalDialog(context: Context) : + View.OnClickListener, + BaseBindingDialog(context) { + private val disposeSet: CompositeDisposable by lazy { + CompositeDisposable() + } + + override fun init() { + window?.attributes?.let { + it.y = ScreenUtil.dip2px(44f) + it.dimAmount = 1f + gravity = Gravity.TOP + } + binding.ivClose.setOnClickListener(this) + binding.tvVisit.setOnClickListener(this) + setCancelable(false) + } + + override fun onClick(v: View) { + when (v.id) { + R.id.iv_close -> { + closeDialog() + } + R.id.tv_visit -> { + + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + Observable.interval(1000, TimeUnit.MILLISECONDS) + .subscribeOn(Schedulers.computation()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + disposeSet.add(d) + } + + override fun onNext(t: Long) { + binding.tvSec.text = "${5L - t}s" + if (t == 5L) unregisterTimer() + } + + override fun onError(e: Throwable) {} + override fun onComplete() {} + } + ) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + unregisterTimer() + } + + private fun unregisterTimer() { + if (!disposeSet.isDisposed) { + disposeSet.dispose() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpInviteReplyConfirmDialog.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpInviteReplyConfirmDialog.kt index 62e01ad53..67def5cf2 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpInviteReplyConfirmDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/dialog/CpInviteReplyConfirmDialog.kt @@ -17,6 +17,7 @@ class CpInviteReplyConfirmDialog(context: Context) : var okCancelListener: CommonTipDialog.OnActionListener? = null override fun init() { width = ScreenUtil.dip2px(300f) + height = ScreenUtil.dip2px(180f) binding.click = this binding.tvMessage.text = text } diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/event/CpBindUnbindEvent.java b/app/src/main/java/com/yizhuan/erban/relation/cp/event/CpBindUnbindEvent.java new file mode 100644 index 000000000..71de1a8e6 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/event/CpBindUnbindEvent.java @@ -0,0 +1,5 @@ +package com.yizhuan.erban.relation.cp.event; + +public class CpBindUnbindEvent { + +} diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/CpTaskFragment.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/CpTaskFragment.kt index 3c079d40b..dbb8574bd 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/CpTaskFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/CpTaskFragment.kt @@ -1,18 +1,20 @@ package com.yizhuan.erban.relation.cp.fragment import android.os.Bundle +import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseBindingFragment import com.yizhuan.erban.databinding.FragmentCpTaskBinding -import com.yizhuan.erban.relation.cp.CpDataManager import com.yizhuan.erban.relation.cp.adapter.CpTaskAdapter +import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel import com.yizhuan.xchat_android_library.annatation.ActLayoutRes @ActLayoutRes(R.layout.fragment_cp_task) class CpTaskFragment : BaseBindingFragment() { private var pageType: Int = 0 private lateinit var adapter: CpTaskAdapter + private val vm: CpViewModel by activityViewModels() override fun initiate() { arguments?.let { pageType = it.getInt("type") @@ -21,7 +23,7 @@ class CpTaskFragment : BaseBindingFragment() { LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) adapter = CpTaskAdapter() adapter.bindToRecyclerView(mBinding.recyclerView) - CpDataManager.get().cpRelation?.let { + vm.cpTaskData.value?.let { when (pageType) { TYPE_DAILY -> { adapter.setNewData(it.dailyTask) diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/UserInfoCpFragment.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/UserInfoCpFragment.kt index 4601ffb5d..ee332259e 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/UserInfoCpFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/fragment/UserInfoCpFragment.kt @@ -10,6 +10,7 @@ import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel import com.yizhuan.erban.relation.cp.widget.RelationCpCardView import com.yizhuan.erban.ui.im.friend.FriendFragmentCpDelegate import com.yizhuan.erban.ui.relation.FansListActivity +import com.yizhuan.erban.ui.utils.ImageLoadUtils import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_library.annatation.ActLayoutRes @@ -23,7 +24,7 @@ class UserInfoCpFragment : BaseViewBindingFragment(), } override fun init() { - uid = arguments?.getLong("type") + uid = arguments?.getLong("uid") val isSelf = uid == AuthModel.get().currentUid val type = if (isSelf) RelationCpCardView.PAGE_TYPE_SELF_INFO else RelationCpCardView.PAGE_TYPE_CUS_INFO @@ -32,6 +33,13 @@ class UserInfoCpFragment : BaseViewBindingFragment(), AuthModel.get().currentUid, type, it ) + ImageLoadUtils.loadRoundBackground( + requireContext(), + it.cpBackImg, + binding.container, + 0, + R.drawable.bg_cp_userinfo_card + ) } vm.loadingLiveData.observe(this) { if (it) dialogManager.showProgressDialog(requireContext()) @@ -57,11 +65,8 @@ class UserInfoCpFragment : BaseViewBindingFragment(), FansListActivity.start(requireContext(), FansListActivity.TYPE_CP) } } - R.id.mine_avatar -> { - } - R.id.iv_invite -> { - uid?.let { delegate.inviteCp(it)} + uid?.let { delegate.inviteCp(it) } } } } diff --git a/app/src/main/java/com/yizhuan/erban/relation/cp/widget/RelationCpCardView.kt b/app/src/main/java/com/yizhuan/erban/relation/cp/widget/RelationCpCardView.kt index 4f741c13f..87a49c89d 100644 --- a/app/src/main/java/com/yizhuan/erban/relation/cp/widget/RelationCpCardView.kt +++ b/app/src/main/java/com/yizhuan/erban/relation/cp/widget/RelationCpCardView.kt @@ -6,7 +6,6 @@ import android.util.AttributeSet 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 @@ -38,10 +37,8 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) : var unbindRecoverVisibility = false var groupEmptyVisibility = false var declarationVisibility = false - cpRelation?.let { - binding.cpEntity = it - setBackground(type, it) - } + binding.cpEntity = cpRelation + setBackground(type, cpRelation) inviteData?.let { binding.inviteData = it } when (type) { PAGE_TYPE_SELF_CP -> { @@ -50,7 +47,7 @@ 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.uid == selfUId) && !cpRelation.waitUnbound + unbindVisibility = (cpRelation.unboundUid == selfUId) && !cpRelation.waitUnbound if (unbindRecoverVisibility && cpRelation.uid != selfUId) { binding.tvRecoveryUnbind.text = "关系解绑中" binding.tvRecoveryUnbind.isEnabled = false @@ -77,6 +74,7 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) : val centerHeartVisibility = userInfoVisibility val keepTimeVisibility = cpLevelVisibility + binding.mineAvatar.visibility = userInfoVisibility.visibility() binding.tvMineName.visibility = userInfoVisibility.visibility() binding.ivCpHeart.visibility = centerHeartVisibility.visibility() @@ -89,21 +87,22 @@ class RelationCpCardView(context: Context, attr: AttributeSet?, def: Int) : binding.btnBind.visibility = groupEmptyVisibility.visibility() binding.ivInvite.visibility = groupEmptyVisibility.visibility() binding.tvDeclaration.visibility = declarationVisibility.visibility() + binding.ivUnbind.visibility = unbindVisibility.visibility() binding.cpEntity = cpRelation } private fun setBackground( type: Int, - it: CpRelation + it: CpRelation? ) { - if (type != PAGE_TYPE_INVITE_DIALOG) { + if (type == PAGE_TYPE_SELF_CP) { ImageLoadUtils.loadRoundBackground( context, - it.cpBackImg, + it?.cpBackImg, this, 16, - R.drawable.bg_corner_shadow_12 + R.drawable.bg_cp_card ) } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderText.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderText.java index c36b1db98..3f170b427 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderText.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderText.java @@ -18,6 +18,7 @@ import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.im.custom.bean.AssistantAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CarAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CarveUpGoldThirdLevelAttachment; +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.NobleAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.VoiceBottleShakeHeartAttachment; @@ -42,6 +43,7 @@ public class MsgViewHolderText extends MsgViewHolderBase { private NobleAttachment mNobleAttachment; private CarAttachment mCarAttachment; private AssistantAttachment awardAttachment; + private CpInviteAttachment cpInviteAttachment; public MsgViewHolderText(BaseMultiItemFetchLoadAdapter adapter) { super(adapter); @@ -112,6 +114,9 @@ public class MsgViewHolderText extends MsgViewHolderBase { localExtension.put(VoiceBottleShakeHeartAttachment.KEY_VOICE_BOTTLE_NEED_SHAKE_HEART, false); message.setLocalExtension(localExtension); IMNetEaseManager.get().updateMessageToLocal(message); + }else if(attachment instanceof CpInviteAttachment){ + cpInviteAttachment = (CpInviteAttachment)attachment; + text = cpInviteAttachment.msg; } mTvMsg.setText(text); } @@ -139,6 +144,8 @@ public class MsgViewHolderText extends MsgViewHolderBase { } } else if (awardAttachment != null) { RouterHandler.handle(context, awardAttachment.routerType, awardAttachment.routerValue); + }else if(cpInviteAttachment!=null){ + RouterHandler.handle(context, cpInviteAttachment.routerType, cpInviteAttachment.routerValue); } } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/utils/ImageLoadUtils.java b/app/src/main/java/com/yizhuan/erban/ui/utils/ImageLoadUtils.java index d39205ad9..b5cd59893 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/utils/ImageLoadUtils.java +++ b/app/src/main/java/com/yizhuan/erban/ui/utils/ImageLoadUtils.java @@ -198,6 +198,7 @@ public class ImageLoadUtils { } public static void loadRoundBackground(Context context, String url, View view, int dp, @DrawableRes int defaultRes) { + view.setBackgroundResource(defaultRes); if (StringUtil.isEmpty(url)) { return; } diff --git a/app/src/main/res/drawable-xhdpi/bg_cp_btn_visit_dialog.png b/app/src/main/res/drawable-xhdpi/bg_cp_btn_visit_dialog.png new file mode 100644 index 000000000..cfbaf1692 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_cp_btn_visit_dialog.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_cp_dialog_global.png b/app/src/main/res/drawable-xhdpi/bg_cp_dialog_global.png new file mode 100644 index 000000000..4267708f9 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_cp_dialog_global.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_card.png b/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_card.png new file mode 100644 index 000000000..90dfbff78 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_card.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_declaration.png b/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_declaration.png new file mode 100644 index 000000000..e5e658f1b Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_cp_userinfo_declaration.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_cp_close_dialog.png b/app/src/main/res/drawable-xhdpi/ic_cp_close_dialog.png new file mode 100644 index 000000000..e38748eb9 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_cp_close_dialog.png differ diff --git a/app/src/main/res/drawable/bg_cp_pink_selector.xml b/app/src/main/res/drawable/bg_cp_pink_selector.xml index 2119fc4d3..a55815420 100644 --- a/app/src/main/res/drawable/bg_cp_pink_selector.xml +++ b/app/src/main/res/drawable/bg_cp_pink_selector.xml @@ -2,11 +2,7 @@ - - - - - + diff --git a/app/src/main/res/drawable/bg_ff696f_ffafc3_cornor_4.xml b/app/src/main/res/drawable/bg_ff696f_ffafc3_cornor_4.xml new file mode 100644 index 000000000..4728e6574 --- /dev/null +++ b/app/src/main/res/drawable/bg_ff696f_ffafc3_cornor_4.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cp_global.xml b/app/src/main/res/layout/dialog_cp_global.xml new file mode 100644 index 000000000..540fae764 --- /dev/null +++ b/app/src/main/res/layout/dialog_cp_global.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cp_invite.xml b/app/src/main/res/layout/dialog_cp_invite.xml index dd53892a2..400a38e63 100644 --- a/app/src/main/res/layout/dialog_cp_invite.xml +++ b/app/src/main/res/layout/dialog_cp_invite.xml @@ -30,16 +30,16 @@ android:layout_width="match_parent" android:layout_height="619dp" android:background="@drawable/bg_cp_invite_dialog" - android:paddingBottom="@dimen/dp_30" + android:paddingBottom="@dimen/dp_50" app:layout_constraintHorizontal_weight="1" app:layout_constraintTop_toBottomOf="@id/iv_close"> + android:paddingBottom="@dimen/dp_5" + tools:background="@drawable/bg_cp_card"> @@ -143,6 +148,7 @@ android:text="@{inviteData==null?(cpEntity.cpUid==0?@string/invite_cp:cpEntity.cpNick):inviteData.acceptNick}" android:textColor="@color/white" android:textSize="@dimen/sp_14" + android:visibility="gone" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toRightOf="@id/iv_cp_heart" @@ -155,15 +161,15 @@ android:layout_width="wrap_content" android:layout_height="26dp" android:layout_marginTop="@dimen/dp_15" - android:background="@drawable/bg_cp_pink_selector" + android:background="@drawable/bg_ff696f_ffafc3_cornor_4" android:gravity="center" android:onClick="@{click}" android:paddingLeft="@dimen/dp_8" android:paddingRight="@dimen/dp_8" android:text="撤销解除关系" - android:visibility="gone" android:textColor="@color/white" android:textSize="@dimen/sp_12" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="@id/iv_cp_heart" app:layout_constraintRight_toRightOf="@id/iv_cp_heart" @@ -174,8 +180,8 @@ android:layout_width="56dp" android:layout_height="56dp" android:onClick="@{click}" - android:visibility="gone" android:src="@drawable/ic_cp_invite" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" @@ -202,8 +208,8 @@ android:background="@drawable/bg_cp_text_perpule" android:gravity="center" android:text="绑定CP" - android:visibility="gone" android:textSize="@dimen/sp_14" + android:visibility="gone" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_invite" /> @@ -214,16 +220,30 @@ android:layout_height="32dp" android:layout_marginLeft="@dimen/dp_5" android:layout_marginTop="@dimen/dp_27" + android:layout_marginRight="@dimen/dp_5" + android:background="@drawable/bg_cp_userinfo_declaration" android:ellipsize="end" android:paddingLeft="@dimen/dp_8" android:paddingRight="@dimen/dp_8" android:singleLine="true" - android:visibility="gone" android:text="@{cpEntity.declaration}" android:textColor="#9B8AFF" android:textSize="@dimen/sp_13" + android:visibility="gone" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_mine_name" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 6da92757f..be3afa7c0 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -221,5 +221,5 @@ 56dp 44dp 80dp - 148dp + 160dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fc8b9f7e8..ebd12cb8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -932,4 +932,6 @@ 解绑中 已解绑 查看 + 解除后,包括陪伴时长、等级都会清除;确定解除关系吗? + 撤销后,包括陪伴时长及等级都会回复,确定恢复关系吗? diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CpInviteAttachment.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CpInviteAttachment.java new file mode 100644 index 000000000..d8df51c3f --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CpInviteAttachment.java @@ -0,0 +1,47 @@ +package com.yizhuan.xchat_android_core.im.custom.bean; + +import com.alibaba.fastjson.JSONObject; + +public class CpInviteAttachment extends CustomAttachment { + + public String msg; + public int routerType; + public String routerValue; + public String title; + public int mSecond; + + public CpInviteAttachment(int second) { + super(CustomAttachment.CP_INVITE_MESSAGE, second); + } + + @Override + protected void parseData(JSONObject data) { + super.parseData(data); + super.parseData(data); + if (data != null) { + if (data.containsKey("msg")) { + msg = data.getString("msg"); + } + if (data.containsKey("routerType")) { + routerType = data.getInteger("routerType"); + } + if (data.containsKey("propInfo")) { + routerValue = data.getString("propInfo"); + } + if (data.containsKey("title")) { + title = data.getString("title"); + } + } + } + + + @Override + protected JSONObject packData() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("routerType", routerType); + jsonObject.put("msg", msg); + jsonObject.put("propInfo", routerValue); + jsonObject.put("title", title); + return jsonObject; + } +} diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java index 6a2cd4b5b..e0f42fe37 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java @@ -556,6 +556,10 @@ public class CustomAttachParser implements MsgAttachmentParser { case CustomAttachment.ANCHOR_ROOM_AUDIENCE_UPMIC: attachment = new RequestUpmicAttachment(CustomAttachment.ANCHOR_ROOM_AUDIENCE_UPMIC, 0); break; + + case CustomAttachment.CP_INVITE_MESSAGE: + attachment = new CpInviteAttachment(CustomAttachment.CP_INVITE_MESSAGE_TOP_NOTICE); + break; default: break; } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java index 1140418bf..9a77247a1 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java @@ -12,7 +12,9 @@ import com.yizhuan.xchat_android_core.noble.NobleInfo; * @date 2017/6/8 */ public class CustomAttachment implements MsgAttachment { - /** 自定义消息附件的类型,根据该字段区分不同的自定义消息 */ + /** + * 自定义消息附件的类型,根据该字段区分不同的自定义消息 + */ protected int first; protected int second; protected JSONObject data; @@ -64,9 +66,13 @@ public class CustomAttachment implements MsgAttachment { // 贵族 public static final int CUSTOM_MESS_HEAD_NOBLE = 14; - /** 靓号未生效提醒 */ + /** + * 靓号未生效提醒 + */ public static final int CUSTOM_MSG_HEADER_TYPE_GOOD_NUMBER_INACTIVE = 147; - /** 贵族快到期(前三天)消息 */ + /** + * 贵族快到期(前三天)消息 + */ public static final int CUSTOM_MSG_HEADER_TYPE_NOBLE_END = 144; // 开通贵族 @@ -82,7 +88,9 @@ public class CustomAttachment implements MsgAttachment { // 推荐房间 public static final int CUSTOM_MESS_SUB_RECOM_ROOM = 149; - /** 进场横幅 (客户端定义) */ + /** + * 进场横幅 (客户端定义) + */ public static final int CUSTOM_MESS_SUB_ROOM_WELCOME = 141; // 座驾 @@ -113,14 +121,14 @@ public class CustomAttachment implements MsgAttachment { public static final int CUSTOM_MSG_ASSISTANT_MSG = 19; // 小秘书通用消息 public static final int CUSTOM_MSG_ASSISTANT_COMMON_MSG = 191; - + // 房间信息更新 - public static final int CUSTOM_MSG_UPDATE_ROOM_INFO=20; - public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_GIFT=201; - public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_AUDIO=202; - public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_SCREEN=203; + public static final int CUSTOM_MSG_UPDATE_ROOM_INFO = 20; + public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_GIFT = 201; + public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_AUDIO = 202; + public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_SCREEN = 203; public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_NOTICE = 204; // 通用公屏提示文案,使用于各种模式的开和关 - public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_REDPACKAGE=205; + public static final int CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_REDPACKAGE = 205; // 群红包 public static final int CUSTOM_MSG_HEADER_TYPE_LUCKY_MONEY = 21; @@ -140,16 +148,16 @@ public class CustomAttachment implements MsgAttachment { public static final int CUSTOM_MSG_SUB_TYPE_COMMON_SYSTEM_MSG_APPROVAL = 232; //等级提升弹窗 - public static final int CUSTOM_MSG_LEVEL_UP=24; - public static final int CUSTOM_MSG_EXPER_LEVEL_UP=241; - public static final int CUSTOM_MSG_CHARM_LEVEL_UP=242; - public static final int CUSTOM_MSG_EXPER_LEVEL_UP_NOTICE=243; + public static final int CUSTOM_MSG_LEVEL_UP = 24; + public static final int CUSTOM_MSG_EXPER_LEVEL_UP = 241; + public static final int CUSTOM_MSG_CHARM_LEVEL_UP = 242; + public static final int CUSTOM_MSG_EXPER_LEVEL_UP_NOTICE = 243; //龙珠游戏 - public static final int CUSTOM_MSG_DRAGON_BAR=25; - public static final int CUSTOM_MSG_DRAGON_BAR_START=251; - public static final int CUSTOM_MSG_DRAGON_BAR_END=252; - public static final int CUSTOM_MSG_DRAGON_BAR_CANCEL=253; - public static final int CUSTOM_MSG_DRAGON_BAR_RUNAWAY=254; + public static final int CUSTOM_MSG_DRAGON_BAR = 25; + public static final int CUSTOM_MSG_DRAGON_BAR_START = 251; + public static final int CUSTOM_MSG_DRAGON_BAR_END = 252; + public static final int CUSTOM_MSG_DRAGON_BAR_CANCEL = 253; + public static final int CUSTOM_MSG_DRAGON_BAR_RUNAWAY = 254; //房间开宝箱 public static final int CUSTOM_MSG_BOX = 26; public static final int CUSTOM_MSG_SUB_BOX_ME = 261;//自己可见 @@ -186,7 +194,7 @@ public class CustomAttachment implements MsgAttachment { public static final int CUSTOM_MSG_QUEUING_MIC = 30; public static final int CUSTOM_MSG_SUB_QUEUING_MIC_NON_EMPTY = 301; // 从无人排麦到有人排麦 public static final int CUSTOM_MSG_SUB_QUEUING_MIC_EMPTY = 302; // 从有人排麦到无人排麦 - public static final int CUSTOM_MSG_SUB_QUEUING_MIC_MODE_OPEN = 303; // 开启排麦模式 + public static final int CUSTOM_MSG_SUB_QUEUING_MIC_MODE_OPEN = 303; // 开启排麦模式 public static final int CUSTOM_MSG_SUB_QUEUING_MIC_MODE_CLOSE = 304; // 关闭排麦模式 public static final int CUSTOM_MSG_SUB_QUEUING_MIC_FREE_MIC_OPEN = 305; // 将坑位设置成自由麦 public static final int CUSTOM_MSG_SUB_QUEUING_MIC_FREE_MIC_CLOSE = 306; // 将坑位设置成排麦 @@ -426,6 +434,10 @@ public class CustomAttachment implements MsgAttachment { ///个播房观众点击空坑位,房主收到请求上麦提示 public static final int ANCHOR_ROOM_AUDIENCE_UPMIC = 86; + + public static final int CP_INVITE_MESSAGE = 88; + public static final int CP_INVITE_MESSAGE_TOP_NOTICE = 881; + public CustomAttachment() { } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java index 20417d986..16aced05a 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java @@ -201,13 +201,13 @@ public class RouterType { /** * Cp邀请 */ - public static final int CP_INVITE = 62; + public static final int CP_INVITE = 61; /** * Cp关系任务 */ - public static final int CP_TASK = 61; + public static final int CP_TASK = 62; /** * CP头饰 diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpInviteMessageEntity.kt b/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpInviteMessageEntity.kt new file mode 100644 index 000000000..3e64991eb --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpInviteMessageEntity.kt @@ -0,0 +1,18 @@ +package com.yizhuan.xchat_android_core.relation.cp + +data class CpInviteMessageEntity( + val replyExpireTime: String, + val inviteUid: Long, + val inviteAvatar: String, + val inviteNick: String, + val inviteGender: Int, + val acceptUid: Long, + val acceptAvatar: String, + val acceptNick: String, + val acceptGender: Int, + val propsId: Int, + val propsName: String, + val propsImg: String, + val propsPrice: Double, + val recommenTxt: List, +) \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpRelation.kt b/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpRelation.kt index b6ec98b58..c5f5bcb0b 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpRelation.kt +++ b/core/src/main/java/com/yizhuan/xchat_android_core/relation/cp/CpRelation.kt @@ -7,7 +7,7 @@ data class CpRelation( val cpId: Long,// cp记录id //邀请人 val uid: Long,//邀请人uid - val nick: Long,//邀请人 + val nick: String,//邀请人 val gender: Int,//1-男2-女 //邀请人 val avatar: String,//邀请人 //被邀请人 @@ -22,5 +22,5 @@ data class CpRelation( val cpKeepDuration: String, val cpBackImg: String, val waitUnbound: Boolean,//CP状态 true 解绑中 - val unBoundUid: Long//解绑发起人UID + val unboundUid: Long//解绑发起人UID ) \ No newline at end of file