1.UI调整 2.关系系统消息处理

This commit is contained in:
yitao_hello
2022-02-23 02:12:31 +08:00
parent 7b58e593ad
commit 3754f78bcc
18 changed files with 273 additions and 124 deletions

View File

@@ -2,14 +2,19 @@ package com.yizhuan.erban.relation.cp.activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Color
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.yizhuan.erban.R import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseBindingActivity import com.yizhuan.erban.base.BaseBindingActivity
import com.yizhuan.erban.common.EmptyViewHelper import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.ActivityCpInviteRecordBinding 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.adapter.InviteRecordAdapter
import com.yizhuan.erban.relation.cp.dialog.CpInviteReplyConfirmDialog
import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel
import com.yizhuan.erban.ui.widget.dialog.CommonTipDialog
import com.yizhuan.xchat_android_core.relation.cp.UserCpListEntity
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
@ActLayoutRes(R.layout.activity_cp_invite_record) @ActLayoutRes(R.layout.activity_cp_invite_record)
@@ -17,10 +22,19 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
private val vm: CpViewModel by viewModels() private val vm: CpViewModel by viewModels()
private lateinit var adapter: InviteRecordAdapter private lateinit var adapter: InviteRecordAdapter
private val type = 1// 1-别人给我发的邀请2-我给别人发的邀请 private val type = 1// 1-别人给我发的邀请2-我给别人发的邀请
private val confirmDialog: CpInviteReplyConfirmDialog by lazy {
CpInviteReplyConfirmDialog(this)
}
override fun init() { override fun init() {
initTitleBar("关系申请") initTitleBar("关系申请")
adapter = InviteRecordAdapter(this) adapter = InviteRecordAdapter(this)
adapter.onVisitClickListener = object : InviteRecordAdapter.OnVisitClickListener {
override fun onVisitClick(item: UserCpListEntity) {
onItemClick(item)
}
}
val layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) val layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
mBinding.recyclerView.layoutManager = layoutManager mBinding.recyclerView.layoutManager = layoutManager
adapter.emptyView = EmptyViewHelper.createEmptyView(this, "暂无数据") adapter.emptyView = EmptyViewHelper.createEmptyView(this, "暂无数据")
@@ -35,7 +49,12 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
vm.loadingLiveData.observe(this) { vm.loadingLiveData.observe(this) {
if (it) dialogManager.showProgressDialog(this) if (it) dialogManager.showProgressDialog(this)
else dialogManager.dismissDialog() else dialogManager.dismissDialog()
if (mBinding.swipeRefresh.isRefreshing) {
mBinding.swipeRefresh.isRefreshing = false
}
} }
queryRecord(type)
} }
private fun queryRecord(type: Int) { private fun queryRecord(type: Int) {
@@ -48,4 +67,27 @@ class CpInviteRecordActivity : BaseBindingActivity<ActivityCpInviteRecordBinding
context.startActivity(intent) context.startActivity(intent)
} }
} }
private fun onItemClick(item: UserCpListEntity) {
confirmDialog.setDialogTitle(
CpViewHelper.getColorSpan(
"是否同意与${item.inviteUserNick}成为CP",
Color.parseColor("#4C5AF1"),
5, item.inviteUserNick.length
)
)
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)
}
}
}
if (confirmDialog.isShowing) confirmDialog.closeDialog()
confirmDialog.openDialog()
}
} }

View File

