diff --git a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
index 4494d6149..d7f055a1e 100644
--- a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
@@ -32,9 +32,9 @@ import static com.yunbao.common.CommonAppContext.isReady;
*/
public class RongcloudIMManager {
//融云开发者平台注册app唯一识别符
- public static final String RONG_IM_KEY = "uwd1c0sxu1p71";
+// public static final String RONG_IM_KEY = "uwd1c0sxu1p71";
//测试环境
-// public static final String RONG_IM_KEY = "pvxdm17jpd3hr";
+ public static final String RONG_IM_KEY = "pvxdm17jpd3hr";
private static final String CLASSNAME = "RongcloudIMManager";
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 8748fdc6a..0f99673a3 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -883,4 +883,6 @@
屏蔽禮物特效
屏蔽座駕特效
您已在當前直播間
+ 是否清空未讀消息
+
diff --git a/config.gradle b/config.gradle
index 7d7250467..cf3f0a090 100644
--- a/config.gradle
+++ b/config.gradle
@@ -10,9 +10,9 @@ ext {
manifestPlaceholders = [
//正式
- serverHost : "https://napi.yaoulive.com",
+// serverHost : "https://napi.yaoulive.com",
//測試
-// serverHost : "https://ceshi.yaoulive.com",
+ serverHost : "https://ceshi.yaoulive.com",
//腾讯地图
txMapAppKey : "EOZBZ-ASLCU-4XPV3-BDCHZ-4E3Q7-H4BWB",
diff --git a/live/src/main/res/drawable/background_system_message.xml b/live/src/main/res/drawable/background_system_message.xml
new file mode 100644
index 000000000..6fa2f466e
--- /dev/null
+++ b/live/src/main/res/drawable/background_system_message.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/live/src/main/res/layout/rc_conversationlist_item.xml b/live/src/main/res/layout/rc_conversationlist_item.xml
index ed57232d2..93ebf0431 100644
--- a/live/src/main/res/layout/rc_conversationlist_item.xml
+++ b/live/src/main/res/layout/rc_conversationlist_item.xml
@@ -1,23 +1,147 @@
-
+ android:layout_height="123dp">
-
+ android:layout_height="match_parent"
+ android:layout_marginStart="8dp"
+ android:visibility="gone"
+ android:layout_marginTop="5dp"
+ android:layout_marginEnd="8dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginStart="16dp"
+ android:layout_marginTop="39dp"
+ android:layout_marginEnd="15dp">
+
+ android:gravity="center_vertical">
@@ -62,30 +184,18 @@
-
-
+ android:layout_below="@id/rc_conversation_linear"
+ android:layout_marginStart="88dp"
+ android:gravity="center_vertical">
+ android:textSize="@dimen/rc_font_nav_or_date_size" />
@@ -150,8 +260,9 @@
android:layout_height="0.5dp"
android:layout_marginTop="71.5dp"
android:background="@color/rc_divider_color"
+ android:visibility="gone"
app:layout_constraintStart_toStartOf="@id/rc_conversation_linear"
app:layout_constraintTop_toTopOf="parent" />
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_chinese.png b/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_chinese.png
new file mode 100644
index 000000000..c9fa58235
Binary files /dev/null and b/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_chinese.png differ
diff --git a/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_english.png b/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_english.png
new file mode 100644
index 000000000..e92f53eab
Binary files /dev/null and b/live/src/main/res/mipmap-xxxhdpi/img_news_instructor_tags_english.png differ
diff --git a/live/src/main/res/mipmap-xxxhdpi/news_icon_clearance.png b/live/src/main/res/mipmap-xxxhdpi/news_icon_clearance.png
new file mode 100644
index 000000000..1fb0f61bf
Binary files /dev/null and b/live/src/main/res/mipmap-xxxhdpi/news_icon_clearance.png differ
diff --git a/live/src/main/res/mipmap-xxxhdpi/white_bg.jpg b/live/src/main/res/mipmap-xxxhdpi/white_bg.jpg
new file mode 100644
index 000000000..00bda509d
Binary files /dev/null and b/live/src/main/res/mipmap-xxxhdpi/white_bg.jpg differ
diff --git a/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java b/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java
index 7618e3dd3..33ed1aaa7 100644
--- a/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java
@@ -1,11 +1,15 @@
package com.yunbao.main.activity;
+import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
+import android.os.Handler;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.TextView;
import androidx.fragment.app.FragmentManager;
@@ -19,16 +23,19 @@ import com.alibaba.fastjson.JSON;
import com.facebook.appevents.AppEventsLogger;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.yunbao.common.activity.AbsActivity;
+import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.ImUserInfoModel;
import com.yunbao.common.custom.TabButtonGroup;
import com.yunbao.common.event.MessageIMEvent;
import com.yunbao.common.event.UpdateTablePointMe;
-import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
+import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.views.weight.ViewClicksAntiShake;
+import com.yunbao.live.activity.SystemMessageActivity;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.http.ImHttpUtil;
import com.yunbao.main.R;
@@ -41,6 +48,7 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -52,7 +60,7 @@ import static com.yunbao.common.CommonAppContext.isReady;
/**
* pdlive消息中心
*/
-public class PDLiveConversationListActivity extends AbsActivity {
+public class PDLiveConversationListActivity extends AbsActivity implements View.OnClickListener {
//菜单
private TabButtonGroup mTabButtonGroup;
public static String CLASSNAME = "PDLiveConversationListActivity", MESSAGENUMBER = "messageNumber", NUMBERME = "numberMe";
@@ -64,8 +72,14 @@ public class PDLiveConversationListActivity extends AbsActivity {
private View redpointMe;
private SystemMessageAdapter messageAdapter;
private ProcessResultUtil mProcessResultUtil;
+ private TextView textNewsNotice, textNewsInteraction, textNewsOnline;
+ private ImageView newsIconClearance;
+ private Handler netHandler = new Handler();
+ private String type = null;
+ private List listUserBean = new ArrayList<>();
@Override
+
protected int getLayoutId() {
return R.layout.activity_conversation_list;
}
@@ -88,6 +102,10 @@ public class PDLiveConversationListActivity extends AbsActivity {
container = findViewById(R.id.container);
redPoint = findViewById(R.id.v_table_redpoint);
redpointMe = findViewById(R.id.v_table_redpoint_me);
+ textNewsNotice = findViewById(R.id.text_news_notice);
+ textNewsInteraction = findViewById(R.id.text_news_interaction);
+ textNewsOnline = findViewById(R.id.text_news_online);
+ newsIconClearance = findViewById(R.id.news_icon_clearance);
mTabButtonGroup.setCurPosition(2);
findViewById(R.id.btn_start).setOnClickListener(v -> {
@@ -104,39 +122,35 @@ public class PDLiveConversationListActivity extends AbsActivity {
startActivity(new Intent(mContext, MainActivity.class));
}
});
-
+ newsIconClearance.setOnClickListener(this);
}
+
private void showStartDialog() {
if (isReady == true) {
MainStartDialogFragment dialogFragment = new MainStartDialogFragment();
- dialogFragment.setMainStartChooseCallback(true,this);
+ dialogFragment.setMainStartChooseCallback(true, this);
dialogFragment.show(getSupportFragmentManager(), "MainStartDialogFragment");
} else {
ToastUtil.show("正在初始化,請稍等....");
}
}
+
/**
* 初始化数据
*/
private void initData() {
IMLoginManager.get(mContext).checkInstructor();
mProcessResultUtil = new ProcessResultUtil(this);
- //获取系统消息列表
- ImHttpUtil.getImUserInfo("", new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (code == 0) {
- container.post(new Runnable() {
- @Override
- public void run() {
- List listUserBean = JSON.parseArray(Arrays.toString(info), ImUserBean.class);
- addSystemMessagesView(listUserBean);
- }
- });
- }
- }
- });
+ netHandler.post(imUserInfoRunnable);
+ //展示会话列表
+ conversationListFragment = new ConversationListFragment();
+ FragmentManager manager = getSupportFragmentManager();
+ FragmentTransaction transaction = manager.beginTransaction();
+ transaction.replace(R.id.container, conversationListFragment);
+ transaction.commit();
+ //自定义空数据背景View
+ conversationListFragment.setEmptyView(com.yunbao.live.R.layout.view_layout_msg);
//刷新列表内用户信息
ConversationIMListManager.get(mContext).addUserInfoProvider();
//消息中心
@@ -151,6 +165,144 @@ public class PDLiveConversationListActivity extends AbsActivity {
MessageIMManager.get(this).getSystemMessages();
}
+ /**
+ * 系統消息獲取
+ */
+ private Runnable imUserInfoRunnable = new Runnable() {
+ @Override
+ public void run() {
+ //获取系统消息列表
+ ImHttpUtil.getImUserInfo("", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ runOnUiThread(() -> {
+ listUserBean = JSON.parseArray(Arrays.toString(info), ImUserBean.class);
+ for (ImUserBean userBean : listUserBean) {
+ switch (userBean.getType()) {
+ //官方通知
+ case "1":
+ if (TextUtils.isEmpty(userBean.getNum()) || TextUtils.equals("0", userBean.getNum())) {
+ textNewsNotice.setVisibility(View.GONE);
+ } else {
+ textNewsNotice.setVisibility(View.VISIBLE);
+ textNewsNotice.setText(userBean.getNum());
+ }
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.img_news_notice), () -> {
+ type = userBean.getType();
+ netHandler.post(systemNumberRunnable);
+ startActivity(new Intent(mContext, SystemMessageActivity.class)
+ .putExtra("type", userBean.getType())
+ .putExtra("uid", "")
+ .putExtra("title", userBean.getTitle())
+ .putExtra("headImg", ""));
+ });
+ break;
+ //互動消息
+ case "2":
+ if (TextUtils.isEmpty(userBean.getNum()) || TextUtils.equals("0", userBean.getNum())) {
+ textNewsInteraction.setVisibility(View.GONE);
+ } else {
+ textNewsInteraction.setVisibility(View.VISIBLE);
+ textNewsInteraction.setText(userBean.getNum());
+ }
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.img_news_interaction), () -> {
+ type = userBean.getType();
+ netHandler.post(systemNumberRunnable);
+ startActivity(new Intent(mContext, SystemMessageActivity.class)
+ .putExtra("type", userBean.getType())
+ .putExtra("uid", "")
+ .putExtra("title", userBean.getTitle())
+ .putExtra("headImg", ""));
+ });
+ break;
+ //在線客服
+ case "3":
+ if (TextUtils.isEmpty(userBean.getNum()) || TextUtils.equals("0", userBean.getNum())) {
+ textNewsOnline.setVisibility(View.GONE);
+ } else {
+ textNewsOnline.setVisibility(View.VISIBLE);
+ textNewsOnline.setText(userBean.getNum());
+ }
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.img_news_online), () -> {
+ type = userBean.getType();
+ netHandler.post(systemNumberRunnable);
+ FirebaseAnalytics.getInstance(mContext).logEvent("FS_customer_service", null);
+ AppEventsLogger.newLogger(mContext).logEvent("FB_customer_service");
+ AdjustEvent adjustEvent1 = new AdjustEvent("ww5z2p");
+ Adjust.trackEvent(adjustEvent1);
+ if (userBean.getLink() != null && !"".equals(userBean.getLink())) {
+ WebViewActivity.forward(mContext, userBean.getLink());
+ } else {
+ startActivity(new Intent(mContext, SystemMessageActivity.class)
+ .putExtra("type", userBean.getType())
+ .putExtra("uid", "")
+ .putExtra("title", userBean.getTitle())
+ .putExtra("headImg", ""));
+ }
+ });
+ break;
+ }
+ }
+
+ });
+
+ }
+ }
+ });
+ }
+ };
+ //修改小紅點
+ private Runnable systemNumberRunnable = new Runnable() {
+ @Override
+ public void run() {
+ runOnUiThread(() -> {
+ int systemNumber = 0;
+ for (ImUserBean userBean : listUserBean) {
+ //未读消息数
+ String number = userBean.getNum();
+
+ switch (userBean.getType()) {
+ //官方通知
+ case "1":
+ if (TextUtils.equals(type, userBean.getType())) {
+ number = null;
+ textNewsNotice.setVisibility(View.GONE);
+ }
+ break;
+ //互動消息
+ case "2":
+ if (TextUtils.equals(type, userBean.getType())) {
+ number = null;
+ textNewsInteraction.setVisibility(View.GONE);
+ }
+ break;
+ //在線客服
+ case "3":
+ if (TextUtils.equals(type, userBean.getType())) {
+ number = null;
+ textNewsOnline.setVisibility(View.GONE);
+ }
+ break;
+ }
+
+ //未读消息不为空并且大于0
+ try {
+ if (!TextUtils.isEmpty(number) && Integer.parseInt(number) > 0) {
+ systemNumber = Integer.parseInt(number) + systemNumber;
+ }
+ } catch (NumberFormatException e) {
+ systemNumber = systemNumber + 0;
+ }
+
+ }
+ type = null;
+ MessageIMManager.get(mContext).setSystemNumber(systemNumber);
+ });
+
+ }
+ };
+
/**
* 添加头部系统消息
*
@@ -178,6 +330,29 @@ public class PDLiveConversationListActivity extends AbsActivity {
conversationListFragment.addHeaderView(rootView);
}
+ @Override
+ public void onClick(View v) {
+ ViewClicksAntiShake.clicksAntiShake(v, new ViewClicksAntiShake.ViewClicksCallBack() {
+ @Override
+ public void onViewClicks() {
+ //清除全部消息
+ if (v.getId() == R.id.news_icon_clearance) {
+ DialogUitl.showSimpleDialog(mContext, null, getString(R.string.clear_unread_messages), false, new DialogUitl.SimpleCallback3() {
+ @Override
+ public void onConfirmClick(Dialog dialog) {
+// IMCenter.getInstance().clearMessagesUnreadStatus();
+ }
+
+ @Override
+ public void onCancel() {
+
+ }
+ });
+ }
+ }
+ });
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
diff --git a/main/src/main/java/com/yunbao/main/manager/imrongcloud/ConversationIMListManager.java b/main/src/main/java/com/yunbao/main/manager/imrongcloud/ConversationIMListManager.java
index c6b14e4a0..8d6231e22 100644
--- a/main/src/main/java/com/yunbao/main/manager/imrongcloud/ConversationIMListManager.java
+++ b/main/src/main/java/com/yunbao/main/manager/imrongcloud/ConversationIMListManager.java
@@ -27,6 +27,7 @@ import com.yunbao.main.utils.PDLiveCustomConversationProvider;
import com.yunbao.main.utils.PDLiveMessageProcessor;
import com.yunbao.main.utils.PDSightMessageItemProvider;
+import io.rong.imkit.IMCenter;
import io.rong.imkit.RongIM;
import io.rong.imkit.config.ConversationListBehaviorListener;
import io.rong.imkit.config.RongConfigCenter;
@@ -35,7 +36,6 @@ import io.rong.imkit.conversation.messgelist.provider.SightMessageItemProvider;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.provider.PrivateConversationProvider;
import io.rong.imkit.userinfo.RongUserInfoManager;
-import io.rong.imkit.userinfo.UserDataProvider;
import io.rong.imkit.utils.RouteUtils;
import io.rong.imkit.widget.adapter.ProviderManager;
import io.rong.imlib.model.Conversation;
@@ -149,6 +149,9 @@ public class ConversationIMListManager {
//使用空白字段存储自己服务器用户的所有的信息
userInfo.setExtra(GsonUtils.toJson(userBean));
RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
+ if (TextUtils.equals(userBean.getIs_admin(), "1")) {
+ setConversationToTop(userInfo.getUserId());
+ }
}
}
@@ -169,12 +172,12 @@ public class ConversationIMListManager {
private void addUserInfoProvider(String userId, Activity context) {
//获取用户信息
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(userId);
- if (null != userInfo){
+ if (null != userInfo) {
context.runOnUiThread(() -> {
Conversation.ConversationType type = Conversation.ConversationType.PRIVATE;
RouteUtils.routeToConversationActivity(context, type, userId, null);
});
- }else {
+ } else {
CommonHttpUtil.getUserBaseinfo(userId, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -194,6 +197,9 @@ public class ConversationIMListManager {
userInfo.setExtra(GsonUtils.toJson(userBean));
RongUserInfoManager.getInstance().setUserInfoProvider(s -> {
RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
+ if (TextUtils.equals(userBean.getIs_admin(), "1")) {
+ setConversationToTop(userInfo.getUserId());
+ }
return null;
}, true);
@@ -208,6 +214,14 @@ public class ConversationIMListManager {
}
+ /**
+ * 消息置顶
+ */
+ private void setConversationToTop(String targetId) {
+ IMCenter.getInstance().setConversationToTop(Conversation.ConversationType.PRIVATE, targetId, true, false, null
+ );
+ }
+
private ConversationListBehaviorListener listener = new ConversationListBehaviorListener() {
@Override
public boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String targetId) {
@@ -234,9 +248,17 @@ public class ConversationIMListManager {
*/
@Override
public boolean onConversationLongClick(Context context, View view, BaseUiConversation baseUiConversation) {
- new ConversationPopuwWindow((Activity) context)
- .setIsAdmin(baseUiConversation.mCore.getTargetId())
- .show(view);
+ //非指导员都可以点击
+ UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(baseUiConversation.mCore.getTargetId());
+ if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
+ IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
+ if (!TextUtils.equals(model.getIsAdmin(), "1")) {
+ new ConversationPopuwWindow((Activity) context)
+ .setIsAdmin(baseUiConversation.mCore.getTargetId())
+ .show(view);
+ }
+ }
+
return true;
}
@@ -246,7 +268,7 @@ public class ConversationIMListManager {
*/
@Override
public boolean onConversationClick(Context context, View view, BaseUiConversation baseUiConversation) {
- ViewClicksAntiShake.clicksAntiShake(view, () -> jumpConversation((Activity) context, baseUiConversation.mCore.getTargetId()));
+ jumpConversation((Activity) context, baseUiConversation.mCore.getTargetId());
return true;
}
};
diff --git a/main/src/main/java/com/yunbao/main/utils/PDLiveCustomConversationProvider.java b/main/src/main/java/com/yunbao/main/utils/PDLiveCustomConversationProvider.java
index b0afb8644..cd34f10ba 100644
--- a/main/src/main/java/com/yunbao/main/utils/PDLiveCustomConversationProvider.java
+++ b/main/src/main/java/com/yunbao/main/utils/PDLiveCustomConversationProvider.java
@@ -17,6 +17,7 @@ import io.rong.imkit.config.RongConfigCenter;
import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.provider.BaseConversationProvider;
import io.rong.imkit.userinfo.RongUserInfoManager;
+import io.rong.imkit.utils.RongDateUtils;
import io.rong.imkit.widget.adapter.IViewProviderListener;
import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.RongIMClient;
@@ -24,6 +25,7 @@ import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.imlib.model.UserInfo;
import io.rong.message.RecallNotificationMessage;
+import io.rong.message.TextMessage;
/**
* pdlive自定义会话模板
@@ -48,6 +50,36 @@ public class PDLiveCustomConversationProvider extends BaseConversationProvider {
public void bindViewHolder(ViewHolder holder, BaseUiConversation uiConversation, int position, List list, IViewProviderListener listener) {
//根据业务需要,自定义处理
super.bindViewHolder(holder, uiConversation, position, list, listener);
+ String targetId = uiConversation.mCore.getTargetId();
+ UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
+ if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
+ IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
+ //指导员对话逻辑
+ if (model != null && TextUtils.equals(model.getIsAdmin(), "1")) {
+ holder.setBackgroundRes(R.id.administrator_layout, R.mipmap.img_news_instructor_bg);
+ holder.setBackgroundRes(R.id.rc_conversation_item, R.mipmap.white_bg);
+ holder.setVisible(R.id.rc_conversation_portrait_layout, false);
+ holder.setVisible(R.id.administrator_layout, true);
+ holder.setImageUri(R.id.img_administrator, userInfo.getPortraitUri());
+ holder.setText(R.id.conversation_title, userInfo.getName());
+ if (uiConversation.mCore.getLatestMessage() instanceof TextMessage) {
+ TextMessage message = (TextMessage) uiConversation.mCore.getLatestMessage();
+ holder.setText(R.id.rc_conversation_content, message.getContent());
+ }
+ if (uiConversation.mCore.getUnreadMessageCount() == 0) {
+ holder.setVisible(R.id.conversation_unread, false);
+ } else {
+ holder.setVisible(R.id.conversation_unread, true);
+ holder.setText(R.id.conversation_unread_count, String.valueOf(uiConversation.mCore.getUnreadMessageCount()));
+ }
+
+ holder.setText(R.id.conversation_date, RongDateUtils.getConversationListFormatDate(uiConversation.mCore.getSentTime(), holder.getContext()));
+ } else {
+ //非指导员按照原有视图展示
+ holder.setVisible(R.id.rc_conversation_portrait_layout, true);
+ holder.setVisible(R.id.administrator_layout, false);
+ }
+ }
ImageView readReceipt = holder.itemView.findViewById(com.yunbao.live.R.id.rc_conversation_read_receipt);
ImageView conversationUnread = holder.itemView.findViewById(com.yunbao.live.R.id.rc_conversation_unread_bg);
ImageView imgNew = holder.itemView.findViewById(com.yunbao.live.R.id.img_new);
@@ -55,8 +87,7 @@ public class PDLiveCustomConversationProvider extends BaseConversationProvider {
Glide.with(holder.getContext()).asDrawable().load(R.mipmap.rc_unread_count_bg_normal).into(conversationUnread);
}
if (imgNew != null) {
- String targetId = uiConversation.mCore.getTargetId();
- UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
+
if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
if (model != null && TextUtils.equals(model.getIsAdmin(), "1"))
diff --git a/main/src/main/res/layout/activity_conversation_list.xml b/main/src/main/res/layout/activity_conversation_list.xml
index 3da278b4a..97dab5ba0 100644
--- a/main/src/main/res/layout/activity_conversation_list.xml
+++ b/main/src/main/res/layout/activity_conversation_list.xml
@@ -9,20 +9,118 @@
android:orientation="vertical"
android:paddingTop="20dp">
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main/src/main/res/mipmap-xxhdpi/img_news_instructor_bg.png b/main/src/main/res/mipmap-xxhdpi/img_news_instructor_bg.png
new file mode 100644
index 000000000..4674fe610
Binary files /dev/null and b/main/src/main/res/mipmap-xxhdpi/img_news_instructor_bg.png differ
diff --git a/main/src/main/res/mipmap-xxhdpi/img_news_interaction.png b/main/src/main/res/mipmap-xxhdpi/img_news_interaction.png
new file mode 100644
index 000000000..6c808bbb6
Binary files /dev/null and b/main/src/main/res/mipmap-xxhdpi/img_news_interaction.png differ
diff --git a/main/src/main/res/mipmap-xxhdpi/img_news_notice.png b/main/src/main/res/mipmap-xxhdpi/img_news_notice.png
new file mode 100644
index 000000000..3c9b50d2b
Binary files /dev/null and b/main/src/main/res/mipmap-xxhdpi/img_news_notice.png differ
diff --git a/main/src/main/res/mipmap-xxhdpi/img_news_online.png b/main/src/main/res/mipmap-xxhdpi/img_news_online.png
new file mode 100644
index 000000000..5ff00d7e5
Binary files /dev/null and b/main/src/main/res/mipmap-xxhdpi/img_news_online.png differ