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" />
+
+
+