11111
This commit is contained in:
@@ -50,10 +50,12 @@ import com.yunbao.common.bean.UpdataListBean;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.custom.TabButtonGroup;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.event.RongIMConnectionStatusEvent;
|
||||
import com.yunbao.common.event.UpdateTablePointMe;
|
||||
import com.yunbao.common.http.CommonHttpConsts;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
@@ -81,6 +83,7 @@ import com.yunbao.live.views.ChatListViewHolder;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.dialog.MainStartDialogFragment;
|
||||
import com.yunbao.main.dialog.SigninDialog;
|
||||
import com.yunbao.main.event.MainHomeCommunityToChatEvent;
|
||||
import com.yunbao.main.event.PDLiveConversationListEvent;
|
||||
import com.yunbao.main.http.MainHttpConsts;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
@@ -361,19 +364,19 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
|
||||
@Override
|
||||
public boolean onReceived(io.rong.imlib.model.Message message, int i, boolean b, boolean b1) {
|
||||
Log.e("wewe",message.getConversationType() +"112121");
|
||||
//融云直播间聊天
|
||||
Message msg = Message.obtain();
|
||||
msg.what = Constants.SOCKET_WHAT_BROADCAST;
|
||||
if (!"".equals(message.getContent()) && message.getContent() != null) {
|
||||
TextMessage content = (TextMessage) message.getContent();
|
||||
if(content.getContent().contains("_method_")) {
|
||||
msg.obj = content.getContent();
|
||||
if (SocketRyClient.mSocketHandler != null) {
|
||||
SocketRyClient.mSocketHandler.sendMessage(msg);
|
||||
}
|
||||
Log.e("wewe", message.getConversationType() + "112121");
|
||||
//融云直播间聊天
|
||||
Message msg = Message.obtain();
|
||||
msg.what = Constants.SOCKET_WHAT_BROADCAST;
|
||||
if (!"".equals(message.getContent()) && message.getContent() != null) {
|
||||
TextMessage content = (TextMessage) message.getContent();
|
||||
if (content.getContent().contains("_method_")) {
|
||||
msg.obj = content.getContent();
|
||||
if (SocketRyClient.mSocketHandler != null) {
|
||||
SocketRyClient.mSocketHandler.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@@ -1096,9 +1099,21 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
* @param model
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void userSignOut(BaseModel model) {
|
||||
// IMLoginManager.get(mContext).logout();
|
||||
// CommonAppConfig.getInstance().clearLoginInfo();
|
||||
// LoginActivity.forward();
|
||||
public void userSignOut(RongIMConnectionStatusEvent model) {
|
||||
IMLoginManager.get(mContext).logout();
|
||||
CommonAppConfig.getInstance().clearLoginInfo();
|
||||
LoginActivity.forward();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户被踢下线
|
||||
*
|
||||
* @param model
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMainHomeCommunityToChatEvent(MainHomeCommunityToChatEvent model) {
|
||||
ConversationIMListManager.get(mContext).jumpConversation(mContext, model.getTargetId());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.yunbao.main.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.PopupWindow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
import io.rong.imkit.IMCenter;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
|
||||
public class ConversationPopuwWindow implements View.OnClickListener {
|
||||
private Activity mContext;
|
||||
private String userId;
|
||||
private View popupView;
|
||||
private TextView tvBlack;
|
||||
private PopupWindow popupWindow;
|
||||
|
||||
public ConversationPopuwWindow(Activity context) {
|
||||
this.mContext = context;
|
||||
popupView = LayoutInflater.from(mContext).inflate(R.layout.popwindow_chat_list, null);
|
||||
initView();
|
||||
}
|
||||
|
||||
public ConversationPopuwWindow setIsAdmin(String userId) {
|
||||
this.userId = userId;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化组件
|
||||
*/
|
||||
private void initView() {
|
||||
tvBlack = popupView.findViewById(com.yunbao.live.R.id.tv_black);
|
||||
tvBlack.setOnClickListener(this);
|
||||
tvBlack.setText("删除");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示弹窗
|
||||
*
|
||||
* @param view 显示在什么组件的下面
|
||||
* @return
|
||||
*/
|
||||
public void show(View view) {
|
||||
popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
|
||||
int[] location = new int[2];
|
||||
view.getLocationOnScreen(location);
|
||||
popupWindow.setBackgroundDrawable(new BitmapDrawable());
|
||||
popupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
|
||||
|
||||
int popupWidth = popupView.getMeasuredWidth();
|
||||
int popupHeight = popupView.getMeasuredHeight();
|
||||
|
||||
popupWindow.showAtLocation(view, Gravity.NO_GRAVITY, (location[0]+view.getWidth()/2)-popupWidth/2,
|
||||
location[1]-popupHeight);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
//拉黑
|
||||
if (id == com.yunbao.live.R.id.tv_black) {
|
||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||
IMCenter.getInstance().removeConversation(conversationType, userId, new RongIMClient.ResultCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean aBoolean) {
|
||||
ToastUtil.show("删除成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode errorCode) {
|
||||
ToastUtil.show(errorCode.msg);
|
||||
}
|
||||
});
|
||||
popupWindow.dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yunbao.main.event;
|
||||
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
/**
|
||||
* web跳转聊天页面
|
||||
*/
|
||||
public class MainHomeCommunityToChatEvent extends BaseModel {
|
||||
private String targetId = "";
|
||||
|
||||
public String getTargetId() {
|
||||
return targetId;
|
||||
}
|
||||
|
||||
public MainHomeCommunityToChatEvent setTargetId(String targetId) {
|
||||
this.targetId = targetId;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,8 @@ import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -13,19 +15,24 @@ import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.manager.InstructorRemarkManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.activity.PDLIiveChatActivity;
|
||||
import com.yunbao.live.activity.PDLiveConversationActivity;
|
||||
import com.yunbao.live.bean.SearchUserBean;
|
||||
import com.yunbao.main.activity.PDLiveConversationListActivity;
|
||||
import com.yunbao.main.dialog.ConversationPopuwWindow;
|
||||
import com.yunbao.main.utils.PDLiveCustomConversationProvider;
|
||||
import com.yunbao.main.utils.PDLiveMessageProcessor;
|
||||
|
||||
import io.rong.imkit.RongIM;
|
||||
import io.rong.imkit.config.ConversationListBehaviorListener;
|
||||
import io.rong.imkit.config.RongConfigCenter;
|
||||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||||
import io.rong.imkit.conversationlist.provider.PrivateConversationProvider;
|
||||
import io.rong.imkit.userinfo.RongUserInfoManager;
|
||||
import io.rong.imkit.utils.RouteUtils;
|
||||
import io.rong.imkit.widget.adapter.ProviderManager;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.UserInfo;
|
||||
|
||||
/**
|
||||
@@ -47,6 +54,8 @@ public class ConversationIMListManager {
|
||||
ProviderManager<BaseUiConversation> providerManager = RongConfigCenter.conversationListConfig().getProviderManager();
|
||||
//用自定义模板替换 SDK 原有模板
|
||||
providerManager.replaceProvider(PrivateConversationProvider.class, new PDLiveCustomConversationProvider());
|
||||
//会话列表监听事件
|
||||
RongIM.setConversationListBehaviorListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,10 +107,12 @@ public class ConversationIMListManager {
|
||||
* @param targetId 用户id
|
||||
*/
|
||||
public void jumpConversation(Activity context, String targetId) {
|
||||
|
||||
Intent intent = new Intent(context, PDLiveConversationActivity.class);
|
||||
intent.putExtra(RouteUtils.TARGET_ID, targetId);
|
||||
context.startActivity(intent);
|
||||
// RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationActivity, PDLiveConversationActivity.class);
|
||||
// Intent intent = new Intent(context, PDLiveConversationActivity.class);
|
||||
// intent.putExtra(RouteUtils.TARGET_ID, targetId);
|
||||
// context.startActivity(intent);
|
||||
Conversation.ConversationType type = Conversation.ConversationType.PRIVATE;
|
||||
RouteUtils.routeToConversationActivity(context, type, targetId, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +130,7 @@ public class ConversationIMListManager {
|
||||
String userNiceName = "";
|
||||
String remark = InstructorRemarkManager.get(mContext).getInstructorRemark().get(userId);
|
||||
if (!TextUtils.isEmpty(remark)) {
|
||||
userNiceName = userBean.getUserNiceName() + "(" + remark + ")";
|
||||
userNiceName = remark;
|
||||
} else {
|
||||
userNiceName = userBean.getUserNiceName();
|
||||
}
|
||||
@@ -137,5 +148,29 @@ public class ConversationIMListManager {
|
||||
|
||||
}
|
||||
|
||||
private ConversationListBehaviorListener listener = new ConversationListBehaviorListener() {
|
||||
@Override
|
||||
public boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String s) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onConversationPortraitLongClick(Context context, Conversation.ConversationType conversationType, String s) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onConversationLongClick(Context context, View view, BaseUiConversation baseUiConversation) {
|
||||
new ConversationPopuwWindow((Activity) context)
|
||||
.setIsAdmin(baseUiConversation.mCore.getTargetId())
|
||||
.show(view);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onConversationClick(Context context, View view, BaseUiConversation baseUiConversation) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -45,9 +45,9 @@ public class PDLiveCustomConversationProvider extends BaseConversationProvider {
|
||||
Message.ReceivedStatus receivedStatus = list.get(position).mCore.getReceivedStatus();
|
||||
ImageView readReceipt = holder.itemView.findViewById(com.yunbao.live.R.id.rc_read_receipt_new);
|
||||
if (receivedStatus.isRead()) {
|
||||
readReceipt.setBackgroundResource(com.yunbao.live.R.mipmap.icon_message_read);
|
||||
}else {
|
||||
readReceipt.setBackgroundResource(com.yunbao.live.R.mipmap.icon_message_unread);
|
||||
}else {
|
||||
readReceipt.setBackgroundResource(com.yunbao.live.R.mipmap.icon_message_read);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,9 @@ import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -49,11 +51,15 @@ import com.yunbao.main.R;
|
||||
import com.yunbao.main.activity.FansActivity;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.dialog.EncourageDialog;
|
||||
import com.yunbao.main.event.MainHomeCommunityToChatEvent;
|
||||
import com.yunbao.main.manager.imrongcloud.ConversationIMListManager;
|
||||
import com.yunbao.main.utils.BottomBarUtil;
|
||||
import com.yunbao.video.activity.VideoPlayActivity;
|
||||
import com.yunbao.video.bean.VideoBean;
|
||||
import com.yunbao.video.utils.VideoStorge;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -209,12 +215,6 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
}
|
||||
|
||||
public void loadNewUrl() {
|
||||
// new Handler().postDelayed(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// mWebView.reload();
|
||||
// }
|
||||
// },100);
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
@@ -294,8 +294,10 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidClickSayHiBack(String uid, String name, String img) {
|
||||
SystemMessageActivity.forward(mContext, "-1", uid, name, img);
|
||||
EventBus.getDefault().post(new MainHomeCommunityToChatEvent().setTargetId(uid));
|
||||
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidMethodLookToLive(String liveId) {
|
||||
//看直播
|
||||
@@ -321,6 +323,7 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
}
|
||||
|
||||
private LiveRoomCheckLivePresenter mCheckLivePresenter;
|
||||
|
||||
private void gotoLive(final String live_id) {
|
||||
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
|
||||
@Override
|
||||
@@ -343,7 +346,7 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
}
|
||||
mCheckLivePresenter.checkLive(liveBean);
|
||||
} else {
|
||||
RouteUtil.forwardUserHome(mContext, live_id,0);
|
||||
RouteUtil.forwardUserHome(mContext, live_id, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
18
main/src/main/res/layout/popwindow_chat_list.xml
Normal file
18
main/src/main/res/layout/popwindow_chat_list.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_black"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="70dp"
|
||||
android:background="@mipmap/chat_back"
|
||||
android:gravity="center"
|
||||
android:text="@string/delete"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="17sp" />
|
||||
|
||||
</LinearLayout>
|
||||
BIN
main/src/main/res/mipmap-xxhdpi/chat_back.png
Normal file
BIN
main/src/main/res/mipmap-xxhdpi/chat_back.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Reference in New Issue
Block a user