feat : 修复bug

This commit is contained in:
eggmanQQQ
2024-09-24 11:31:29 +08:00
parent 36c011d18e
commit eabe2ae7f8
21 changed files with 194 additions and 93 deletions

View File

@@ -21,7 +21,7 @@ class RoomNotifyCpGiftDialog (private val context: Context) : BaseRoomNotifyDial
override fun init() {
cpMsgBean?.let {
ImageLoadUtils.loadImage(mBinding.sendAvatar,it.senderAvatar)
ImageLoadUtils.loadImage(mBinding.receiverAvatar,it.receiverNick)
ImageLoadUtils.loadImage(mBinding.receiverAvatar,it.receiverAvatar)
ImageLoadUtils.loadImage(mBinding.gift,it.giftUrl)
}
}

View File

@@ -33,11 +33,11 @@ class RoomNotifyLevelUpDialog (private val context: Context) : BaseRoomNotifyDia
override fun init() {
cpMsgBean?.let {
SpanUtils.with(mBinding.text)
.append(it.senderNick).setForegroundColor(R.color.white.getColor())
.append(R.string.avroom_widget_roomeffectview_02.getString()).setForegroundColor(R.color.color_fff664.getColor())
.append(it.receiverNick).setForegroundColor(R.color.white.getColor())
.append(R.string.Become.getString()).setForegroundColor(R.color.color_fff664.getColor())
.append(CpUtils.getCpLevelUpStr(it.cpLevel).toString()).setForegroundColor(R.color.white.getColor())
.append(" ${it.senderNick} ").setForegroundColor(R.color.white.getColor())
.append(" ${R.string.avroom_widget_roomeffectview_02.getString()} ").setForegroundColor(R.color.color_fff664.getColor())
.append(" ${it.receiverNick} ").setForegroundColor(R.color.white.getColor())
.append(" ${R.string.Become.getString()} ").setForegroundColor(R.color.color_fff664.getColor())
.append(" ${CpUtils.getCpLevelUpStr(it.cpLevel)} ").setForegroundColor(R.color.white.getColor())
.create()
mBinding.text.setBackgroundResource(CpUtils.getCpLevelUpTextBg(it.cpLevel))

View File

@@ -124,6 +124,7 @@ import com.chwl.library.utils.ListUtils
import com.chwl.library.utils.ResUtil
import com.chwl.library.utils.SingleToastUtil
import com.chwl.library.utils.UIUtils
import com.example.lib_utils.ktx.getString
import com.google.gson.Gson
import com.netease.nim.uikit.common.antispam.AntiSpamEvent
import com.netease.nimlib.sdk.StatusCode
@@ -898,7 +899,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
callback.onFail()
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_CANCEL))
} else {
if (giftInfo.giftType == GiftType.GIFT_TYPE_NORMAL || giftInfo.giftType == GiftType.GIFT_TYPE_SUPER_LUCKY|| giftInfo.giftType == GiftType.GIFT_TYPE_LUCKY_24) {
if (giftInfo.giftType == GiftType.GIFT_TYPE_NORMAL || giftInfo.giftType == GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.giftType == GiftType.GIFT_TYPE_LUCKY_24) {
giftDialog?.hide()
val giftComboEvent = GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_END)
giftComboEvent.giftNumber = gift.data.giftNum

View File

@@ -2,13 +2,12 @@ package com.chwl.app.ui.user.activity
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.view.View
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chwl.app.R
import com.chwl.app.avroom.activity.AVRoomActivity
import com.chwl.app.base.BaseViewBindingActivity
import com.chwl.app.base.TitleBar
import com.chwl.app.base.TitleBar.ImageAction
@@ -17,19 +16,23 @@ import com.chwl.app.common.widget.dialog.DialogManager
import com.chwl.app.common.widget.dialog.DialogManager.OkCancelDialogListener
import com.chwl.app.databinding.ActivityUserCpListBinding
import com.chwl.app.ui.user.adapter.UserCpListAdapter
import com.chwl.app.ui.webview.CommonWebViewActivity
import com.chwl.core.UriProvider
import com.chwl.core.bean.response.ServiceResult
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.room.bean.CpListItem
import com.chwl.core.room.bean.RoomIcon
import com.chwl.core.user.bean.UserCPListBean
import com.chwl.core.utils.LogUtils
import com.chwl.core.utils.net.DontWarnObserver
import com.chwl.core.utils.net.RxHelper
import com.chwl.library.net.rxnet.RxNet
import com.chwl.library.utils.ResUtil
import com.example.lib_utils.ktx.getString
import com.google.gson.JsonElement
import com.hjq.toast.ToastUtils
import com.netease.nim.uikit.StatusBarUtil
import com.trello.rxlifecycle3.android.ActivityEvent
import io.reactivex.Single
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposable
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Query
@@ -38,6 +41,7 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
lateinit var mAdapter : UserCpListAdapter
var mPageNum = 1;
var mPageSize = 20;
companion object{
fun start(context: Context) {
@@ -59,8 +63,7 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
val titleBar = findViewById<View>(R.id.title_bar) as TitleBar
titleBar.addAction(object : ImageAction(R.drawable.ic_cp_list_more) {
override fun performAction(view: View?) {
//todo 跳转h5
ToastUtils.show("跳转h5")
CommonWebViewActivity.start(this@UserCpListActivity, UriProvider.getCpRule())
}
})
}
@@ -72,7 +75,15 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
mAdapter.setOnItemChildClickListener { adapter, view, position ->
when (view.id) {
R.id.cancel -> {
cancelCp(position, mAdapter.data[position])
mAdapter.data.getOrNull(position)?.let {
cancelCp(position, it)
}
}
R.id.userAvatarCp -> {
mAdapter.data.getOrNull(position)?.let {
UserInfoActivity.Companion.start(context, it.cpUid)
}
}
else -> {}
}
@@ -96,13 +107,15 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
mAdapter.addData(it)
}
if (it.size == 20) {
if (it.size == mPageSize) {
mPageNum += 1
mAdapter.setEnableLoadMore(true)
binding.noMore.isVisible = false
} else {
mAdapter.setEnableLoadMore(false)
binding.noMore.isVisible = true
if (mAdapter?.data?.isEmpty() == true){
binding.noMore.isVisible = true
}
}
mAdapter.loadMoreComplete()
}
@@ -116,7 +129,7 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
private fun cancelCp(position: Int, data: UserCPListBean) {
val mDialogManager = DialogManager(context)
mDialogManager?.showOkCancelDialog(ResUtil.getString(R.string.CP_Cancel), true, object :
mDialogManager?.showOkCancelDialog(ResUtil.getString(R.string.CP_Cancel,data.cancelGoldNum,data.cpNick), true, object :
OkCancelDialogListener {
override fun onCancel() {
mDialogManager?.dismissDialog()
@@ -126,9 +139,8 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
postCpCancel(data.uid,data.cpUid,data.cancelGoldNum)
.compose(bindToLifecycle())
.doOnSuccess {
runOnUiThread {
mAdapter.remove(position)
}
mAdapter.remove(position)
toast(ResUtil.getString(R.string.CP_Cancel_Success,data.cpNick))
}
.subscribe()
mDialogManager?.dismissDialog()
@@ -144,14 +156,14 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
* 获-cp列表
*/
private fun getCpList(): Single<List<UserCPListBean>> {
return api.getCpList(mPageNum)
return api.getCpList(mPageNum,mPageSize)
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers())
}
private fun postCpCancel(uid: Long,loverUid: Long,goldNum: Long): Single<Boolean> {
private fun postCpCancel(uid: Long,loverUid: Long,goldNum: Long): Single<String> {
return api.postCpCancel(uid,loverUid,goldNum)
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleIgnoreData())
.compose(RxHelper.handleSchedulers())
}
@@ -173,7 +185,7 @@ class UserCpListActivity : BaseViewBindingActivity<ActivityUserCpListBinding>()
* Long goldNum //金币列表有返回该字段cancelGoldNum
*/
@POST("/user/cp/cancel")
fun postCpCancel(@Query("uid") uid: Long,@Query("loverUid") loverUid: Long,@Query("goldNum") goldNum: Long): Single<ServiceResult<Boolean>>
fun postCpCancel(@Query("uid") uid: Long,@Query("loverUid") loverUid: Long,@Query("goldNum") goldNum: Long): Single<ServiceResult<JsonElement>>
}

View File

@@ -280,6 +280,10 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
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()) {
mBinding.cpCardMore.setVisibility(View.VISIBLE);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -352,24 +356,19 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
//cp
private void setCpInfo(UserDetailInfo.DataBean dataBean) {
mBinding.ivHeadWear.setVisibility(View.VISIBLE);
UserDetailInfo.DataBean.RelationUserVO cpInfo = dataBean.getRelationUserVO();
boolean showCpAvatar = false;
if (cpInfo != null) {
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty()){
if (cpInfo.showCpAvatar) {
showCpAvatar = cpInfo.showCpAvatar;
// 头像处cp
mBinding.cpViews.setVisibility(View.VISIBLE);
mBinding.ivHeadWear.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.ivHeadWearCp.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.ivHeadWearCpFlag.setImageResource(CpUtils.INSTANCE.getFlag(cpInfo.cpLevel));
ImageLoadUtils.loadImage(mBinding.ivUserHeadCp, cpInfo.cpAvatar);
if (cpInfo.cpAvatar == null || cpInfo.cpAvatar.isEmpty()) {
mBinding.cpViews.setVisibility(View.INVISIBLE);
return;
} else {
mBinding.cpViews.setVisibility(View.VISIBLE);
}
mBinding.ivUserHeadCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
});
}else {
mBinding.cpViews.setVisibility(View.INVISIBLE);
}
//cp 卡片
@@ -379,39 +378,57 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
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.cpCardLevelEmpty.setVisibility(cpInfo.cpLevel > 0? View.INVISIBLE : View.VISIBLE);
mBinding.cpCardDay.setVisibility(cpInfo.cpLevel > 0? View.VISIBLE : View.INVISIBLE);
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);
if (cpInfo.showCpAnim && isFirst) {
String animUrl = CpUtils.INSTANCE.getUserInfoAnim(cpInfo.cpLevel);
HashMap<String, String> imgMap = new HashMap<>();
imgMap.put("avatar1", cpInfo.avatar);
imgMap.put("avatar2", cpInfo.cpAvatar);
if (animUrl != null) {
CpUtils.INSTANCE.loadVap(
mBinding.userInfoAnim,
animUrl,
imgMap,null
);
}
}
} else {
mBinding.cpCardLevelEmpty.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);
}
}
HeadWearInfo headWearInfo = userInfo.getUserHeadwear();
if (headWearInfo != null && headWearInfo.getFirstUrl() != null) {
if (!showCpAvatar) AvatarHelper.loadAvatarFrame(mBinding.ivHeadWear, headWearInfo.getFirstUrl(), headWearInfo.getType());
mBinding.ivUserHead.setPadding(0, 0, 0, 0);
mBinding.ivUserHead.setStrokeWidth(0);
} 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));
if (!showCpAvatar) mBinding.cpViews.setVisibility(View.INVISIBLE);
//cp 动画
if (cpInfo != null && cpInfo.showCpAnim && isFirst) {
String animUrl = CpUtils.INSTANCE.getUserInfoAnim(cpInfo.cpLevel);
HashMap<String, String> imgMap = new HashMap<>();
imgMap.put("avatar1", cpInfo.avatar);
imgMap.put("avatar2", cpInfo.cpAvatar);
if (animUrl != null) {
CpUtils.INSTANCE.loadVap(
mBinding.userInfoAnim,
animUrl,
imgMap,null
);
}
}else {
mBinding.userInfoAnim.setVisibility(View.GONE);
}
isFirst = false;
}
private void setMarginTop(View view, int top) {

View File

@@ -33,9 +33,11 @@ class UserCpListAdapter : BaseAdapter<UserCPListBean> {
mViewBinding.userHeadCp.loadFile(getHeadSvga(data.cpLevel))
val max = (data.endExp - data.startExp)
val current = (data.currentExp.toFloat() / max.toFloat()) * 100f
mViewBinding.cpPro.max = data.endExp.toInt() - data.startExp.toInt()
mViewBinding.cpPro.progress = data.currentExp.toInt()
mViewBinding.cpPro.max = 100
mViewBinding.cpPro.progress = current.toInt()
mViewBinding.cpProVal.text = "${NumberUtils.format(data.currentExp)} / ${NumberUtils.format(data.endExp)}"
mViewBinding.cpNeedVal.text = ResUtil.getString(R.string.CP_Need_tips,NumberUtils.format((data.endExp - data.currentExp)))
@@ -44,6 +46,7 @@ class UserCpListAdapter : BaseAdapter<UserCPListBean> {
helper.addOnClickListener(mViewBinding.cancel.id)
helper.addOnClickListener(mViewBinding.userAvatarCp.id)
}

View File

@@ -135,6 +135,7 @@ class UserInfoDataFragment : BaseViewBindingFragment<UserInfoDataFragmentBinding
val list = it.medals?.userMedals
if (medalAdapter.itemCount > 0) return@observe
medalAdapter.setNewData(list)
binding.tvMedalStatus.isVisible = list.isNullOrEmpty()
}
}

