心动空间

This commit is contained in:
2025-11-22 18:38:49 +08:00
parent 5eac6d302c
commit 2a6d2e4709
45 changed files with 972 additions and 251 deletions

View File

@@ -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}"
}
}

View File

@@ -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)
}
}

View File

@@ -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);

View File

@@ -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)
}
})
}
}