|
@@ -1,19 +1,38 @@
|
|
|
package com.cooleshow.teacher.ui.mine;
|
|
|
|
|
|
import android.graphics.Color;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.View;
|
|
|
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
|
|
+import com.cooleshow.base.constanst.Constants;
|
|
|
+import com.cooleshow.base.constanst.EVipType;
|
|
|
+import com.cooleshow.base.constanst.ExpireVipType;
|
|
|
import com.cooleshow.base.router.RouterPath;
|
|
|
import com.cooleshow.base.ui.activity.BaseMVPActivity;
|
|
|
+import com.cooleshow.base.utils.DateUtil;
|
|
|
+import com.cooleshow.base.utils.GlideImageLoaderUtils;
|
|
|
+import com.cooleshow.base.utils.TimeUtils;
|
|
|
+import com.cooleshow.chatmodule.bean.IMUserInfo;
|
|
|
+import com.cooleshow.chatmodule.utils.helper.ChatHelper;
|
|
|
import com.cooleshow.teacher.R;
|
|
|
+import com.cooleshow.teacher.contract.UserDetailContract;
|
|
|
import com.cooleshow.teacher.databinding.AcUserDetailLayoutBinding;
|
|
|
import com.cooleshow.teacher.presenter.mine.LookUserDetailPresenter;
|
|
|
+import com.cooleshow.usercenter.bean.TeacherUserInfo;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
* Author by pq, Date on 2024/7/22.
|
|
|
*/
|
|
|
@Route(path = RouterPath.MineCenter.LOOK_USER_DETAIL)
|
|
|
-public class UserDetailActivity extends BaseMVPActivity<AcUserDetailLayoutBinding, LookUserDetailPresenter> {
|
|
|
+public class UserDetailActivity extends BaseMVPActivity<AcUserDetailLayoutBinding, LookUserDetailPresenter> implements UserDetailContract.View {
|
|
|
+ public static final String VIP_STATUS_NOT_OPEN = "not_open";
|
|
|
+ public static final String VIP_STATUS_NORMAL = "isOpen";
|
|
|
+ public static final String VIP_STATUS_EXPIRE = "vip_expire";
|
|
|
+ private String mTargetUserId;
|
|
|
+
|
|
|
@Override
|
|
|
protected void initView() {
|
|
|
initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "");
|
|
@@ -21,6 +40,29 @@ public class UserDetailActivity extends BaseMVPActivity<AcUserDetailLayoutBindin
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void initData() {
|
|
|
+ super.initData();
|
|
|
+ mTargetUserId = getIntent().getStringExtra("targetUserId");
|
|
|
+ if (TextUtils.isEmpty(mTargetUserId)) {
|
|
|
+ finish();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ viewBinding.tvSendMsg.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ ChatHelper.getInstance().goChat(mTargetUserId, "");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ presenter.queryFriendDetail(mTargetUserId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
protected AcUserDetailLayoutBinding getLayoutView() {
|
|
|
return AcUserDetailLayoutBinding.inflate(getLayoutInflater());
|
|
|
}
|
|
@@ -30,14 +72,118 @@ public class UserDetailActivity extends BaseMVPActivity<AcUserDetailLayoutBindin
|
|
|
return new LookUserDetailPresenter();
|
|
|
}
|
|
|
|
|
|
- public void updateStyle() {
|
|
|
- boolean issvip = false;
|
|
|
+ public void updateStyle(IMUserInfo info) {
|
|
|
+ if (viewBinding == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //名称
|
|
|
+ viewBinding.tvName.setText(info.getFriendNickname());
|
|
|
+ boolean isStudent = TextUtils.equals(info.getFriendType(), "STUDENT");
|
|
|
+ viewBinding.ivUserTag.setImageResource(isStudent ? R.drawable.icon_student_tag2 : R.drawable.icon_teacher_tag2);
|
|
|
+ //头像
|
|
|
+ GlideImageLoaderUtils.getInstance().loadImage(this, info.getFriendAvatar(), viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
|
|
|
+
|
|
|
+ //id
|
|
|
+ viewBinding.tvUserIdValue.setText(info.getFriendId());
|
|
|
+
|
|
|
+ if (!TextUtils.isEmpty(info.getFriendGender()) && TextUtils.equals(info.getFriendGender(), "0")) {
|
|
|
+ //女
|
|
|
+ viewBinding.tvSexValue.setText("女");
|
|
|
+ } else {
|
|
|
+ //男
|
|
|
+ viewBinding.tvSexValue.setText("男");
|
|
|
+ }
|
|
|
+
|
|
|
+ //出生年月日
|
|
|
+ Date date = TimeUtils.string2Date(info.getFriendBirthdate());
|
|
|
+ String s = TimeUtils.date2String(date, TimeUtils.getSafeDateFormatForDay());
|
|
|
+ viewBinding.tvBirthdayValue.setText(s);
|
|
|
+ //声部
|
|
|
+ viewBinding.tvSubjectValue.setText(info.getFriendSubjectName());
|
|
|
+
|
|
|
+ //vip
|
|
|
+ handleVipStyle(info);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void handleVipStyle(IMUserInfo userInfo) {
|
|
|
+ //svip
|
|
|
+ String[] svipStatusAndTip = getVipStatusAndTip(userInfo.getUserVip(), EVipType.SVIP.getId());
|
|
|
+ boolean issvip = TextUtils.equals(svipStatusAndTip[0], VIP_STATUS_NORMAL);
|
|
|
int svipDrawable = issvip ? com.cooleshow.base.R.drawable.icon_mine_svip_star : com.cooleshow.base.R.drawable.icon_mine_svip_star_disable;
|
|
|
- int vipDrawable = issvip ? com.cooleshow.base.R.drawable.icon_mine_vip_star : com.cooleshow.base.R.drawable.icon_mine_vip_star_disable;
|
|
|
viewBinding.tvSvipTitle.setCompoundDrawablesWithIntrinsicBounds(svipDrawable, 0, 0, 0);
|
|
|
+ viewBinding.tvSvipValue.setText(svipStatusAndTip[1]);
|
|
|
+ viewBinding.tvSvipValue.setTextColor(getResources().getColor(issvip ? com.cooleshow.base.R.color.color_ff623a : com.cooleshow.base.R.color.color_aaaaaa));
|
|
|
+
|
|
|
+ //vip
|
|
|
+ String[] vipStatusAndTip = getVipStatusAndTip(userInfo.getUserVip(), EVipType.VIP.getId());
|
|
|
+ boolean isVip = TextUtils.equals(vipStatusAndTip[0], VIP_STATUS_NORMAL);
|
|
|
+ int vipDrawable = isVip ? com.cooleshow.base.R.drawable.icon_mine_vip_star : com.cooleshow.base.R.drawable.icon_mine_vip_star_disable;
|
|
|
viewBinding.tvVipTitle.setCompoundDrawablesWithIntrinsicBounds(vipDrawable, 0, 0, 0);
|
|
|
+ viewBinding.tvVipValue.setText(vipStatusAndTip[1]);
|
|
|
+ viewBinding.tvVipValue.setTextColor(getResources().getColor(isVip ? com.cooleshow.base.R.color.color_ff623a : com.cooleshow.base.R.color.color_aaaaaa));
|
|
|
+ }
|
|
|
|
|
|
- boolean isStudent = false;
|
|
|
- viewBinding.ivUserTag.setImageResource(isStudent ? R.drawable.icon_student_tag2 : R.drawable.icon_teacher_tag2);
|
|
|
+ private String[] getVipStatusAndTip(IMUserInfo.VipBean userVip, String target) {
|
|
|
+ String[] results = new String[2];
|
|
|
+ try {
|
|
|
+ EVipType eVipType;
|
|
|
+ if (userVip == null || TextUtils.isEmpty(userVip.getVipType())) {
|
|
|
+ eVipType = EVipType.NOT_VIP;
|
|
|
+ } else {
|
|
|
+ eVipType = EVipType.valueOf(userVip.getVipType());
|
|
|
+ }
|
|
|
+ if (eVipType == EVipType.NOT_VIP) {
|
|
|
+ //非会员
|
|
|
+ if (userVip != null && !TextUtils.isEmpty(userVip.getExpireVipType())) {
|
|
|
+ //过期
|
|
|
+ results[0] = VIP_STATUS_EXPIRE;
|
|
|
+ results[1] = "暂未开通";
|
|
|
+ if (TextUtils.equals(userVip.getExpireVipType(), ExpireVipType.ALL_VIP.getId())) {
|
|
|
+ results[1] = "已过期%s天";
|
|
|
+ }
|
|
|
+ if (TextUtils.equals(userVip.getExpireVipType(), target)) {
|
|
|
+ results[1] = String.format("已过期%s天", getExpireDaysTip(target, userVip));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //未开通会员
|
|
|
+ results[0] = VIP_STATUS_NOT_OPEN;
|
|
|
+ results[1] = "暂未开通";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //会员
|
|
|
+ results[0] = VIP_STATUS_NORMAL;
|
|
|
+ boolean isPermanentVip = eVipType == EVipType.PERMANENT_SVIP;
|
|
|
+ if (isPermanentVip) {
|
|
|
+ results[1] = "永久有效";
|
|
|
+ } else {
|
|
|
+ results[1] = String.format("剩余%s天", getDaysTip(target, userVip));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return results;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getDaysTip(String target, IMUserInfo.VipBean userVip) {
|
|
|
+ if (TextUtils.equals(target, EVipType.SVIP.getId())) {
|
|
|
+ return userVip.getSvipEndDays();
|
|
|
+ }
|
|
|
+ return userVip.getVipEndDays();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getExpireDaysTip(String target, IMUserInfo.VipBean userVip) {
|
|
|
+ if (TextUtils.equals(target, EVipType.SVIP.getId())) {
|
|
|
+ return userVip.getSvipExpireDays();
|
|
|
+ }
|
|
|
+ return userVip.getVipExpireDays();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void queryFriendDetailSuccess(IMUserInfo data) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ updateStyle(data);
|
|
|
}
|
|
|
}
|