From 52e9fd8d0e63f8c0c21ec56d2d533228d2388573 Mon Sep 17 00:00:00 2001 From: oujunhui <313127320@qq.com> Date: Fri, 16 Oct 2020 15:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E9=A1=B5=E7=A7=81=E8=81=8A?= =?UTF-8?q?=E9=99=90=E5=88=B6=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/im/bean/PrivateChatLimitInfo.java | 2 + .../erban/ui/im/fragment/MessageFragment.java | 56 ++++++++++++++++++- app/src/main/res/drawable/bg_chat_limit.xml | 6 ++ app/src/main/res/values/strings.xml | 2 + .../res/layout/nim_msg_fragment.xml | 16 ++++++ .../session/module/input/InputPanel.java | 2 +- 6 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/bg_chat_limit.xml diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/bean/PrivateChatLimitInfo.java b/app/src/main/java/com/yizhuan/erban/ui/im/bean/PrivateChatLimitInfo.java index b646d0a72..ba65bc2e0 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/bean/PrivateChatLimitInfo.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/bean/PrivateChatLimitInfo.java @@ -8,4 +8,6 @@ import lombok.Data; public class PrivateChatLimitInfo implements Serializable { private boolean chat; private String message; + private int wealthLevel; + private int charmLevel; } diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/fragment/MessageFragment.java b/app/src/main/java/com/yizhuan/erban/ui/im/fragment/MessageFragment.java index ae2b97d34..ea8b07f34 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/fragment/MessageFragment.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/fragment/MessageFragment.java @@ -3,20 +3,32 @@ package com.yizhuan.erban.ui.im.fragment; import android.Manifest; import android.annotation.SuppressLint; import android.content.Intent; +import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; + +import android.text.SpannableString; +import android.text.Spanned; import android.text.TextUtils; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; +import android.text.style.ForegroundColorSpan; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import android.widget.TextView; import com.alibaba.fastjson.JSON; +import com.alibaba.security.biometrics.build.G; import com.coorchice.library.utils.LogUtils; import com.google.gson.Gson; import com.netease.nim.uikit.api.UIKitOptions; @@ -56,13 +68,16 @@ import com.yizhuan.erban.R; import com.yizhuan.erban.avroom.game.GameSelectDialog; import com.yizhuan.erban.avroom.game.PlayGameActivity; import com.yizhuan.erban.bindadapter.BaseAdapter; +import com.yizhuan.erban.common.widget.OriginalDrawStatusClickSpan; import com.yizhuan.erban.event.MessageSizeEvent; import com.yizhuan.erban.ui.im.GreetPresenter; import com.yizhuan.erban.ui.im.MessageListPanelEx; import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; import com.yizhuan.erban.ui.im.chat.MVHChatterBoxStart; import com.yizhuan.erban.ui.im.model.IMCustomModel; +import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.utils.PushMessageHandler; +import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.im.chatterbox.ChatterBoxHelper; import com.yizhuan.xchat_android_core.im.chatterbox.HideInputEvent; @@ -137,6 +152,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi private RecyclerView recyclerView; private RxPermissions rxPermissions; + private TextView tvChatLimit; // private int limitLevel; // private int currentLevel; @@ -160,6 +176,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi } private void initView() { + tvChatLimit = rootView.findViewById(R.id.tv_chat_limit); if (!ImGameMode.gameSwitch || MarketVerifyModel.get().isMarketChecking()) { rootView.findViewById(R.id.iv_game).setVisibility(View.GONE); } @@ -185,6 +202,8 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi } + + private void initUserLikeGame() { boolean aBoolean = getArguments().getBoolean(NimP2PMessageActivity.IS_BY_MATCH, false); if (aBoolean) { @@ -769,6 +788,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi public void onReloadInputPanel(MessageSizeEvent event) { if (inputPanel != null) { if (event.getSize() > 0){ + tvChatLimit.setVisibility(View.GONE); inputPanel.setLimitLevel(true,""); }else { IMCustomModel.get().getPrivateChatLimit().subscribe(((privateChatLimitInfo, throwable) -> { @@ -776,8 +796,42 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi throwable.printStackTrace(); } else { isChat = privateChatLimitInfo.isChat(); - hintText = privateChatLimitInfo.getMessage(); + hintText = "暂无权利发起私聊"; inputPanel.setLimitLevel(privateChatLimitInfo.isChat(), privateChatLimitInfo.getMessage()); + + String experLevel = "财富等级≥"+privateChatLimitInfo.getWealthLevel(); + String charmLevel = "魅力等级≥" + privateChatLimitInfo.getCharmLevel(); + String privacyAgreementDescTip = getContext().getString(R.string.text_chat_limit, experLevel, charmLevel); + SpannableString ss = new SpannableString(privacyAgreementDescTip); + int experLevelIndex = privacyAgreementDescTip.indexOf(experLevel); + int charmLevelIndex = privacyAgreementDescTip.indexOf(charmLevel); + + + ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.appColor)), experLevelIndex, experLevelIndex + experLevel.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(getContext(), R.color.appColor)) { + @Override + public void onClick(@NonNull View widget) { + if (widget instanceof TextView) + ((TextView) widget).setHighlightColor(getResources().getColor(android.R.color.transparent)); + + CommonWebViewActivity.start(getContext(), UriProvider.getUserLevelUrl()); + } + }, experLevelIndex, experLevelIndex + experLevel.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.appColor)), charmLevelIndex, charmLevelIndex + charmLevel.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(getContext(), R.color.appColor)) { + @Override + public void onClick(@NonNull View widget) { + if (widget instanceof TextView) + ((TextView) widget).setHighlightColor(getResources().getColor(android.R.color.transparent)); + + CommonWebViewActivity.start(getContext(), UriProvider.getUserLevelUrl()); + } + }, charmLevelIndex, charmLevelIndex + experLevel.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + + tvChatLimit.setText(ss); + tvChatLimit.setHighlightColor(Color.TRANSPARENT); + tvChatLimit.setMovementMethod(new LinkMovementMethod()); + tvChatLimit.setVisibility(View.VISIBLE); } })); } diff --git a/app/src/main/res/drawable/bg_chat_limit.xml b/app/src/main/res/drawable/bg_chat_limit.xml new file mode 100644 index 000000000..ddd7162a0 --- /dev/null +++ b/app/src/main/res/drawable/bg_chat_limit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dbe099798..3b3a6699e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -100,6 +100,8 @@ 设置 实名认证 + 仅%s或%s的用于可发起聊天 + 房主已下线 更多好玩的房间在66星球等您哟!去看看! 主页 diff --git a/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml b/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml index 3442789a5..c1055ab47 100644 --- a/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml +++ b/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml @@ -46,6 +46,8 @@ android:layout_marginTop="55dp" /> + + +