View File

@@ -12,6 +12,7 @@ import com.chwl.app.R
import com.chwl.app.application.App
import com.chwl.app.application.GlobalHandleManager
import com.chwl.core.utils.LogUtils
import com.chwl.library.utils.ResUtil
import com.netease.nim.uikit.support.glide.GlideApp
import com.tencent.qgame.animplayer.AnimConfig
import com.tencent.qgame.animplayer.AnimView
@@ -59,23 +60,28 @@ object CpUtils {
)
var cpLevelUpStr = arrayListOf(
R.string.Sweet_Duo_CP
R.string.Sweet_Duo,
R.string.Dynamic_Duo,
R.string.Ldeal_Duo,
R.string.Dream_Duo,
R.string.Perfect_Duo,
R.string.Divine_Duo
)
fun getCpLevelUpStr(level: Int) : Int{
return cpLevelUpStr.getOrNull(level)?:-1
}
fun getFlag(level: Int) : Int{
return flags.getOrNull(level)?:-1
return flags.getOrNull(level)?:R.drawable.ic_user_info_cp_avatar_flag_0
}
fun getLevelImg(level: Int) : Int{
return levels.getOrNull(level)?:-1
return levels.getOrNull(level)?:R.drawable.ic_cp_list_level_0
}
fun getCpLevelUpTextBg(level: Int) : Int{
return levelBgs.getOrNull(level)?:-1
return levelBgs.getOrNull(level)?:R.drawable.ic_cp_level_up_bg_1
}
fun getCpLevelUpStr(level: Int) : String{
return ResUtil.getString(cpLevelUpStr.getOrNull(level)?:R.string.Sweet_Duo)
}
fun downLoadAvatar(url:String?, onResourceReady:(resource: Bitmap?)->Unit) {

View File

@@ -23,6 +23,7 @@ import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.SoftPool
import com.chwl.core.gift.bean.BonsellaJoinAttack
import com.chwl.core.gift.bean.GiftMultiReceiverInfo
import com.chwl.core.gift.bean.GiftType
import com.chwl.core.utils.LogUtils
import com.chwl.library.utils.ResUtil
import com.example.lib_utils.UiUtils
@@ -213,6 +214,9 @@ 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;
}
val comboInfo = BonsellaJoinAttack().apply {
giftId = giftInfo.giftId
sentUserid = giftInfo.uid

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -404,6 +404,8 @@
<ImageView
android:id="@+id/cpCardMore"
android:layout_width="@dimen/dp_22"
android:visibility="invisible"
tools:visibility="visible"
android:layout_height="@dimen/dp_23"
android:layout_marginEnd="@dimen/dp_15"
android:src="@drawable/ic_user_info_more"

View File

@@ -335,10 +335,9 @@
android:layout_height="50dp"
android:background="@color/transparent"
android:gravity="center_vertical"
android:text="titleCpAnim"
android:text="@string/CP_anim_set_tips"
android:textColor="@color/color_313131"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@+id/cpTitle" />
<ImageView
@@ -366,10 +365,9 @@
android:layout_height="50dp"
android:background="@color/transparent"
android:gravity="center_vertical"
android:text="titleCpShow"
android:text="@string/CP_avatar_set_tips"
android:textColor="@color/color_313131"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@+id/titleCpAnim" />
<ImageView

View File

@@ -18,7 +18,7 @@
android:id="@+id/micMusic"
android:layout_width="@dimen/dp_36"
android:layout_marginVertical="5dp"
android:src="@drawable/room_menu_ic_mic_open"
android:src="@drawable/room_menu_ic_mic_music"
android:layout_height="@dimen/dp_36"/>
<ImageView

View File

@@ -24,7 +24,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/bg">
<ImageView
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/sendAvatar"
android:layout_width="@dimen/dp_38"
android:layout_height="@dimen/dp_38" />
@@ -39,7 +39,7 @@
android:textSize="@dimen/sp_13"
android:textStyle="bold" />
<ImageView
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/receiverAvatar"
android:layout_width="@dimen/dp_38"
android:layout_height="@dimen/dp_38" />

View File

@@ -14,6 +14,9 @@
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:gravity="center"
android:lines="1"
android:layout_marginHorizontal="@dimen/dp_30"
android:ellipsize="end"
android:layout_marginBottom="@dimen/dp_20"
android:layout_height="wrap_content"/>

View File

@@ -116,13 +116,14 @@
android:id="@+id/tv_album_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/photo_album_empty_tips"
android:text="@string/pk_model_pkmodel_013"
android:textColor="@color/white_tran_60"
android:textSize="@dimen/dp_14"
app:layout_constraintBottom_toBottomOf="@id/recycler_view_album"
app:layout_constraintEnd_toEndOf="@id/recycler_view_album"
app:layout_constraintStart_toStartOf="@id/recycler_view_album"
app:layout_constraintTop_toTopOf="@id/recycler_view_album" />
android:paddingVertical="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_album_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -258,13 +259,16 @@
android:id="@+id/tv_gift_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gift_empty_tips"
android:text="@string/pk_model_pkmodel_013"
android:paddingTop="@dimen/dp_21"
android:paddingBottom="@dimen/dp_39"
android:textColor="@color/white_tran_60"
android:textSize="@dimen/dp_14"
app:layout_constraintBottom_toBottomOf="@id/recycler_view_gift"
app:layout_constraintEnd_toEndOf="@id/recycler_view_gift"
app:layout_constraintStart_toStartOf="@id/recycler_view_gift"
app:layout_constraintTop_toTopOf="@id/recycler_view_gift" />
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_gift_more"
@@ -304,6 +308,21 @@
tools:background="#33000000"
tools:listitem="@layout/user_info_item_medal" />
<TextView
android:id="@+id/tv_medal_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_model_pkmodel_013"
android:paddingTop="@dimen/dp_21"
android:paddingBottom="@dimen/dp_39"
android:textColor="@color/white_tran_60"
android:textSize="@dimen/dp_14"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

View File

@@ -940,6 +940,11 @@
<string name="cp_revert_tip">بعد التراجع، سيتم استعادة مدة المصاحبة والمستوى؛ هل أنت متأكد من رغبتك في استعادة العلاقة؟</string>
<string name="message_at_tip">%d شخص قام بالإشارة إليك</string>
<string name="CP_Need_tips">تحتاج إلى %s للترقية</string>
<string name="Agent_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>
<string name="charge_confirm_charge">تأكيد الشحن</string>
<string name="charge_my">الشحن</string>
@@ -5356,4 +5361,8 @@
<string name="All_mic">جميع الميكروفونات</string>
<string name="changeRoomTips">هل أنت متأكد أنك تريد الذهاب إلى هذه الغرفة؟</string>
<string name="Multiplayer">متعدد اللاعبين</string>
<string name="CP">سى بى</string>
<string name="CP_anim_set_tips">عرض الرسوم المتحركة للصفحة الرئيسية - CP</string>
<string name="CP_avatar_set_tips">عرض الصور الرمزية للصفحة الرئيسية- CP</string>
<string name="CP_Cancel_Success">لقد نجحت في إلغاء CP الخاص بك مع %s .</string>
</resources>

View File

@@ -954,6 +954,11 @@
<string name="message_at_tip">有%d人@你</string>
<!--谷歌內購充值頁-->
<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="CP_Cancel">您確定要花 %s 金幣來取消%s的 CP 嗎?</string>
<string name="charge_my_diamond">我的金幣</string>
<string name="charge_confirm_charge">確認充值</string>
<string name="charge_my">充值</string>
@@ -5297,5 +5302,10 @@
<string name="All_mic">所有麥</string>
<string name="changeRoomTips">你確定要去這個房間嗎?</string>
<string name="Multiplayer">多人</string>
<string name="CP">CP</string>
<string name="CP_anim_set_tips">主頁CP進場動效</string>
<string name="CP_avatar_set_tips">主頁CP頭像</string>
<string name="CP_Level_up_tips">%s 與 %s 已成為 %s 。</string>
<string name="CP_Cancel_Success">您已成功取消與 %s 的 CP 連結。</string>
</resources>

View File

@@ -948,17 +948,26 @@
<string name="cp_revert_tip">After reverting, including the duration of companionship and level will be restored, are you sure you want to restore the relationship?</string>
<string name="message_at_tip">%d people @ you</string>
<string name="CP">CP</string>
<string name="CP_anim_set_tips">Homepage animation display-CP</string>
<string name="CP_avatar_set_tips">Homepage avatars display-CP</string>
<string name="days">days</string>
<string name="CP_Need_tips">Need %s to upgrade</string>
<string name="Agent_ID">Agent ID</string>
<string name="Guild_ID">Guild ID</string>
<string name="Guild_Nick">Guild Nick</string>
<string name="CP_Cancel">CP_Cancel</string>
<string name="CP_Cancel">Are you sure you want to spend %s coins to cancel your CP with %s?</string>
<string name="CP_Cancel_Success">You have successfully cancelled your CP with %s .</string>
<string name="CP_Gift">CP Gift</string>
<string name="CP_Level_up_tips">%s and %s have become %s.</string>
<string name="Become">Become</string>
<string name="Sweet_Duo_CP">Sweet Duo CP</string>
<string name="My_Cp">My Cp</string>
<string name="Waiting_for_love">Waiting for love</string>
<string name="Sweet_Duo">Sweet Duo</string>
<string name="Dynamic_Duo">Dynamic Duo</string>
<string name="Ldeal_Duo">Ldeal Duo</string>
<string name="Dream_Duo">Dream Duo</string>
<string name="Perfect_Duo">Perfect Duo</string>
<string name="Divine_Duo">Divine Couple</string>
<!-- Google In-App Purchase Recharge Page -->
<string name="charge_my_diamond">My Coins</string>

View File

@@ -311,6 +311,13 @@ public class UriProvider {
return JAVA_WEB_URL.concat("/molistar/modules/gameRank/index.html");
}
/**
* cp规则
*/
public static String getCpRule() {
return JAVA_WEB_URL.concat("/molistar/modules/rule/cpRule.html");
}
public static String toFullUrl(String shortUrl) {
if (shortUrl == null) {