feat: 修改 cp 相关bug

This commit is contained in:
eggmanQQQ
2024-09-24 18:18:53 +08:00
parent eabe2ae7f8
commit 343e73c6e3
31 changed files with 504 additions and 140 deletions

View File

@@ -10,6 +10,7 @@ import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -38,6 +39,7 @@ import com.chwl.core.decoration.headwear.bean.HeadWearInfo;
import com.example.lib_utils.UiUtils;
import com.google.android.material.appbar.AppBarLayout;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nim.uikit.common.util.sys.TimeUtil;
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
import com.netease.nimlib.sdk.RequestCallbackWrapper;
@@ -114,10 +116,10 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private int flag = 0;
private LinearLayout bottomViewLayout = null;
private TextView sendMsgLayout;
private TextView attentionLayout;
private ImageView ivOfficialMask;
private TextView tvOfficialMask;
private LinearLayout sendMsgLayout;
private LinearLayout attentionLayout;
private TextView attentionText;
private ImageView attentionImg;
private UserInfoViewModel viewModel;
private boolean isFirst = true;
@@ -176,6 +178,8 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
bottomViewLayout = view.findViewById(R.id.bottom_view_layout);
sendMsgLayout = view.findViewById(R.id.sendMsgLayout);
attentionLayout = view.findViewById(R.id.attentionLayout);
attentionText = view.findViewById(R.id.attentionText);
attentionImg = view.findViewById(R.id.attentionImg);
sendMsgLayout.setOnClickListener(this);
attentionLayout.setOnClickListener(this);
}
@@ -277,8 +281,6 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private void onFindViews() {
mBinding.tbUserInfo.setTitle("");
ivOfficialMask = mBinding.inOfficialMask.findViewById(R.id.iv_official_mask);
tvOfficialMask = mBinding.inOfficialMask.findViewById(R.id.tv_official_mask);
mBinding.ivHeadWear.bindCache(SVGAView.newCache(1));
if (userId == AuthModel.get().getCurrentUid()) {
@@ -313,14 +315,12 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.tvFollowCount.setText(String.valueOf(userInfo.getFollowNum()));
mBinding.tvErbanId.setText(String.valueOf(userInfo.getErbanNo()));
if (userInfo.isHasPrettyErbanNo()) {
mBinding.ivId.setVisibility(View.GONE);
mBinding.tvErbanId.setTextColor(ContextCompat.getColor(context, R.color.color_FEFFBF));
mBinding.tvErbanId.setTextColor(ContextCompat.getColor(context, R.color.white));
mBinding.tvErbanId.setBackgroundResource(R.drawable.user_info_bg_good_id);
setMarginTop(mBinding.layoutRegion, getResources().getDimensionPixelOffset(R.dimen.dp_5));
} else {
mBinding.tvErbanId.setTextColor(ContextCompat.getColor(context, R.color.white));
mBinding.tvErbanId.setBackgroundDrawable(null);
mBinding.ivId.setVisibility(View.VISIBLE);
setMarginTop(mBinding.layoutRegion, getResources().getDimensionPixelOffset(R.dimen.dp_8));
}
@@ -342,6 +342,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
setUserLevel(userInfo.getUserLevelVo());
//铭牌
setOfficialMask(userInfo.getNameplateWord(), userInfo.getNameplatePic());
if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
@@ -357,8 +358,10 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
//cp
private void setCpInfo(UserDetailInfo.DataBean dataBean) {
UserDetailInfo.DataBean.RelationUserVO cpInfo = dataBean.getRelationUserVO();
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty()){
if (cpInfo.showCpAvatar) {
//头像
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty() && cpInfo.showCpAvatar){
//cp 头像
mBinding.cpViews.setVisibility(View.VISIBLE);
mBinding.ivHeadWear.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.ivHeadWearCp.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
@@ -367,49 +370,49 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.ivUserHeadCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
});
}else {
mBinding.cpViews.setVisibility(View.INVISIBLE);
}
//cp 卡片
mBinding.cpCardDay.setText(cpInfo.cpDay + ""+ ResUtil.getString(R.string.days));
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatar, userInfo.getAvatar());
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatarCp, cpInfo.cpAvatar);
mBinding.cpCardUserHead.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.cpCardUserHeadCp.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.cpCardLevel.setImageResource(CpUtils.INSTANCE.getLevelImg(cpInfo.cpLevel));
mBinding.cpCardDay.setVisibility(cpInfo.cpDay > 0? View.VISIBLE : View.INVISIBLE);
mBinding.cpCardUserAvatarCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
});
mBinding.cpCardLevelEmpty.setVisibility(View.INVISIBLE);
mBinding.cpCardLevel.setVisibility(View.VISIBLE);
}else {
mBinding.cpViews.setVisibility(View.INVISIBLE);
mBinding.cpCardUserAvatarCp.setImageResource(R.drawable.ic_user_info_cp_def_avatar);
mBinding.cpCardLevelEmpty.setVisibility(View.VISIBLE);
mBinding.cpCardDay.setVisibility(View.INVISIBLE);
mBinding.cpCardLevel.setVisibility(View.INVISIBLE);
mBinding.cpCardUserHead.setVisibility(View.INVISIBLE);
mBinding.cpCardUserHeadCp.setVisibility(View.INVISIBLE);
//正常头像
HeadWearInfo headWearInfo = userInfo.getUserHeadwear();
if (headWearInfo != null && headWearInfo.getFirstUrl() != null) {
AvatarHelper.loadAvatarFrame(mBinding.ivHeadWear, headWearInfo.getFirstUrl(), headWearInfo.getType());
mBinding.ivUserHead.setPadding(0, 0, 0, 0);
mBinding.ivUserHead.setStrokeWidth(0);
mBinding.ivHeadWear.setVisibility(View.VISIBLE);
} else {
int padding = getResources().getDimensionPixelOffset(R.dimen.dp_0_5);
mBinding.ivUserHead.setPadding(padding, padding, padding, padding);
mBinding.ivUserHead.setStrokeWidth(getResources().getDimensionPixelOffset(R.dimen.dp_1));
mBinding.cpViews.setVisibility(View.INVISIBLE);
mBinding.ivHeadWear.setVisibility(View.INVISIBLE);
}
}
//cp 卡片
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty()) {
mBinding.cpCardDay.setText(cpInfo.cpDay + ""+ ResUtil.getString(R.string.days));
mBinding.cpCardDay.setVisibility(cpInfo.cpDay > 0? View.VISIBLE : View.INVISIBLE);
mBinding.cpCardLevel.setImageResource(CpUtils.INSTANCE.getLevelImg(cpInfo.cpLevel));
mBinding.cpCardLevel.setVisibility(View.VISIBLE);
mBinding.cpCardLevelEmpty.setVisibility(View.INVISIBLE);
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatar, userInfo.getAvatar());
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatarCp, cpInfo.cpAvatar);
mBinding.cpCardUserHeadCp.setVisibility(View.VISIBLE);
mBinding.cpCardUserAvatarCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
});
}else {
mBinding.cpCardDay.setVisibility(View.INVISIBLE);
mBinding.cpCardLevelEmpty.setVisibility(View.VISIBLE);
mBinding.cpCardLevel.setVisibility(View.INVISIBLE);
mBinding.cpCardUserAvatarCp.setImageResource(R.drawable.ic_user_info_cp_def_avatar);
mBinding.cpCardUserAvatarCp.setOnClickListener(null);
mBinding.cpCardUserHeadCp.setVisibility(View.INVISIBLE);
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatar, userInfo.getAvatar());
}
//cp 动画
if (cpInfo != null && cpInfo.showCpAnim && isFirst) {
String animUrl = CpUtils.INSTANCE.getUserInfoAnim(cpInfo.cpLevel);
@@ -494,13 +497,26 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
.setOnPageClickListener((clickedView, position) -> {
showUserPhoto(position);
})
.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
try {
if (mBinding.bannerViewIndex.getTag() != null) {
int itemCount = (int) mBinding.bannerViewIndex.getTag();
mBinding.bannerViewIndex.setText((position+1)+"/"+itemCount);
}
} catch (Exception e) {
}
}
})
.setRTLMode(isRTL)
.setIndicatorHeight(width)
.setIndicatorGravity(isRTL ? IndicatorGravity.START : IndicatorGravity.END)
.setIndicatorSliderWidth(width, width * 2)
.setIndicatorSliderGap(context.getResources().getDimensionPixelOffset(R.dimen.dp_6))
.setIndicatorMargin(isRTL ? marginEnd : 0, 0, isRTL ? 0 : marginEnd, context.getResources().getDimensionPixelOffset(R.dimen.dp_71))
.setAdapter(adapter).create();
.setAdapter(adapter)
.create();
}
/**
@@ -509,8 +525,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private void initPhoto(List<UserDetailInfo.DataBean.PrivatePhotoBean> list) {
if (list == null) {
mBinding.bannerView.refreshData(new ArrayList());
mBinding.bannerViewIndex.setTag(0);
mBinding.bannerViewIndex.setVisibility(View.INVISIBLE);
} else {
mBinding.bannerView.refreshData(list);
mBinding.bannerViewIndex.setTag(list.size());
mBinding.bannerViewIndex.setText(1+"/"+list.size());
mBinding.bannerViewIndex.setVisibility(View.VISIBLE);
}
}
@@ -755,7 +776,8 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private void setLikedText(boolean isliked) {
mIslike = isliked;
attentionLayout.setBackgroundResource((isliked) ? R.drawable.user_info_follow_ed : R.drawable.user_info_follow_n);
attentionLayout.setText(getString((isliked) ? R.string.already_attention : R.string.follow));
attentionText.setText(getString((isliked) ? R.string.already_attention : R.string.follow));
attentionImg.setBackgroundResource((isliked) ? R.drawable.ic_user_info_followed : R.drawable.ic_user_info_follow);
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -774,13 +796,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
}
private void setOfficialMask(String name, String icon) {
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
if( userInfo.isCustomWord() && !TextUtils.isEmpty(icon)){
mBinding.inOfficialMask.setVisibility(View.VISIBLE);
if (tvOfficialMask != null && ivOfficialMask != null) {
tvOfficialMask.setText(name);
ImageLoadUtils.loadImage(this, icon, ivOfficialMask);
}
ImageLoadUtils.loadImage(this, icon, mBinding.ivOfficialMask);
}else if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
mBinding.inOfficialMask.setVisibility(View.VISIBLE);
mBinding.tvOfficialMask.setText(name);
ImageLoadUtils.loadImage(this, icon, mBinding.ivOfficialMask);
} else {
mBinding.inOfficialMask.setVisibility(View.GONE);
}

View File

@@ -2,6 +2,7 @@ package com.chwl.app.ui.user.adapter
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import com.chwl.app.R
import com.chwl.app.bindadapter.BaseAdapter
import com.chwl.app.bindadapter.BindingViewHolder
@@ -29,10 +30,6 @@ class UserCpListAdapter : BaseAdapter<UserCPListBean> {
ImageLoadUtils.loadImage(mViewBinding.userAvatar,data.avatar)
ImageLoadUtils.loadImage(mViewBinding.userAvatarCp,data.cpAvatar)
mViewBinding.userHead.loadFile(getHeadSvga(data.cpLevel))
mViewBinding.userHeadCp.loadFile(getHeadSvga(data.cpLevel))
val max = (data.endExp - data.startExp)
val current = (data.currentExp.toFloat() / max.toFloat()) * 100f
@@ -43,6 +40,7 @@ class UserCpListAdapter : BaseAdapter<UserCPListBean> {
mViewBinding.cpNeedVal.text = ResUtil.getString(R.string.CP_Need_tips,NumberUtils.format((data.endExp - data.currentExp)))
mViewBinding.cpDay.text = "${data.cpDay}${R.string.days.getString()}"
mViewBinding.cpDay.isVisible = data.cpDay > 0
helper.addOnClickListener(mViewBinding.cancel.id)

View File

@@ -22,7 +22,7 @@ import java.util.List;
public class UserInfoIndicatorAdapter extends CommonNavigatorAdapter {
private final List<? extends CharSequence> mTitleList;
private int textSize = 20;
private int textSize = 18;
private float minScale = 0.9f;
private boolean showIndicator = true;
private OnItemSelectListener mOnItemSelectListener;

View File

@@ -52,6 +52,7 @@ class UserInfoDataFragment : BaseViewBindingFragment<UserInfoDataFragmentBinding
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(false)
val magicIndicatorAdapter = UserInfoIndicatorAdapter(context, tagList)
magicIndicatorAdapter.textSize = 16
magicIndicatorAdapter.setOnItemSelectListener { position: Int, view: TextView? ->
binding.magicIndicator.onPageSelected(position)
onOtherTabChange(view?.text?.toString() ?: "")

View File

@@ -2,6 +2,7 @@ package com.chwl.app.ui.utils
import android.graphics.Bitmap
import android.view.View
import android.view.View.OnAttachStateChangeListener
import androidx.core.view.isVisible
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.load.engine.GlideException

View File

@@ -0,0 +1,22 @@
package com.chwl.app.ui.utils
import com.chwl.app.R
object VipUtil {
val vipIcons = arrayListOf(
R.drawable.vip_center_identification_vipidentity_lv1,
R.drawable.vip_center_identification_vipidentity_lv2,
R.drawable.vip_center_identification_vipidentity_lv3,
R.drawable.vip_center_identification_vipidentity_lv4,
R.drawable.vip_center_identification_vipidentity_lv5,
R.drawable.vip_center_identification_vipidentity_lv6,
R.drawable.vip_center_identification_vipidentity_lv7,
R.drawable.vip_center_identification_vipidentity_lv8,
R.drawable.vip_center_identification_vipidentity_lv9
)
fun getVipIcon(level: Int) {
vipIcons.getOrNull(level)?:R.drawable.vip_center_identification_vipidentity_lv1
}
}

View File

@@ -214,9 +214,7 @@ class BonsellaJoinAttackLayout @JvmOverloads constructor(
LogUtils.d(" GiftComboLayout onRoomCustomMsg " )
if (giftInfo==null) return
if (giftInfo.comboCount == 0) return
if (giftInfo.gift != null && giftInfo.gift.giftType != GiftType.GIFT_TYPE_NORMAL || giftInfo.gift.giftType != GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.gift.giftType != GiftType.GIFT_TYPE_LUCKY_24) {
return;
}
if (giftInfo.gift != null && giftInfo.gift.giftType == GiftType.GIFT_TYPE_NORMAL || giftInfo.gift.giftType == GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.gift.giftType == GiftType.GIFT_TYPE_LUCKY_24) {
val comboInfo = BonsellaJoinAttack().apply {
giftId = giftInfo.giftId
sentUserid = giftInfo.uid
@@ -231,6 +229,7 @@ class BonsellaJoinAttackLayout @JvmOverloads constructor(
}
add(comboInfo)
}
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()

View File

@@ -226,7 +226,11 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
it?.let {
// lifecycleScope.launch {
// delay(500)
banner?.postDelayed(object : Runnable {
override fun run() {
banner.setCurrentItem(it.vipLevel-1)
}
}, 200)
// }
if (it.ownAuthTypes?.contains(13) == true && mTitleBar.actionCount == 1) {
mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.ic_vip_setting) {
@@ -403,7 +407,6 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
}
if (it.buyAmount == 0) {
binding.tvNoticeText.visibility = View.VISIBLE
binding.tvAdditionalText.visibility = View.GONE
binding.tvOpenVip.visibility = View.GONE
binding.layoutOpenVip.visibility = View.GONE
binding.tvIcon.visibility = View.GONE
@@ -419,7 +422,6 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
}
binding.tvNoticeText.visibility = View.GONE
binding.tvAdditionalText.visibility = View.VISIBLE
binding.tvOpenVip.visibility = View.VISIBLE
binding.layoutOpenVip.visibility = View.VISIBLE
binding.tvIcon.visibility = View.VISIBLE
@@ -429,12 +431,7 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
)
}".also { binding.tvOpenVip.text = it }
val calendar = Calendar.getInstance()
calendar.add(Calendar.DAY_OF_YEAR, 30)
val dateFormat = SimpleDateFormat("yyyy/MM/dd 00:00", Locale.getDefault())
val formattedDate = dateFormat.format(calendar.time)
val result = "$formattedDate ${getString(R.string.vip_center_6)}"
binding.tvAdditionalText.text = result
}
}
}
@@ -455,12 +452,6 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
}".also { binding.tvOpenVip.text = it }
}
val calendar = Calendar.getInstance()
calendar.add(Calendar.DAY_OF_YEAR, 30)
val dateFormat = SimpleDateFormat("yyyy/MM/dd 00:00", Locale.getDefault())
val formattedDate = dateFormat.format(calendar.time)
val result = "$formattedDate ${getString(R.string.vip_center_6)}"
binding.tvAdditionalText.text = result
} else {
currentChargeInfo = null

View File

@@ -48,11 +48,14 @@ class VipCenterBannerAdapter(
holder.dueText.visibility = View.GONE
myVipInfo?.let {
if (it.vipLevel >= data.vipLevel) {
var result = getString(R.string.vip_center_8)
if (data.remainSeconds>0){
val calendar = Calendar.getInstance()
calendar.add(Calendar.SECOND, it.remainSeconds)
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
calendar.add(Calendar.SECOND, data.remainSeconds)
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
val formattedDate = dateFormat.format(calendar.time)
val result = "${getString(R.string.vip_center_2)}$formattedDate"
result = "${getString(R.string.vip_center_2)}$formattedDate"
}
holder.dueText.text = result
holder.dueText.visibility = View.VISIBLE
} else if (it.vipLevel < data.vipLevel) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#99000000"/>
<corners android:radius="253dp"/>
</shape>

View File

@@ -21,7 +21,7 @@
<item>
<shape>
<stroke
android:width="2dp"
android:width="1dp"
android:color="#1A4655" />
<corners android:radius="@dimen/dp_8" />
</shape>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <item>-->
<!-- <shape>-->
<!-- <padding android:top="2dp" android:right="2dp" android:left="2dp" android:bottom="2dp"/>-->
<!--&lt;!&ndash; <solid android:color="@color/color_08151a"/>&ndash;&gt;-->
<!-- <gradient android:startColor="#071A21" android:endColor="#0b222b" />-->
<!-- <corners android:radius="@dimen/dp_8" />-->
<!-- </shape>-->
<!-- </item>-->
<!-- <item>-->
<!-- <shape>-->
<!-- <solid android:color="@color/color_08151a"/>-->
<!-- <corners android:radius="@dimen/dp_8" />-->
<!-- </shape>-->
<!-- </item>-->
<item>
<shape>
<stroke
android:width="1dp"
android:color="#1A4655" />
<corners android:radius="@dimen/dp_8" />
<gradient android:startColor="#041921" android:endColor="#072834" android:angle="90"/>
</shape>
</item>
</layer-list>

View File

@@ -38,19 +38,30 @@
android:layout_height="@dimen/dp_256"
app:bvp_auto_play="true"
app:bvp_can_loop="true"
app:bvp_indicator_checked_color="#FFFFFF"
app:bvp_indicator_gravity="end"
app:bvp_indicator_normal_color="#4CFFFFFF"
app:bvp_indicator_slide_mode="scale"
app:bvp_indicator_style="round_rect"
app:bvp_indicator_visibility="visible"
app:bvp_indicator_visibility="gone"
app:bvp_interval="5000"
app:bvp_scroll_duration="500"
app:layout_constraintTop_toTopOf="parent"
tools:background="@drawable/default_banner" />
<TextView
android:id="@+id/bannerViewIndex"
android:textColor="#FFFCFC"
app:layout_constraintEnd_toEndOf="@id/userInfoLayout"
app:layout_constraintBottom_toTopOf="@id/userInfoLayout"
android:layout_marginBottom="@dimen/dp_9"
android:layout_marginEnd="@dimen/dp_9"
android:paddingHorizontal="@dimen/dp_7"
android:paddingVertical="@dimen/dp_2"
android:textSize="@dimen/sp_11"
tools:text="1/8"
android:background="@drawable/bg_user_info_banner_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/userInfoLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_57"
@@ -69,7 +80,6 @@
android:textColor="@color/white"
android:textSize="@dimen/sp_18"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/tvGenderAge"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -129,12 +139,6 @@
app:layout_constraintStart_toStartOf="@+id/tvNick"
app:layout_constraintTop_toBottomOf="@id/tvNick">
<ImageView
android:id="@+id/ivId"
android:layout_width="@dimen/dp_11"
android:layout_height="@dimen/dp_11"
android:layout_marginEnd="@dimen/dp_3"
android:src="@drawable/user_info_ic_id" />
<TextView
android:id="@+id/tvErbanId"
@@ -309,6 +313,7 @@
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:maxLines="1"
android:gravity="bottom"
android:text="0"
android:textColor="@color/white"
android:textSize="@dimen/sp_20"
@@ -461,7 +466,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Waiting_for_love"
android:textColor="@color/white"
android:textColor="@color/white_transparent_80"
app:layout_constraintEnd_toEndOf="@+id/cpCardHeart"
app:layout_constraintStart_toStartOf="@+id/cpCardHeart"
app:layout_constraintTop_toBottomOf="@+id/cpCardHeart" />
@@ -477,11 +482,12 @@
app:layout_constraintStart_toStartOf="@+id/cpCardUserHead"
app:layout_constraintTop_toTopOf="@+id/cpCardUserHead" />
<com.chwl.library.widget.SVGAView
<ImageView
android:id="@+id/cpCardUserHead"
android:layout_width="85dp"
android:layout_height="85dp"
android:layout_marginTop="-6dp"
android:src="@drawable/ic_user_info_cp_def_avatar_head"
app:layout_constraintEnd_toStartOf="@id/cpCardHeart"
app:layout_constraintTop_toTopOf="@id/cpCardHeart" />
@@ -496,10 +502,12 @@
app:layout_constraintStart_toStartOf="@+id/cpCardUserHeadCp"
app:layout_constraintTop_toTopOf="@+id/cpCardUserHeadCp" />
<com.chwl.library.widget.SVGAView
<ImageView
android:id="@+id/cpCardUserHeadCp"
android:layout_width="85dp"
android:layout_height="85dp"
android:visibility="invisible"
android:src="@drawable/ic_user_info_cp_def_avatar_head"
android:layout_marginTop="-6dp"
app:layout_constraintStart_toEndOf="@id/cpCardHeart"
app:layout_constraintTop_toTopOf="@id/cpCardHeart" />
@@ -510,19 +518,17 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- avatar -->
<com.google.android.material.imageview.ShapeableImageView
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/ivUserHead"
android:layout_width="@dimen/dp_82"
android:layout_height="@dimen/dp_82"
android:scaleType="centerCrop"
android:src="@drawable/default_avatar"
tools:src="@color/white"
app:layout_constraintBottom_toBottomOf="@+id/ivHeadWear"
app:layout_constraintEnd_toEndOf="@+id/ivHeadWear"
app:layout_constraintStart_toStartOf="@+id/ivHeadWear"
app:layout_constraintTop_toTopOf="@id/ivHeadWear"
app:shapeAppearance="@style/shape_circle"
app:strokeColor="@color/white"
app:strokeWidth="@dimen/dp_1" />
app:layout_constraintTop_toTopOf="@id/ivHeadWear" />
<com.chwl.library.widget.SVGAView
android:id="@+id/ivHeadWear"

View File

@@ -237,16 +237,7 @@
android:text="@string/vip_center_5"/>
</LinearLayout>
<TextView
android:id="@+id/tv_additional_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:gravity="start|center_vertical"
android:textColor="@color/color_FFE3AF"
android:textSize="@dimen/sp_11"
tools:text="Date to Expires"
android:text="@string/vip_center_6"/>
</LinearLayout>
<!-- 右侧按钮 -->

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
@@ -24,8 +25,9 @@
android:id="@+id/cpDay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-5dp"
android:layout_marginTop="-3dp"
android:textColor="@color/white"
tools:text="11111"
app:layout_constraintEnd_toEndOf="@+id/cp_heart"
app:layout_constraintStart_toStartOf="@+id/cp_heart"
app:layout_constraintTop_toTopOf="@+id/cp_heart" />
@@ -60,10 +62,11 @@
app:layout_constraintStart_toStartOf="@+id/userHead"
app:layout_constraintTop_toTopOf="@+id/userHead" />
<com.chwl.library.widget.SVGAView
<ImageView
android:id="@+id/userHead"
android:layout_width="85dp"
android:layout_height="85dp"
android:src="@drawable/ic_user_info_cp_def_avatar_head"
android:layout_marginTop="-6dp"
app:layout_constraintEnd_toStartOf="@id/cp_heart"
app:layout_constraintTop_toTopOf="@id/cp_heart" />
@@ -79,10 +82,11 @@
app:layout_constraintStart_toStartOf="@+id/userHeadCp"
app:layout_constraintTop_toTopOf="@+id/userHeadCp" />
<com.chwl.library.widget.SVGAView
<ImageView
android:id="@+id/userHeadCp"
android:layout_width="85dp"
android:layout_height="85dp"
android:src="@drawable/ic_user_info_cp_def_avatar_head"
android:layout_marginTop="-6dp"
app:layout_constraintStart_toEndOf="@id/cp_heart"
app:layout_constraintTop_toTopOf="@id/cp_heart" />
@@ -92,7 +96,7 @@
android:layout_width="26dp"
android:layout_height="23dp"
android:src="@drawable/ic_user_info_cp_cancel"
android:layout_marginTop="22dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -116,7 +120,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="12sp"
android:textColor="@color/white"
android:textColor="@color/white_transparent_80"
tools:text="111111"
app:layout_constraintEnd_toEndOf="@id/cpPro"
app:layout_constraintTop_toBottomOf="@id/cpPro" />
@@ -125,7 +130,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@color/white"
android:textColor="@color/white_transparent_80"
tools:text="111111"
android:layout_marginTop="4dp"
app:layout_constraintStart_toStartOf="@id/cpPro"
app:layout_constraintTop_toBottomOf="@id/cpPro" />

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottom_view_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -8,7 +9,7 @@
android:orientation="horizontal">
<com.chwl.library.widget.DrawableCenterTextView
<LinearLayout
android:id="@+id/attentionLayout"
android:layout_width="0dp"
android:layout_height="@dimen/dp_46"
@@ -20,9 +21,29 @@
android:text="@string/follow"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
android:textStyle="bold">
<com.chwl.library.widget.DrawableCenterTextView
<ImageView
android:id="@+id/attentionImg"
android:layout_width="@dimen/dp_27"
android:src="@drawable/ic_user_info_follow"
android:layout_marginEnd="@dimen/dp_3"
android:layout_height="@dimen/dp_27"/>
<TextView
android:id="@+id/attentionText"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_46"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/follow"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_16"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:id="@+id/sendMsgLayout"
android:layout_width="0dp"
android:layout_height="@dimen/dp_46"
@@ -31,9 +52,32 @@
android:layout_weight="1"
android:background="@drawable/base_shape_border_theme_23dp"
android:gravity="center"
android:drawableStart="@drawable/ic_user_info_send_msg"
android:drawablePadding="@dimen/dp_3"
android:text="@string/send_msg"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_16"
android:textStyle="bold" >
<ImageView
android:id="@+id/sendMsgImg"
android:layout_width="@dimen/dp_27"
android:src="@drawable/ic_user_info_send_msg"
android:layout_marginEnd="@dimen/dp_3"
android:layout_height="@dimen/dp_27"/>
<TextView
android:id="@+id/sendMsgText"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_46"
android:gravity="center"
android:drawablePadding="@dimen/dp_3"
android:text="@string/send_msg"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>

View File

@@ -78,6 +78,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_3"
android:text="(0)"
android:visibility="gone"
android:textColor="@color/white"
android:textSize="@dimen/dp_16"
android:textStyle="bold"
@@ -160,11 +161,16 @@
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@id/guildTitle" />
<ImageView
<com.makeramen.roundedimageview.RoundedImageView
app:riv_corner_radius="8dp"
app:circularflow_radiusInDP="8dp"
app:riv_border_color="#FFEEAC"
app:riv_border_width="1dp"
android:id="@+id/guildImg"
android:layout_width="@dimen/dp_61"
android:layout_height="@dimen/dp_61"
android:src="@drawable/default_avatar"
tools:src="@color/color_08151a"
android:layout_marginStart="@dimen/dp_12"
app:layout_constraintBottom_toBottomOf="@id/guildBg"
app:layout_constraintStart_toStartOf="@id/guildBg"
@@ -217,7 +223,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:layout_marginHorizontal="@dimen/dp_15"
android:background="@drawable/bg_user_info_medal_item"
android:background="@drawable/bg_user_info_medal_item_2"
android:orientation="vertical">
<com.chwl.app.ui.widget.magicindicator.MagicIndicator

View File

@@ -64,7 +64,6 @@
tools:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:paddingBottom="@dimen/dp_4"
android:textStyle="bold"
app:autoSizeStepGranularity="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -942,7 +942,7 @@
<string name="CP_Need_tips">تحتاج إلى %s للترقية</string>
<string name="Agent_ID">معرّف العميل</string>
<string name="Guild_ID">معرّف النقابة:</string>
<string name="Guild_ID">معرّف النقابة</string>
<string name="Guild_Nick">نيك النقابة</string>
<string name="CP_Cancel">هل أنت متأكد من أنك تريد إنفاق %s قطعة نقدية لإلغاء CP الخاص بك مع %s ؟</string>
<string name="charge_my_diamond">الكوينز الذهبية</string>

View File

@@ -955,9 +955,9 @@
<!--谷歌內購充值頁-->
<string name="CP_Need_tips">需要 %s升級</string>
<string name="Agent_ID">公會長 ID</string>
<string name="Guild_ID">公會 ID</string>
<string name="Guild_Nick">公會暱稱</string>
<string name="Agent_ID">公會長 ID</string>
<string name="Guild_ID">公會 ID</string>
<string name="Guild_Nick">公會暱稱</string>
<string name="CP_Cancel">您確定要花 %s 金幣來取消%s的 CP 嗎?</string>
<string name="charge_my_diamond">我的金幣</string>
<string name="charge_confirm_charge">確認充值</string>

View File

@@ -0,0 +1,10 @@
package com.chwl.core.contacts;
public @interface MyConstant {
public @interface MicType{
int open = 1;
int music =2;
int close = 3;
}
}

229
mode.json Normal file
View File

@@ -0,0 +1,229 @@
{
"code": 200,
"message": "success",
"data": {
"tabList": [
{
"key": "normalGift",
"nameMap": {
"ar": "عادي",
"en": "Normal",
"zh": "普通"
},
"seq": 1
},
{
"key": "luckyBagGift",
"nameMap": {
"ar": "صندوق الغموض",
"en": "Mystery Box",
"zh": "福袋"
},
"seq": 2
},
{
"key": "superLuckyGift",
"nameMap": {
"ar": "هدية الحظ",
"en": "Lucky",
"zh": "幸運"
},
"seq": 3
},
{
"key": "vipGift",
"nameMap": {
"ar": "كبار الشخصيات",
"en": "VIP",
"zh": "VIP"
},
"seq": 4
},
{
"key": "countryGift",
"nameMap": {
"ar": "دولة",
"en": "Country",
"zh": "國家"
},
"seq": 5
},
{
"key": "weekStarGift",
"nameMap": {
"ar": "نجم الأسبوع",
"en": "Weekly Star",
"zh": "周星"
},
"seq": 6
},
{
"key": "singlePopularGift",
"nameMap": {
"ar": "شعبية",
"en": "FM",
"zh": "人氣"
},
"seq": 7
},
{
"key": "cpGift",
"nameMap": {
"ar": "cp-ar",
"en": "cp-en",
"zh": "cp-zh"
},
"seq": 8
}
],
"giftTabMap": {
"countryGift": [],
"superLuckyGift": [
{
"giftId": 2265,
"giftName": "monik14",
"goldPrice": 20,
"giftUrl": "https://image.pekolive.com/FpHRJteaNhJrb-ZBvS3cweeZoPV4.png",
"nobleId": 0,
"isNobleGift": false,
"seqNo": -1900,
"giftType": 18,
"hasVggPic": false,
"vggUrl": null,
"hasLatest": false,
"hasTimeLimit": false,
"hasEffect": false,
"luckyGiftSvgaUrl": null,
"hasSvga": false,
"giftExplainUrl": null,
"otherViewType": 1,
"viewUrl": null,
"isWholeServer": false,
"isSkipRoom": false,
"isSendMsg": false,
"consumeType": 1,
"roomExclude": false,
"i18nGiftNameMap": {
"ar": "monik14",
"en": "monik14",
"zh": "monik14"
},
"bannerUrl": "https://image.molistar.xyz/super_gift_banner_zh.png",
"skipUrl": "https://api.molistar.xyz/molistar/activity/activemodel/index.html?code=cjxylwzh"
},
{
"giftId": 2264,
"giftName": "monik13",
"goldPrice": 10,
"giftUrl": "https://image.pekolive.com/11212.png",
"nobleId": 0,
"isNobleGift": false,
"seqNo": -1900,
"giftType": 18,
"hasVggPic": false,
"vggUrl": null,
"hasLatest": false,
"hasTimeLimit": false,
"hasEffect": false,
"luckyGiftSvgaUrl": null,
"hasSvga": false,
"giftExplainUrl": null,
"otherViewType": 1,
"viewUrl": null,
"isWholeServer": false,
"isSkipRoom": false,
"isSendMsg": false,
"consumeType": 1,
"roomExclude": false,
"i18nGiftNameMap": {
"ar": "monik13",
"en": "monik13",
"zh": "monik13"
},
"bannerUrl": "https://image.molistar.xyz/super_gift_banner_zh.png",
"skipUrl": "https://api.molistar.xyz/molistar/activity/activemodel/index.html?code=cjxylwzh"
},
{
"giftId": 2263,
"giftName": "monik12",
"goldPrice": 5,
"giftUrl": "https://image.pekolive.com/2233.png",
"nobleId": 0,
"isNobleGift": false,
"seqNo": -1900,
"giftType": 18,
"hasVggPic": false,
"vggUrl": null,
"hasLatest": false,
"hasTimeLimit": false,
"hasEffect": false,
"luckyGiftSvgaUrl": null,
"hasSvga": false,
"giftExplainUrl": null,
"otherViewType": 1,
"viewUrl": null,
"isWholeServer": false,
"isSkipRoom": false,
"isSendMsg": false,
"consumeType": 1,
"roomExclude": false,
"i18nGiftNameMap": {
"ar": "monik12",
"en": "monik12",
"zh": "monik12"
},
"bannerUrl": "https://image.molistar.xyz/super_gift_banner_zh.png",
"skipUrl": "https://api.molistar.xyz/molistar/activity/activemodel/index.html?code=cjxylwzh"
},
{
"giftId": 2227,
"giftName": "神燈",
"goldPrice": 100,
"giftUrl": "https://image.pekolive.com/shendeng.png",
"nobleId": 0,
"isNobleGift": false,
"seqNo": -100,
"giftType": 16,
"hasVggPic": false,
"vggUrl": "https://image.pekolive.com/shendeng.png",
"hasLatest": false,
"hasTimeLimit": false,
"hasEffect": false,
"luckyGiftSvgaUrl": null,
"hasSvga": false,
"giftExplainUrl": null,
"otherViewType": 0,
"viewUrl": null,
"isWholeServer": false,
"isSkipRoom": false,
"isSendMsg": false,
"consumeType": 1,
"roomExclude": false,
"i18nGiftNameMap": {
"ar": "مصباح سحري",
"en": "Magic lamp",
"zh": "神燈"
},
"bannerUrl": "https://image.molistar.xyz/super_gift_banner_zh.png",
"skipUrl": "https://api.molistar.xyz/molistar/activity/activemodel/index.html?code=cjxylwzh"
},
{
"giftId": 41,
"giftName": "魔力水晶鞋",
"goldPrice": 520,
"giftUrl": "https://image.lecheng163.com/FhyzfqLAxaDYXxxQLuYE93nppBVQ?imageslim",
"nobleId": 0,
"nobleName": "",
"isNobleGift": false,
"seqNo": 1,
"giftType": 16,
"hasVggPic": false,
"vggUrl": "https://image.hfighting.com/c566da03-a858-40d4-b94c-d16fdc9b1211",
"hasLatest": false,
"hasTimeLimit": false,
"hasEffect": false,
"luckyGiftSvgaUrl": null,
"hasSvga": false,
"giftExplainUrl": null,
"otherViewType": 0,
"viewUrl": "http://beta.img.pekolive.com