@@ -1,5 +1,7 @@
package com.yizhuan.erban.relation.cp.activity package com.yizhuan.erban.relation.cp.activity
import android.content.Context
import android.content.Intent
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.activity.viewModels import androidx.activity.viewModels
@@ -70,7 +72,7 @@ class CpTaskActivity : BaseBindingActivity<ActivityCpTaskBinding>(),
for (i in titles.indices) { for (i in titles.indices) {
val itemView = layoutInflater.inflate( val itemView = layoutInflater.inflate(
R.layout.layout_cp_task_introduce, R.layout.layout_cp_task_introduce,
null,false null, false
) )
itemView.findViewById<TextView>(R.id.tv_cp_level_title).text = titles[i] itemView.findViewById<TextView>(R.id.tv_cp_level_title).text = titles[i]
itemView.findViewById<TextView>(R.id.tv_cp_level_content).text = contents[i] itemView.findViewById<TextView>(R.id.tv_cp_level_content).text = contents[i]
@@ -100,4 +102,10 @@ class CpTaskActivity : BaseBindingActivity<ActivityCpTaskBinding>(),
override fun onItemSelect(position: Int) { override fun onItemSelect(position: Int) {
mBinding.viewPager.currentItem = position mBinding.viewPager.currentItem = position
} }
companion object {
fun start(context: Context) {
context.startActivity(Intent(context, CpTaskActivity::class.java))
}
}
} }

View File

