diff --git a/app/src/main/java/com/nnbc123/app/avroom/adapter/OnlineUserAdapter.java b/app/src/main/java/com/nnbc123/app/avroom/adapter/OnlineUserAdapter.java index 6f00ee0a3..e312cafda 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/adapter/OnlineUserAdapter.java +++ b/app/src/main/java/com/nnbc123/app/avroom/adapter/OnlineUserAdapter.java @@ -17,6 +17,7 @@ import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.uinfo.constant.GenderEnum; import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; import com.nnbc123.app.R; +import com.nnbc123.app.support.LevelIconHelper; import com.nnbc123.app.ui.utils.ImageLoadUtils; import com.nnbc123.app.ui.widget.NobleAvatarView; import com.nnbc123.app.utils.RegexUtil; @@ -97,20 +98,25 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter by lazy() { + ArrayMap() + } + + + /** + * 获取魅力等级ICON + * @param iconUrl 图标地址 + */ + fun getCharmIconByUrl(iconUrl: String?): Int? { + return getCharmIcon(parseLevelNumber(iconUrl)) + } + + /** + * 获取财富等级ICON + * @param iconUrl 图标地址 + */ + fun getWealthIconByUrl(iconUrl: String?): Int? { + return getWealthIcon(parseLevelNumber(iconUrl)) + } + + /** + * 获取魅力等级ICON + * @param level 等级 + * @return 图标资源ID + */ + fun getCharmIcon(level: Int?): Int? { + val levelName = getLevelName(level) ?: return null + return getDrawableRedIdByName("charm_ic_$levelName") + } + + /** + * 获取财富等级ICON + * @param level 等级 + * @return 图标资源ID + */ + fun getWealthIcon(level: Int?): Int? { + val levelName = getLevelName(level) ?: return null + return getDrawableRedIdByName("wealth_ic_$levelName") + } + + private fun getDrawableRedIdByName(name: String): Int? { + val value = map[name] + if (value != null) { + return value + } + return try { + val id = AppUtils.getApp().resources.getIdentifier( + name, + "drawable", + AppUtils.getApp().packageName + ) + map[name] = id + id + } catch (e: Exception) { + null + } + } + + private fun parseLevelNumber(levelIconUrl: String?): Int? { + if (levelIconUrl == null) { + return null + } + // TODO 待实现 + return 0 + } + + private fun getLevelName(level: Int?): String? { + if (level == null) { + return null + } + if (level <= 0 || level > 110) { + return null + } + return if (level < 10) { + "0$level" + } else { + level.toString() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/ui/im/friend/FriendListAdapter.java b/app/src/main/java/com/nnbc123/app/ui/im/friend/FriendListAdapter.java index 0283e9817..19a3542d1 100644 --- a/app/src/main/java/com/nnbc123/app/ui/im/friend/FriendListAdapter.java +++ b/app/src/main/java/com/nnbc123/app/ui/im/friend/FriendListAdapter.java @@ -7,18 +7,21 @@ import androidx.core.content.ContextCompat; import android.text.TextUtils; import android.view.View; +import android.widget.ImageView; import android.widget.TextView; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.nnbc123.app.R; import com.nnbc123.app.friend.action.AbstractSelectFriendAction; +import com.nnbc123.app.support.LevelIconHelper; import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity; import com.nnbc123.app.ui.user.UserInfoActivity; import com.nnbc123.app.ui.utils.ImageLoadUtils; import com.nnbc123.app.ui.widget.NobleAvatarView; import com.nnbc123.app.vip.VipHelper; import com.nnbc123.app.room_chat.activity.NimRoomP2PMessageActivity; +import com.nnbc123.core.level.UserLevelVo; import com.nnbc123.core.noble.NobleUtil; import com.nnbc123.core.user.bean.UserInfo; import com.nnbc123.core.utils.StringExtensionKt; @@ -91,18 +94,27 @@ public class FriendListAdapter extends BaseQuickAdapter @Override protected void convert(BaseViewHolder baseViewHolder, final FansInfo fansInfo) { if (fansInfo == null) return; - baseViewHolder.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(fansInfo.getNick(),8)) + baseViewHolder.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(fansInfo.getNick(), 8)) .setText(R.id.tv_user_desc, fansInfo.getUserDesc() != null ? fansInfo.getUserDesc() : baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc)) @@ -104,18 +108,27 @@ public class FansViewAdapter extends BaseQuickAdapter nobleAvatarView.setSize(55, 75, 15); nobleAvatarView.setData(fansInfo.getAvatar(), fansInfo.getNobleUsers()); - AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_user_level); - ivUserLevel.setVisibility(View.GONE); - if (fansInfo.getUserLevelVo() != null && !TextUtils.isEmpty(fansInfo.getUserLevelVo().getExperUrl())) { - ivUserLevel.setVisibility(View.VISIBLE); - ImageLoadUtils.loadImage(mContext, fansInfo.getUserLevelVo().getExperUrl(), ivUserLevel); - } - - AppCompatImageView ivCharmLevel = baseViewHolder.getView(R.id.iv_charm_level); - ivCharmLevel.setVisibility(View.GONE); - if (fansInfo.getUserLevelVo() != null && !TextUtils.isEmpty(fansInfo.getUserLevelVo().getCharmUrl())) { - ivCharmLevel.setVisibility(View.VISIBLE); - ImageLoadUtils.loadImage(mContext, fansInfo.getUserLevelVo().getCharmUrl(), ivCharmLevel); + ImageView charmView = baseViewHolder.getView(R.id.iv_charm_level); + ImageView wealthView = baseViewHolder.getView(R.id.iv_user_level); + UserLevelVo userLevelVo = fansInfo.getUserLevelVo(); + if (userLevelVo != null) { + Integer charmIconId = LevelIconHelper.INSTANCE.getCharmIcon(userLevelVo.charmLevelSeq); + Integer wealthIconId = LevelIconHelper.INSTANCE.getWealthIcon(userLevelVo.experLevelSeq); + if (charmIconId != null) { + charmView.setImageResource(charmIconId); + charmView.setVisibility(View.VISIBLE); + } else { + charmView.setVisibility(View.GONE); + } + if (wealthIconId != null) { + wealthView.setImageResource(wealthIconId); + wealthView.setVisibility(View.VISIBLE); + } else { + wealthView.setVisibility(View.GONE); + } + } else { + charmView.setVisibility(View.GONE); + wealthView.setVisibility(View.GONE); } AppCompatImageView ivBadge = baseViewHolder.getView(R.id.iv_noble_level); diff --git a/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java b/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java index c2e9ddd93..3634334a8 100644 --- a/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java @@ -41,6 +41,7 @@ import com.nnbc123.app.family.view.activity.FamilyMemberListActivity; import com.nnbc123.app.family.view.activity.FamilyMemberSearchActivity; import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter; import com.nnbc123.app.module_hall.hall.activity.ModuleClanActivity; +import com.nnbc123.app.support.LevelIconHelper; import com.nnbc123.app.ui.im.avtivity.NimFriendModel; import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity; import com.nnbc123.app.ui.user.adapter.SelfPhotoAdapter; @@ -426,15 +427,15 @@ public class UserInfoActivity extends BaseBindingActivity