心动空间
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
package com.xscm.modulemain.activity.user.activity
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.xscm.modulemain.BaseMvpActivity
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.activity.user.conacts.HeartCpContact
|
||||
import com.xscm.modulemain.activity.user.presenter.HeartCpPresenter
|
||||
import com.xscm.modulemain.adapter.ItemCpHeartAdapter
|
||||
import com.xscm.modulemain.databinding.ActivityHeartCpBinding
|
||||
import com.xscm.moduleutil.bean.HeartCpBean
|
||||
import com.xscm.moduleutil.utils.ARouteConstants
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
import com.xscm.moduleutil.utils.TimeUtils
|
||||
|
||||
class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding>(),
|
||||
HeartCpContact.View {
|
||||
|
||||
|
||||
private var adapter: ItemCpHeartAdapter? = null
|
||||
|
||||
private var dataList: MutableList<HeartCpBean.GiftLog>? = arrayListOf()
|
||||
|
||||
private var mHeartData: HeartCpBean? = null
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.activity_heart_cp
|
||||
}
|
||||
|
||||
override fun bindPresenter(): HeartCpPresenter {
|
||||
return HeartCpPresenter(this, this)
|
||||
}
|
||||
|
||||
private var userId: Int = 0
|
||||
|
||||
private var leftUserId: Int = 0
|
||||
private var rightUserId: Int = 0
|
||||
|
||||
override fun doDone() {
|
||||
super.doDone()
|
||||
userId = intent.getIntExtra("userId", 0)
|
||||
}
|
||||
|
||||
|
||||
override fun initData() {
|
||||
MvpPre.getHeartCpData(userId)
|
||||
|
||||
mBinding.ivBack.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
mBinding.ivHelp.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
mBinding.ivHeadLeft.setOnClickListener {
|
||||
if (mHeartData == null || leftUserId == 0)
|
||||
return@setOnClickListener
|
||||
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE)
|
||||
.withString("userId", leftUserId.toString()).navigation();
|
||||
finish()
|
||||
}
|
||||
|
||||
mBinding.ivHeadRight.setOnClickListener {
|
||||
if (mHeartData == null || rightUserId == 0)
|
||||
return@setOnClickListener
|
||||
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE)
|
||||
.withString("userId", rightUserId.toString()).navigation()
|
||||
finish()
|
||||
}
|
||||
|
||||
adapter?.setOnItemClickListener { adapter, view, position ->
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE)
|
||||
.withString("userId", mHeartData?.gift_log!![position].from_user_id.toString())
|
||||
.navigation();
|
||||
finish()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
super.initView()
|
||||
adapter = ItemCpHeartAdapter(this, userId, R.layout.item_heart_cp_layout, dataList)
|
||||
mBinding.recycleView.adapter = adapter
|
||||
}
|
||||
|
||||
|
||||
override fun getHeartCpData(heartCpBean: HeartCpBean?) {
|
||||
if (heartCpBean == null) {
|
||||
return
|
||||
}
|
||||
mHeartData = heartCpBean
|
||||
|
||||
if (userId == heartCpBean.user_id1) {
|
||||
ImageUtils.loadHead(heartCpBean.user_info1.avatar, mBinding.ivHeadLeft)
|
||||
ImageUtils.loadHead(heartCpBean.user_info2.avatar, mBinding.ivHeadRight)
|
||||
leftUserId = heartCpBean.user_id1
|
||||
rightUserId = heartCpBean.user_id2
|
||||
} else {
|
||||
ImageUtils.loadHead(heartCpBean.user_info2.avatar, mBinding.ivHeadLeft)
|
||||
ImageUtils.loadHead(heartCpBean.user_info1.avatar, mBinding.ivHeadRight)
|
||||
leftUserId = heartCpBean.user_id2
|
||||
rightUserId = heartCpBean.user_id1
|
||||
}
|
||||
|
||||
mBinding.cpAnim.setSource(heartCpBean.pendant, 1)
|
||||
|
||||
val xd = heartCpBean.next_level_exp
|
||||
if (xd >= 10000) {
|
||||
mBinding.tvExperience.text = String.format("%.0fw", xd / 10000.0f)
|
||||
} else {
|
||||
mBinding.tvExperience.text = xd.toString()
|
||||
}
|
||||
|
||||
adapter?.setNewData(heartCpBean.gift_log)
|
||||
|
||||
val day = TimeUtils.formatDurationDaysOnly(
|
||||
heartCpBean.createtime * 1000 - System.currentTimeMillis()
|
||||
)
|
||||
|
||||
mBinding.tvHeartTime.text = "我们在一起${day}啦"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.xscm.modulemain.activity.user.conacts
|
||||
|
||||
import android.app.Activity
|
||||
import com.xscm.moduleutil.activity.IPresenter
|
||||
import com.xscm.moduleutil.activity.IView
|
||||
import com.xscm.moduleutil.bean.HeartCpBean
|
||||
|
||||
class HeartCpContact {
|
||||
|
||||
interface View : IView<Activity>{
|
||||
fun getHeartCpData(heartCpBean: HeartCpBean?)
|
||||
}
|
||||
|
||||
interface IPre : IPresenter {
|
||||
|
||||
fun getHeartCpData(userId: Int)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,22 +19,20 @@ import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.blankj.utilcode.util.ActivityUtils;
|
||||
import com.google.android.flexbox.FlexboxLayout;
|
||||
import com.xscm.modulemain.Application;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.user.activity.GiftWallActivity;
|
||||
import com.xscm.modulemain.activity.user.activity.ui.main.BosomFriendFragment;
|
||||
import com.xscm.modulemain.databinding.FragmentUserHompageBinding;
|
||||
import com.tencent.imsdk.v2.V2TIMConversation;
|
||||
import com.tencent.qcloud.tuicore.TUIConstants;
|
||||
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
|
||||
import com.xscm.modulemain.Application;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.user.activity.GiftWallActivity;
|
||||
import com.xscm.modulemain.activity.user.activity.HeartCpActivity;
|
||||
import com.xscm.modulemain.activity.user.activity.ui.main.BosomFriendFragment;
|
||||
import com.xscm.modulemain.activity.user.conacts.UserHomepageConacts;
|
||||
import com.xscm.modulemain.activity.user.presenter.UserHomepagePresenter;
|
||||
import com.xscm.modulemain.databinding.FragmentUserHompageBinding;
|
||||
import com.xscm.modulemain.manager.RoomManager;
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||
import com.xscm.moduleutil.bean.CircleListBean;
|
||||
@@ -44,7 +42,6 @@ import com.xscm.moduleutil.bean.RelationshipBean;
|
||||
import com.xscm.moduleutil.bean.UserInfo;
|
||||
import com.xscm.moduleutil.bean.UserTagBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
@@ -236,6 +233,16 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
|
||||
if (userInfo.getCp_info() != null) {
|
||||
mBinding.headerInfo.llCp.setVisibility(VISIBLE);
|
||||
mBinding.headerInfo.rlCpAnim.setVisibility(VISIBLE);
|
||||
|
||||
mBinding.headerInfo.llCp.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(ActivityUtils.getTopActivity(), HeartCpActivity.class);
|
||||
intent.putExtra("userId",userInfo.getUser_id());
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info1.avatar, mBinding.headerInfo.userNav1);
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.headerInfo.userNav2);
|
||||
mBinding.headerInfo.tvNickname1.setText(userInfo.getCp_info().user_info1.nickname);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.xscm.modulemain.activity.user.presenter
|
||||
|
||||
import android.content.Context
|
||||
import com.xscm.modulemain.activity.user.conacts.HeartCpContact
|
||||
import com.xscm.moduleutil.bean.HeartCpBean
|
||||
import com.xscm.moduleutil.http.BaseObserver
|
||||
import com.xscm.moduleutil.presenter.BasePresenter
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class HeartCpPresenter(view: HeartCpContact.View, context: Context) :
|
||||
BasePresenter<HeartCpContact.View>(view, context), HeartCpContact.IPre {
|
||||
override fun getHeartCpData(userId: Int) {
|
||||
api.getCpRoom(userId.toString(), object : BaseObserver<HeartCpBean>() {
|
||||
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
|
||||
override fun onNext(t: HeartCpBean) {
|
||||
if (MvpRef == null) {
|
||||
MvpRef = WeakReference(view);
|
||||
}
|
||||
MvpRef.get()?.getHeartCpData(t)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.xscm.modulemain.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.SpannedString
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.widget.TextView
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.moduleutil.bean.HeartCpBean
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
import com.xscm.moduleutil.utils.TimeUtils
|
||||
|
||||
|
||||
class ItemCpHeartAdapter(
|
||||
val context: Context,
|
||||
val userId: Int,
|
||||
layoutId: Int,
|
||||
data: MutableList<HeartCpBean.GiftLog>?
|
||||
) :
|
||||
BaseQuickAdapter<HeartCpBean.GiftLog, BaseViewHolder>(layoutId, data) {
|
||||
override fun convert(helper: BaseViewHolder, item: HeartCpBean.GiftLog) {
|
||||
|
||||
ImageUtils.loadHead(item.from_user_info.avatar, helper.getView(R.id.iv_head))
|
||||
helper.setText(R.id.tv_name, item.from_user_info.nickname)
|
||||
helper.setText(R.id.tv_time, TimeUtils.getDateToStringNoZ(item.createtime))
|
||||
|
||||
val tv = helper.getView(R.id.tv_name) as TextView
|
||||
|
||||
val cid = if (userId == item.from_user_id) {
|
||||
tv.setTextColor(context.getColor(R.color.ffff53cc))
|
||||
R.color.ffff53cc
|
||||
} else {
|
||||
tv.setTextColor(context.getColor(R.color.ff4a89ff))
|
||||
R.color.ff4a89ff
|
||||
}
|
||||
if (item.remark.contains(userId.toString())) {
|
||||
val builder = getContentColor(item.from_user_info.nickname, item.remark, cid)
|
||||
helper.setText(R.id.tv_content, builder)
|
||||
} else {
|
||||
helper.setText(R.id.tv_content, item.remark)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getContentColor(
|
||||
userName: String,
|
||||
content: String,
|
||||
cid: Int
|
||||
): SpannableStringBuilder {
|
||||
val builder = SpannableStringBuilder()
|
||||
val start = content.indexOf(userName)
|
||||
val end = start + userName.length
|
||||
builder.append(content)
|
||||
val colorSpan = ForegroundColorSpan(context.getColor(cid))
|
||||
builder.setSpan(colorSpan, start, end, SpannedString.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
return builder
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,11 +24,13 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.blankj.utilcode.util.ActivityUtils;
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.xscm.modulemain.Application;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.room.contacts.RoomUserContacts;
|
||||
import com.xscm.modulemain.activity.user.activity.GiftWallActivity;
|
||||
import com.xscm.modulemain.activity.user.activity.HeartCpActivity;
|
||||
import com.xscm.modulemain.databinding.FragmentRoomUserInfoBinding;
|
||||
import com.xscm.modulemain.activity.room.fragment.RelationshipFragment;
|
||||
import com.xscm.modulemain.activity.room.presenter.RoomUserPresenter;
|
||||
@@ -233,8 +235,8 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
MvpPre.addBlackList(user_id);
|
||||
} else if (id == R.id.room_rl_gift) {
|
||||
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", userInfo.getUser_id() + "").withInt("type", 1).navigation();
|
||||
Intent intent=new Intent(getContext(), GiftWallActivity.class);
|
||||
intent.putExtra("userId",userInfo.getUser_id());
|
||||
Intent intent = new Intent(getContext(), GiftWallActivity.class);
|
||||
intent.putExtra("userId", userInfo.getUser_id());
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.room_jb) {
|
||||
Intent intent = new Intent(getActivity(), WebViewActivity.class);
|
||||
@@ -477,7 +479,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
if (userInfo.getGuild().isEmpty()) {
|
||||
mBinding.tvGh.setText("所属公会:无");
|
||||
} else {
|
||||
if (userInfo.getUser_id() != SpUtil.getUserId() && !userInfo.getGuild().equals(SpUtil.getUserInfo().getGuild())){
|
||||
if (userInfo.getUser_id() != SpUtil.getUserId() && !userInfo.getGuild().equals(SpUtil.getUserInfo().getGuild())) {
|
||||
mBinding.tvJoinGuild.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
@@ -505,6 +507,16 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
private void showCp() {
|
||||
if (userInfo.getCp_info() != null) {
|
||||
mBinding.ll.setVisibility(VISIBLE);
|
||||
|
||||
mBinding.ll.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(ActivityUtils.getTopActivity(), HeartCpActivity.class);
|
||||
intent.putExtra("userId",userInfo.getUser_id());
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info1.avatar, mBinding.userNav1);
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.userNav2);
|
||||
mBinding.tvNickname1.setText(userInfo.getCp_info().user_info1.nickname);
|
||||
@@ -514,22 +526,22 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
long xd = Long.parseLong(userInfo.getCp_info().exp);
|
||||
|
||||
if (xd >= 10000) {
|
||||
mBinding.tvCpNum.setText(String.format("%.2fw", xd / 10000.0f));
|
||||
mBinding.tvCpNum.setText(String.format("%.1fw", xd / 10000.0f));
|
||||
} else {
|
||||
mBinding.tvCpNum.setText(String.valueOf(xd));
|
||||
}
|
||||
|
||||
mBinding.cpAnim.setSource(userInfo.getCp_info().pendant, 1);
|
||||
|
||||
if (userInfo.getProfile().isEmpty()){
|
||||
if (userInfo.getProfile().isEmpty()) {
|
||||
mBinding.jianj.setText("");
|
||||
mBinding.jianj.setVisibility(GONE);
|
||||
}else {
|
||||
} else {
|
||||
mBinding.jianj.setText(userInfo.getProfile());
|
||||
mBinding.jianj.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
if (!userInfo.getIcon().isEmpty()){
|
||||
if (!userInfo.getIcon().isEmpty()) {
|
||||
mBinding.flexEntry.setVisibility(VISIBLE);
|
||||
for (String url : userInfo.getIcon()) {
|
||||
if (url.contains("http")) {
|
||||
@@ -538,21 +550,20 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||
Application.getInstance().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_20)
|
||||
);
|
||||
params.setMargins(0, 0,Application.getInstance().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
params.setMargins(0, 0, Application.getInstance().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.FIT_START);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1,params);
|
||||
ImageUtils.loadHeadCC(url, imageView1, params);
|
||||
mBinding.flexEntry.addView(imageView1);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
mBinding.flexEntry.setVisibility(GONE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info1.avatar, mBinding.ivCp1);
|
||||
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.ivCp2);
|
||||
ConstraintLayout.LayoutParams params = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT,
|
||||
|
||||
Reference in New Issue
Block a user