@@ -35,7 +35,7 @@ class InviteRecordAdapter(private val context: Context) :
4 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_unbinding) 4 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_unbinding)
5 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_unbound) 5 -> tvVisit.text = context.resources.getString(R.string.invite_cp_state_unbound)
} }
tvVisit.isEnabled = it == 0 tvVisit.isEnabled = it == 1
} }
tvVisit.setOnClickListener { tvVisit.setOnClickListener {
if (item != null) { if (item != null) {

View File

@@ -14,6 +14,7 @@ import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.widget.LinearLayoutManagerWrapper import com.yizhuan.erban.ui.widget.LinearLayoutManagerWrapper
import com.yizhuan.xchat_android_core.relation.cp.CpInvitePageEntity import com.yizhuan.xchat_android_core.relation.cp.CpInvitePageEntity
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
import com.yizhuan.xchat_android_library.utils.ScreenUtils
@ActLayoutRes(R.layout.dialog_cp_invite) @ActLayoutRes(R.layout.dialog_cp_invite)
class CpInvitePageDialog(context: Context) : View.OnClickListener, class CpInvitePageDialog(context: Context) : View.OnClickListener,
@@ -22,6 +23,8 @@ class CpInvitePageDialog(context: Context) : View.OnClickListener,
var invitePageEntity: CpInvitePageEntity? = null var invitePageEntity: CpInvitePageEntity? = null
private val adapter = DeclarationRecommendAdapter() private val adapter = DeclarationRecommendAdapter()
override fun init() { override fun init() {
width = (ScreenUtils.getScreenWidth(context) * (352f / 375f)).toInt()
height = (ScreenUtils.getScreenHeight(context) * 0.85).toInt()
invitePageEntity?.let { invitePageEntity?.let {
binding.cpCard.setInviteDialogPageData(invitePageEntity) binding.cpCard.setInviteDialogPageData(invitePageEntity)
ImageLoadUtilsV2.loadImage(binding.ivGift, it.propsImg) ImageLoadUtilsV2.loadImage(binding.ivGift, it.propsImg)

View File

@@ -3,6 +3,7 @@ package com.yizhuan.erban.relation.cp.dialog
import android.content.Context import android.content.Context
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.view.View import android.view.View
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.yizhuan.erban.R import com.yizhuan.erban.R
import com.yizhuan.erban.databinding.DialogCpInviteReplyConfirmBinding import com.yizhuan.erban.databinding.DialogCpInviteReplyConfirmBinding
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog
@@ -12,20 +13,28 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
@ActLayoutRes(R.layout.dialog_cp_invite_reply_confirm) @ActLayoutRes(R.layout.dialog_cp_invite_reply_confirm)
class CpInviteReplyConfirmDialog(context: Context) : class CpInviteReplyConfirmDialog(context: Context) :
BaseBindingDialog<DialogCpInviteReplyConfirmBinding>(context), View.OnClickListener { BaseBindingDialog<DialogCpInviteReplyConfirmBinding>(context), View.OnClickListener {
private var text: CharSequence? = null
var okCancelListener: CommonTipDialog.OnActionListener? = null var okCancelListener: CommonTipDialog.OnActionListener? = null
override fun init() { override fun init() {
width = ScreenUtil.dip2px(300f)
binding.click = this binding.click = this
binding.tvMessage.text = text
} }
fun setTitle(text: SpannableStringBuilder) { fun setDialogTitle(text: SpannableStringBuilder) {
binding.tvMessage.text = text this.text = text
} }
override fun onClick(v: View) { override fun onClick(v: View) {
when (v.id) { when (v.id) {
R.id.tv_refuse -> okCancelListener?.onCancel() R.id.tv_refuse -> {
R.id.tv_confirm -> okCancelListener?.onOk() okCancelListener?.onCancel()
closeDialog()
}
R.id.tv_agree -> {
okCancelListener?.onOk()
closeDialog()
}
} }
} }
} }

View File

@@ -1,25 +1,36 @@
package com.yizhuan.erban.relation.cp.fragment package com.yizhuan.erban.relation.cp.fragment
import android.os.Bundle import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import com.yizhuan.erban.R import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseViewBindingFragment import com.yizhuan.erban.base.BaseViewBindingFragment
import com.yizhuan.erban.databinding.FragmentUserinfoCpBinding import com.yizhuan.erban.databinding.FragmentUserinfoCpBinding
import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel import com.yizhuan.erban.relation.cp.viewmodel.CpViewModel
import com.yizhuan.erban.relation.cp.widget.RelationCpCardView 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.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
@ActLayoutRes(R.layout.fragment_userinfo_cp) @ActLayoutRes(R.layout.fragment_userinfo_cp)
class UserInfoCpFragment : BaseViewBindingFragment<FragmentUserinfoCpBinding>() { class UserInfoCpFragment : BaseViewBindingFragment<FragmentUserinfoCpBinding>(),
View.OnClickListener {
private val vm: CpViewModel by activityViewModels() private val vm: CpViewModel by activityViewModels()
private var uid: Long? = 0L
private val delegate: FriendFragmentCpDelegate by lazy {
FriendFragmentCpDelegate(this)
}
override fun init() { override fun init() {
val uid = arguments?.getLong("type") uid = arguments?.getLong("type")
val isSelf = uid == AuthModel.get().currentUid
val type = if (isSelf) RelationCpCardView.PAGE_TYPE_SELF_INFO
else RelationCpCardView.PAGE_TYPE_CUS_INFO
vm.cpRelation.observe(this) { vm.cpRelation.observe(this) {
binding.cpCardView.setCpEntityData( binding.cpCardView.setCpEntityData(
AuthModel.get().currentUid, AuthModel.get().currentUid,
RelationCpCardView.PAGE_TYPE_CUS_INFO, type, it
it
) )
} }
vm.loadingLiveData.observe(this) { vm.loadingLiveData.observe(this) {
@@ -27,6 +38,7 @@ class UserInfoCpFragment : BaseViewBindingFragment<FragmentUserinfoCpBinding>()
else dialogManager.dismissDialog() else dialogManager.dismissDialog()
} }
uid?.let { vm.getCpRelation(it) } uid?.let { vm.getCpRelation(it) }
binding.cpCardView.setClick(this)
} }
companion object { companion object {
@@ -36,4 +48,21 @@ class UserInfoCpFragment : BaseViewBindingFragment<FragmentUserinfoCpBinding>()
arguments = bundle arguments = bundle
} }
} }
override fun onClick(v: View) {
when (v.id) {
R.id.other_avatar -> {
if (vm.cpRelation.value?.cpUid == 0L) {
//自己-邀请
FansListActivity.start(requireContext(), FansListActivity.TYPE_CP)
}
}
R.id.mine_avatar -> {
}
R.id.iv_invite -> {
uid?.let { delegate.inviteCp(it)}
}
}
}
} }

View File

@@ -137,6 +137,17 @@ class CpViewModel : BaseViewModel() {
) )
} }
fun replyInvite(id: Int, state: Int) {
_loadingLiveData.value = true
safeLaunch(
onError = dealCpDataError,
block = {
CpModel.replyCpInvite(id, state)
_loadingLiveData.value = false
}
)
}
private val dealCpDataError: (e: Throwable) -> Unit = { private val dealCpDataError: (e: Throwable) -> Unit = {
_loadingLiveData.value = false _loadingLiveData.value = false
it.message.toast() it.message.toast()

View File

@@ -21,6 +21,8 @@ import com.yizhuan.erban.module_hall.hall.activity.ModuleHallActivity;
import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity; import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity;
import com.yizhuan.erban.radish.signin.SignInActivity; import com.yizhuan.erban.radish.signin.SignInActivity;
import com.yizhuan.erban.radish.task.activity.TaskCenterActivity; import com.yizhuan.erban.radish.task.activity.TaskCenterActivity;
import com.yizhuan.erban.relation.cp.activity.CpInviteRecordActivity;
import com.yizhuan.erban.relation.cp.activity.CpTaskActivity;
import com.yizhuan.erban.team.view.NimTeamMessageActivity; import com.yizhuan.erban.team.view.NimTeamMessageActivity;
import com.yizhuan.erban.ui.login.BindPhoneActivity; import com.yizhuan.erban.ui.login.BindPhoneActivity;
import com.yizhuan.erban.ui.login.ShowBindPhoneActivity; import com.yizhuan.erban.ui.login.ShowBindPhoneActivity;
@@ -127,7 +129,7 @@ public class RouterHandler {
break; break;
case RouterType.BINDING_ALI_PAY_ACCOUNT: case RouterType.BINDING_ALI_PAY_ACCOUNT:
if (AuthModel.get().getCurrentUid() > 0){ if (AuthModel.get().getCurrentUid() > 0) {
WithdrawModel.get().getWithdrawUserInfo(AuthModel.get().getCurrentUid()) WithdrawModel.get().getWithdrawUserInfo(AuthModel.get().getCurrentUid())
.subscribe(withdrawInfo -> { .subscribe(withdrawInfo -> {
if (withdrawInfo != null) { if (withdrawInfo != null) {
@@ -281,6 +283,12 @@ public class RouterHandler {
case RouterType.VIP_MAIN: case RouterType.VIP_MAIN:
VipMainActivity.start(context); VipMainActivity.start(context);
break; break;
case RouterType.CP_INVITE:
CpInviteRecordActivity.Companion.start(context);
break;
case RouterType.CP_TASK:
CpTaskActivity.Companion.start(context);
break;
default: default:
SingleToastUtil.showToast("暂不支持哟!"); SingleToastUtil.showToast("暂不支持哟!");
return false; return false;
@@ -317,15 +325,15 @@ public class RouterHandler {
if (partyRoomResult.getData().size() > 0) { if (partyRoomResult.getData().size() > 0) {
AvRoomDataManager.get().setRoomUidList(partyRoomResult.getData()); AvRoomDataManager.get().setRoomUidList(partyRoomResult.getData());
AVRoomActivity.start(context, true); AVRoomActivity.start(context, true);
}else { } else {
SingleToastUtil.showToastShort("暂无嗨聊房"); SingleToastUtil.showToastShort("暂无嗨聊房");
} }
}else if (partyRoomResult.getData() != null && !partyRoomResult.isSuccess()){ } else if (partyRoomResult.getData() != null && !partyRoomResult.isSuccess()) {
SingleToastUtil.showToastShort(partyRoomResult.getError()); SingleToastUtil.showToastShort(partyRoomResult.getError());
}else { } else {
SingleToastUtil.showToastShort("未知错误"); SingleToastUtil.showToastShort("未知错误");
} }
}else { } else {
SingleToastUtil.showToastShort("暂无嗨聊房"); SingleToastUtil.showToastShort("暂无嗨聊房");
} }
}) })

View File

@@ -33,6 +33,7 @@ import com.yizhuan.erban.databinding.ActivityUserInfoBinding;
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity; import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
import com.yizhuan.erban.family.view.activity.FamilyMemberListActivity; import com.yizhuan.erban.family.view.activity.FamilyMemberListActivity;
import com.yizhuan.erban.family.view.activity.FamilyMemberSearchActivity; import com.yizhuan.erban.family.view.activity.FamilyMemberSearchActivity;
import com.yizhuan.erban.relation.cp.fragment.UserInfoCpFragment;
import com.yizhuan.erban.ui.im.avtivity.NimFriendModel; import com.yizhuan.erban.ui.im.avtivity.NimFriendModel;
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.erban.ui.user.adapter.SelfPhotoAdapter; import com.yizhuan.erban.ui.user.adapter.SelfPhotoAdapter;
@@ -197,13 +198,15 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
} }
private void initViewPager() { private void initViewPager() {
List<Fragment> fragmentList = new ArrayList<>(2); List<Fragment> fragmentList = new ArrayList<>(3);
fragmentList.add(new UserInfoInfoFragment()); fragmentList.add(new UserInfoInfoFragment());
fragmentList.add(new UserInfoDynamicFragment()); fragmentList.add(new UserInfoDynamicFragment());
fragmentList.add(UserInfoCpFragment.Companion.newInstance(userId));
pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList); pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList);
final List<String> tagList = new ArrayList<>(2); final List<String> tagList = new ArrayList<>(3);
tagList.add("资料"); tagList.add("资料");
tagList.add("动态"); tagList.add("动态");
tagList.add("亲密关系");
CommonNavigator commonNavigator = new CommonNavigator(context); CommonNavigator commonNavigator = new CommonNavigator(context);
commonNavigator.setTitleWrapContent(true); commonNavigator.setTitleWrapContent(true);
UserInfoIndicatorAdapter magicIndicatorAdapter = new UserInfoIndicatorAdapter(context, tagList); UserInfoIndicatorAdapter magicIndicatorAdapter = new UserInfoIndicatorAdapter(context, tagList);
@@ -213,7 +216,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
commonNavigator.setAdapter(magicIndicatorAdapter); commonNavigator.setAdapter(magicIndicatorAdapter);
mBinding.magicIndicator.setNavigator(commonNavigator); mBinding.magicIndicator.setNavigator(commonNavigator);
commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
mBinding.viewPager.setOffscreenPageLimit(2); mBinding.viewPager.setOffscreenPageLimit(3);
mBinding.viewPager.setAdapter(pagerAdapter); mBinding.viewPager.setAdapter(pagerAdapter);
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager); ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager);
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -17,7 +17,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginBottom="@dimen/dp_16" android:layout_marginBottom="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_44" android:layout_marginTop="@dimen/dp_25"
android:fillViewport="true" android:fillViewport="true"
android:paddingLeft="@dimen/dp_15" android:paddingLeft="@dimen/dp_15"
android:paddingTop="@dimen/dp_8" android:paddingTop="@dimen/dp_8"

View File

@@ -2,121 +2,128 @@
<layout> <layout>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_8" android:layout_marginLeft="@dimen/dp_8"
android:layout_marginRight="@dimen/dp_8"> android:layout_marginRight="@dimen/dp_8"
android:orientation="vertical">
<ImageView <ImageView
android:id="@+id/iv_close" android:id="@+id/iv_close"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_30"
android:src="@drawable/ic_invite_dialog_close" android:layout_gravity="right"
android:layout_marginEnd="@dimen/dp_35" android:layout_marginRight="@dimen/dp_20"
app:layout_constraintEnd_toEndOf="parent" android:src="@drawable/ic_invite_dialog_close" />
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="619dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_6" android:layout_weight="1"
android:background="@drawable/bg_cp_invite_dialog" android:fillViewport="true"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintTop_toBottomOf="@id/iv_close"> app:layout_constraintTop_toBottomOf="@id/iv_close">
<TextView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tv_tip" android:layout_width="match_parent"
android:layout_width="0dp" android:layout_height="619dp"
android:layout_height="wrap_content" android:background="@drawable/bg_cp_invite_dialog"
android:layout_marginLeft="70dp" android:paddingBottom="@dimen/dp_30"
android:layout_marginTop="80dp" app:layout_constraintHorizontal_weight="1"
android:layout_marginRight="55dp" app:layout_constraintTop_toBottomOf="@id/iv_close">
android:gravity="center"
android:lineSpacingMultiplier="1.2"
android:text="送出一个邀请函并填写你们的关系誓言,\n即可邀请对方绑定CP"
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yizhuan.erban.relation.cp.widget.RelationCpCardView <TextView
android:id="@+id/cp_card" android:layout_marginTop="80dp"
android:layout_width="0dp" android:id="@+id/tv_tip"
android:layout_height="wrap_content" android:layout_width="0dp"
android:layout_marginTop="@dimen/dp_20" android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/tv_tip" android:layout_marginLeft="70dp"
app:layout_constraintRight_toRightOf="@id/tv_tip" android:layout_marginRight="55dp"
app:layout_constraintTop_toBottomOf="@id/tv_tip" android:gravity="center"
tools:layout_height="68dp" /> android:lineSpacingMultiplier="1.2"
android:text="送出一个邀请函并填写你们的关系誓言,\n即可邀请对方绑定CP"
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yizhuan.erban.relation.cp.widget.RelationCpCardView
android:id="@+id/cp_card"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintLeft_toLeftOf="@id/tv_tip"
app:layout_constraintRight_toRightOf="@id/tv_tip"
app:layout_constraintTop_toBottomOf="@id/tv_tip"
tools:layout_height="68dp" />
<ImageView <ImageView
android:id="@+id/iv_gift"
android:layout_width="90dp" android:layout_width="90dp"
android:layout_height="90dp" android:layout_height="90dp"
android:id="@+id/iv_gift"
app:layout_constraintTop_toBottomOf="@id/tv_tip"
android:layout_marginTop="122dp" android:layout_marginTop="122dp"
app:layout_constraintLeft_toLeftOf="@id/tv_tip" app:layout_constraintLeft_toLeftOf="@id/tv_tip"
app:layout_constraintRight_toRightOf="@id/tv_tip" app:layout_constraintRight_toRightOf="@id/tv_tip"
tools:src="@drawable/ic_invite_dialog_close" app:layout_constraintTop_toBottomOf="@id/tv_tip"
/> tools:src="@drawable/ic_invite_dialog_close" />
<TextView <TextView
android:id="@+id/tv_price" android:id="@+id/tv_price"
android:layout_width="146dp" android:layout_width="146dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginTop="124dp" android:layout_marginTop="124dp"
android:background="@drawable/bg_invite_dialog_price" android:background="@drawable/bg_invite_dialog_price"
android:gravity="center" android:gravity="center"
android:text="邀请函\n52000钻石" android:text="邀请函\n52000钻石"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/cp_card" /> app:layout_constraintTop_toBottomOf="@id/cp_card" />
<EditText <EditText
android:id="@+id/edit_declaration" android:id="@+id/edit_declaration"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginLeft="@dimen/dp_8" android:layout_marginLeft="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_17" android:layout_marginTop="@dimen/dp_17"
android:layout_marginRight="@dimen/dp_8" android:layout_marginRight="@dimen/dp_8"
android:background="@drawable/bg_cp_invite_dilog_edit" android:background="@drawable/bg_cp_invite_dilog_edit"
tools:hint="@string/invite_declaration_hint" android:lineSpacingMultiplier="1.2"
android:lineSpacingMultiplier="1.2" android:padding="@dimen/dp_9"
android:padding="@dimen/dp_9" android:textColor="#E0D5FF"
android:textColor="#E0D5FF" android:textColorHint="#E0D5FF"
android:textColorHint="#E0D5FF" android:textSize="@dimen/sp_10"
android:textSize="@dimen/sp_10" app:layout_constraintLeft_toLeftOf="@id/cp_card"
app:layout_constraintLeft_toLeftOf="@id/cp_card" app:layout_constraintRight_toRightOf="@id/cp_card"
app:layout_constraintRight_toRightOf="@id/cp_card" app:layout_constraintTop_toBottomOf="@id/tv_price"
app:layout_constraintTop_toBottomOf="@id/tv_price" /> tools:hint="@string/invite_declaration_hint" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recommend" android:id="@+id/rv_recommend"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="72dp" android:layout_height="72dp"
app:layout_constraintLeft_toLeftOf="@id/edit_declaration" app:layout_constraintLeft_toLeftOf="@id/edit_declaration"
app:layout_constraintRight_toRightOf="@id/edit_declaration" app:layout_constraintRight_toRightOf="@id/edit_declaration"
app:layout_constraintTop_toBottomOf="@id/edit_declaration" /> app:layout_constraintTop_toBottomOf="@id/edit_declaration" />
<TextView <TextView
android:id="@+id/tv_send" android:id="@+id/tv_send"
android:layout_width="144dp" android:layout_width="144dp"
android:layout_height="@dimen/dp_28" android:layout_height="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_30" android:layout_marginTop="@dimen/dp_30"
android:background="#f0f" android:background="@drawable/bg_btn_invite_now"
android:gravity="center" android:gravity="center"
android:text="发送邀请" android:text="发送邀请"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_recommend" /> app:layout_constraintTop_toBottomOf="@id/rv_recommend" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.core.widget.NestedScrollView>
</LinearLayout>
</layout> </layout>

View File

@@ -18,10 +18,11 @@
android:layout_width="220dp" android:layout_width="220dp"
android:layout_height="56dp" android:layout_height="56dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/guide_view"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constrainedHeight="true" app:layout_constrainedHeight="true"
android:layout_marginTop="@dimen/dp_36"
android:textSize="@dimen/sp_16" android:textSize="@dimen/sp_16"
android:gravity="center" android:gravity="center"
tools:text = "是否同意与与一二三四五六成为CP" tools:text = "是否同意与与一二三四五六成为CP"
@@ -33,7 +34,6 @@
android:layout_width="101dp" android:layout_width="101dp"
android:layout_height="@dimen/dp_32" android:layout_height="@dimen/dp_32"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_32"
android:background="@drawable/bg_invite_reply_refuse" android:background="@drawable/bg_invite_reply_refuse"
android:gravity="center" android:gravity="center"
android:text="取消" android:text="取消"
@@ -42,14 +42,13 @@
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/tv_agree" app:layout_constraintRight_toLeftOf="@id/tv_agree"
app:layout_constraintTop_toBottomOf="@id/tv_message" /> app:layout_constraintBottom_toBottomOf="@id/guide_view" />
<TextView <TextView
android:id="@+id/tv_agree" android:id="@+id/tv_agree"
android:layout_width="101dp" android:layout_width="101dp"
android:layout_height="@dimen/dp_32" android:layout_height="@dimen/dp_32"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_32"
android:layout_marginRight="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30"
android:background="@drawable/bg_invite_reply_agree" android:background="@drawable/bg_invite_reply_agree"
android:gravity="center" android:gravity="center"
@@ -59,7 +58,17 @@
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:layout_constraintLeft_toRightOf="@id/tv_refuse" app:layout_constraintLeft_toRightOf="@id/tv_refuse"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_message" /> app:layout_constraintBottom_toBottomOf="@id/guide_view" />
<Space
android:id="@+id/guide_view"
android:layout_width="1dp"
android:layout_height="1dp"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/tv_message"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="64dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@@ -9,6 +9,10 @@
android:paddingLeft="@dimen/dp_8" android:paddingLeft="@dimen/dp_8"
android:paddingTop="6dp" android:paddingTop="6dp"
android:paddingRight="@dimen/dp_8" android:paddingRight="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_6"
android:layout_marginBottom="@dimen/dp_6"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
android:paddingBottom="6dp"> android:paddingBottom="6dp">
<com.yizhuan.erban.common.widget.CircleImageView <com.yizhuan.erban.common.widget.CircleImageView

View File

@@ -56,8 +56,8 @@
android:layout_marginTop="@dimen/dp_6" android:layout_marginTop="@dimen/dp_6"
android:background="@drawable/bg_cp_text_perpule" android:background="@drawable/bg_cp_text_perpule"
android:ellipsize="end" android:ellipsize="end"
android:paddingLeft="@dimen/dp_16" android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_16" android:paddingRight="@dimen/dp_6"
android:layout_marginLeft="@dimen/dp_4" android:layout_marginLeft="@dimen/dp_4"
android:singleLine="true" android:singleLine="true"
android:text="@{inviteData==null?cpEntity.nick:inviteData.inviteNick}" android:text="@{inviteData==null?cpEntity.nick:inviteData.inviteNick}"
@@ -137,8 +137,8 @@
android:layout_marginTop="@dimen/dp_6" android:layout_marginTop="@dimen/dp_6"
android:background="@drawable/bg_cp_text_perpule" android:background="@drawable/bg_cp_text_perpule"
android:ellipsize="end" android:ellipsize="end"
android:paddingLeft="@dimen/dp_16" android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_16" android:paddingRight="@dimen/dp_6"
android:singleLine="true" android:singleLine="true"
android:text="@{inviteData==null?(cpEntity.cpUid==0?@string/invite_cp:cpEntity.cpNick):inviteData.acceptNick}" android:text="@{inviteData==null?(cpEntity.cpUid==0?@string/invite_cp:cpEntity.cpNick):inviteData.acceptNick}"
android:textColor="@color/white" android:textColor="@color/white"

View File

@@ -931,4 +931,5 @@
<string name="invite_cp_state_refused">已拒绝</string> <string name="invite_cp_state_refused">已拒绝</string>
<string name="invite_cp_state_unbinding">解绑中</string> <string name="invite_cp_state_unbinding">解绑中</string>
<string name="invite_cp_state_unbound">已解绑</string> <string name="invite_cp_state_unbound">已解绑</string>
<string name="invite_cp_state_visit">查看</string>
</resources> </resources>

View File

@@ -198,4 +198,19 @@ public class RouterType {
*/ */
public static final int VIP_MAIN = 54; public static final int VIP_MAIN = 54;
/**
* Cp邀请
*/
public static final int CP_INVITE = 62;
/**
* Cp关系任务
*/
public static final int CP_TASK = 61;
/**
* CP头饰
*/
public static final int CP_HEAD_WARE = 63;
} }

View File

@@ -1,14 +1,14 @@
package com.yizhuan.xchat_android_core.relation.cp package com.yizhuan.xchat_android_core.relation.cp
data class UserCpListEntity( data class UserCpListEntity(
val acceptUid: Int, val acceptUid: Long,
val acceptUserAvatar: String?, val acceptUserAvatar: String?,
val acceptUserNick: String, val acceptUserNick: String,
val acceptUserSex: Int,//1-男 2女 val acceptUserSex: Int,//1-男 2女
val createTime: String, val createTime: String,
val declaration: String,//关系誓言 val declaration: String,//关系誓言
val id: Int,//邀请记录id val id: Int,//邀请记录id
val inviteUid: Int,//邀请人uid val inviteUid: Long,//邀请人uid
val inviteUserAvatar: String?,//邀请方头像 val inviteUserAvatar: String?,//邀请方头像
val inviteUserNick: String, val inviteUserNick: String,
val inviteUserSex: Int, val inviteUserSex: Int,