MM 新增世界聊天

This commit is contained in:
guozhen
2024-12-27 10:32:26 +08:00
committed by xuhuixiang
parent 6e5816c8b3
commit d084dd22a4
38 changed files with 605 additions and 301 deletions

View File

@@ -164,6 +164,8 @@ public class IMUIKitConfig {
public static String SERVICES_IDS_TAG = "services_id";
public static String RING_MESSAGE_TAG = "message_rings";
public static String RING_CALL_TAG = "call_rings";
//世界聊天ids
public static String SHIJIECHAT_IDS_TAG = "shijiechat_id";
/**
* GoogleMap apikey

View File

@@ -89,7 +89,8 @@ public class TeamAnnouncementActivity extends LllChatBaseActivity {
return;
}
Team teaminfo = teamResultInfo.getValue().getTeam();
if (teaminfo.getCreator().equals(IMKitClient.account())) { //我是群主
if (teaminfo.getCreator().equals(IMKitClient.account())||teamResultInfo.getValue().getTeamMember().getType()==TeamMemberType.Manager) { //我是群主
binding.layoutTeammember.setVisibility(View.GONE);
binding.layoutTeammanager.setVisibility(View.VISIBLE);
String announcement = teaminfo.getAnnouncement();

View File

@@ -653,13 +653,13 @@ public class MainActivity extends BaseActivity {
shareDateUtils = new ShareDateUtils();
shareDateUtils.getAllSessionList();
shareDateUtils.getLocFriends();
// index2Fragment = new HomeFragment();
// index2Fragment = new HomeFragment();
chatTabFragment = new ChatTabFragment();
// voomFragment = new VoomFragment();
// voomFragment = new VoomFragment();
walletFragment = new MineFragment();
// fragments.add(index2Fragment);
// fragments.add(index2Fragment);
fragments.add(chatTabFragment);
// fragments.add(voomFragment);
// fragments.add(voomFragment);
fragments.add(walletFragment);
fragmentAdapter = new FragmentAdapter(this);
@@ -1866,11 +1866,17 @@ public class MainActivity extends BaseActivity {
if (feedbackResp.data != null && feedbackResp.data.size() > 0) {
for (ConfigBean configBean : feedbackResp.data) {
if (configBean.getId() == 1) {
DataUtils.set(MainActivity.this, "transfer_cash", configBean.getVal().equals("1"));
// if (configBean.getId() == 1) {
// DataUtils.set(MainActivity.this, "transfer_cash", configBean.getVal().equals("1"));
// }
// if (configBean.getId() == 2) {
// DataUtils.set(MainActivity.this, "transfer_jifen", configBean.getVal().equals("1"));
// }
if (configBean.getId() == 3) {
DataUtils.set(MainActivity.this, "transfer_score", configBean.getVal().equals("1"));
}
if (configBean.getId() == 2) {
DataUtils.set(MainActivity.this, "transfer_jifen", configBean.getVal().equals("1"));
if (configBean.getId() == 4) {
DataUtils.set(MainActivity.this, "redpkg_score", configBean.getVal().equals("1"));
}
}

View File

@@ -9,6 +9,7 @@ import android.os.Build;
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.view.ViewGroup;
@@ -25,18 +26,32 @@ import com.dskj.rbchat.R;
import com.dskj.rbchat.databinding.FragmentChatconversationBinding;
import com.dskj.rbchat.event.ConversationEditEvent;
import com.dskj.rbchat.main.MainActivity;
import com.dskj.rbchat.model.NotifyCountBean;
import com.dskj.rbchat.network.Api;
import com.dskj.rbchat.network.BaseObserver;
import com.dskj.rbchat.network.Result;
import com.dskj.rbchat.utils.AdaptScreenUtils;
import com.dskj.rbchat.utils.DataUtils;
import com.dskj.rbchat.utils.GsonUtils;
import com.dskj.rbchat.utils.LogUtils;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.gson.reflect.TypeToken;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.RequestCallback;
import com.netease.nimlib.sdk.friend.model.MuteListChangedNotify;
import com.netease.nimlib.sdk.msg.MsgService;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.msg.model.RecentContact;
import com.netease.nimlib.sdk.msg.model.RecentSession;
import com.netease.nimlib.sdk.team.TeamService;
import com.netease.nimlib.sdk.team.constant.TeamMemberType;
import com.netease.nimlib.sdk.team.model.Team;
import com.netease.yunxin.kit.alog.ALog;
import com.netease.yunxin.kit.chatkit.model.ConversationInfo;
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
import com.netease.yunxin.kit.chatkit.repo.ContactRepo;
import com.netease.yunxin.kit.chatkit.ui.ChatUIConstants;
import com.netease.yunxin.kit.chatkit.ui.data.ChatDatabase;
import com.netease.yunxin.kit.chatkit.ui.data.dao.ChatDraftDataDao;
import com.netease.yunxin.kit.chatkit.ui.data.entity.ChatDraftData;
@@ -63,9 +78,18 @@ import com.netease.yunxin.kit.corekit.im.model.FriendInfo;
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
import com.netease.yunxin.kit.corekit.route.XKitRouter;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
//会话fragment
public class ChatConversationFragment extends BaseFragment implements ILoadListener, ViewHolderClickListener {
@@ -73,6 +97,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
public static final String TAG = "ChatConversationFragment";
private int conversationType; //0,1,2
private FragmentChatconversationBinding viewBinding;
private ConversationView conversationViewShiJie;
private ConversationView conversationViewTop;
private ConversationView conversationViewBottom;
protected View networkErrorView;
@@ -82,6 +107,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
private List<ConversationBean> listFriend;
List<ConversationBean> listMyTeam;
List<ConversationBean> listJoinTeam;
List<ConversationBean> listGuanfangTeam;
private FunViewHolderFactory funViewHolderFactory;
private Observer<FetchResult<List<ConversationBean>>> changeObserver;
@@ -95,6 +121,8 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
private Observer<FetchResult<Integer>> unreadCountObserver;
private ChatDraftDataDao dataDao;
private ChatTabFragment chatTabParentFragment;
protected final EventNotify<ChangeChatDraftEvent> changeDraftEvent =
new EventNotify<ChangeChatDraftEvent>() {
@Override
@@ -123,6 +151,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
}
beans.add(bean);
conversationViewTop.update(beans);
conversationViewShiJie.update(beans);
return;
}
}
@@ -140,6 +169,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
beans.add(bean);
conversationViewBottom.update(beans);
conversationViewShiJie.update(beans);
return;
}
}
@@ -172,6 +202,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
if (conversationType == 2) {
listMyTeam = new ArrayList<>();
listJoinTeam = new ArrayList<>();
listGuanfangTeam = new ArrayList<>();
}
initView();
return viewBinding.getRoot();
@@ -192,8 +223,111 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
bindView();
registerObserver();
EventCenter.registerEventNotify(changeDraftEvent);
// if (conversationType != 1) {
// getNotifiesCount();
// }
}
public ArrayList<String> groupShiJieIds = new ArrayList<>(); //官方群聊
// private void getNotifiesCount() {
// Api.getInstance().notifiesmessageCountNew(IMKitClient.account(), DataUtils.getCurrentTimeType(System.currentTimeMillis()))
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(new BaseObserver<>() {
// @Override
// public void onSuccess(Result<NotifyCountBean> feedbackResp) {
// LogUtils.i("获取到的错误:" + feedbackResp + "" + feedbackResp.data);
// String groupId = feedbackResp.data.getGroupId();
// if (!TextUtils.isEmpty(groupId)) {
// try {
// JSONArray array = new JSONArray(groupId);
// if (array.length() > 0) {
// String values = array.getString(0);
// if (!TextUtils.isEmpty(values)) {
// String[] groupIdStr = values.split(",");
// groupShiJieIds.addAll(Arrays.asList(groupIdStr));
// queryTeamInfo();
// }
// }
// } catch (JSONException e) {
// throw new RuntimeException(e);
// }
// }
// }
//
//
// @Override
// public void onError(int code, String msg) {
// LogUtils.i("获取到的错误:" + code + "" + msg);
//// WidgetUtils.showToast(getActivity(), msg, WidgetUtils.ToastType.ERROR);
// LogUtils.i("获取到的错误:" + code + "" + msg);
// }
// });
// }
//
// private void queryTeamInfo() {
// for (String groupId : groupShiJieIds) {
// NIMClient.getService(TeamService.class).searchTeam(groupId).setCallback(new RequestCallback<Team>() {
// @Override
// public void onSuccess(Team result) {
// addShiJieConversation(result);
// }
//
// @Override
// public void onFailed(int code) {
//
// }
//
// @Override
// public void onException(Throwable exception) {
//
// }
// });
// }
//
// }
// public void addShiJieConversation(Team team) {
// RecentContact recentContact = NIMClient.getService(MsgService.class).createEmptyRecentContact(team.getId(), SessionTypeEnum.Team, 0, System.currentTimeMillis(), true, true);
// ConversationInfo info = new ConversationInfo(recentContact);
// info.setTeamInfo(team);
// info.setStickTop(true);
// ConversationBean conversationBean = new ConversationBean(info);
// conversationBean.isShiJie = true;
// List<ConversationBean> list = new ArrayList<>();
// if (conversationType == 0) {
// boolean isAdd = false;
// for (ConversationBean conversationBean1 : conversationViewTop.getAdatper().getConversationList()) {
// if (conversationBean1.infoData.getTeamInfo() != null && Objects.equals(conversationBean1.infoData.getTeamInfo().getId(), team.getId())) {
// conversationBean1.infoData.setStickTop(true);
// conversationBean1.isShiJie = true;
// isAdd = true;
// break;
// }
// }
// if (!isAdd) {
// list.add(conversationBean);
// conversationViewTop.addData(list);
// }
// } else if (conversationType == 2) {
// boolean isAdd = false;
// for (ConversationBean conversationBean1 : conversationViewShiJie.getAdatper().getConversationList()) {
// if (conversationBean1.infoData.getTeamInfo() != null && Objects.equals(conversationBean1.infoData.getTeamInfo().getId(), team.getId())) {
// conversationBean1.infoData.setStickTop(true);
// conversationBean1.isShiJie = true;
// isAdd = true;
// break;
// }
// }
// if (!isAdd) {
// list.add(conversationBean);
// conversationViewShiJie.addData(list);
// }
// }
//
//
// }
private void registerObserver() {
viewModel.getChangeLiveData().observeForever(changeObserver);
@@ -233,6 +367,39 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
return result;
};
public Comparator<ConversationBean> conversationShiJieComparator =
(bean1, bean2) -> {
int result;
if (bean1 == null) {
result = 1;
} else if (bean2 == null) {
result = -1;
} else if (bean1.infoData.isStickTop() == bean2.infoData.isStickTop()) {
if (bean1.isShiJie == bean2.isShiJie) {
long time = bean1.infoData.getTime() - bean2.infoData.getTime();
result = time == 0L ? 0 : (time > 0 ? -1 : 1);
} else {
result = bean1.isShiJie ? -1 : 1;
}
} else {
result = bean1.isShiJie ? -1 : 1;
}
return result;
};
public List<ConversationBean> removeShiJieConversation(List<ConversationBean> conversationBeans) {
List<ConversationBean> conversationBeans1 = new ArrayList<>();
for (ConversationBean conversationBean : conversationBeans) {
if (!chatTabParentFragment.groupIds.contains(conversationBean.infoData.getContactId())) {
conversationBeans1.add(conversationBean);
}
}
return conversationBeans1;
}
private void initObserver() {
changeObserver =
result -> {
@@ -249,8 +416,9 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
conversationViewTop.removeAll();
conversationViewBottom.removeAll();
} else {
conversationViewTop.remove(result.getData());
conversationViewBottom.remove(result.getData());
List<ConversationBean> list = removeShiJieConversation(result.getData());
conversationViewTop.remove(list);
conversationViewBottom.remove(list);
}
}
@@ -295,10 +463,13 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
if (result.getLoadStatus() == LoadStatus.Success) {
ALog.d(LIB_TAG, TAG, "TeamInfoLiveData, Success");
if (conversationType == 0) {
LogUtils.d("shijie", "更新群组信息" + result.getData().size() + " conversation size==" + conversationViewTop.getDataSize());
conversationViewTop.updateTeamInfo(result.getData());
} else if (conversationType == 2) {
LogUtils.d("shijie", "更新群组信息" + result.getData().size() + " conversationshijie size==" + conversationViewShiJie.getDataSize());
conversationViewTop.updateTeamInfoType(result.getData(), true);
conversationViewBottom.updateTeamInfoType(result.getData(), false);
conversationViewShiJie.updateTeamInfo(result.getData());
}
}
};
@@ -309,6 +480,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
ALog.d(LIB_TAG, TAG, "MuteInfoLiveData, Success");
conversationViewTop.updateMuteInfo(result.getData());
conversationViewBottom.updateMuteInfo(result.getData());
conversationViewShiJie.updateMuteInfo(result.getData());
}
};
@@ -320,12 +492,14 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
ConversationHelper.updateAitInfo(result.getData(), true);
conversationViewTop.updateAit(result.getData());
conversationViewBottom.updateAit(result.getData());
conversationViewShiJie.updateAit(result.getData());
} else if (result.getType() == FetchResult.FetchType.Remove) {
ALog.d(LIB_TAG, TAG, "RemoveStickLiveData, Success");
ConversationHelper.updateAitInfo(result.getData(), false);
conversationViewTop.updateAit(result.getData());
conversationViewBottom.updateAit(result.getData());
conversationViewShiJie.updateAit(result.getData());
}
}
};
@@ -346,6 +520,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
};
}
//更新会话
private void updateFollowList(List<ConversationBean> listFriend) {
if (listFriend != null) {
@@ -392,13 +567,18 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
private boolean showAllJoinTeam = false;
private void initView() {
chatTabParentFragment = (ChatTabFragment) getParentFragment();
viewBinding.layoutShijiechat.setVisibility(View.GONE);
conversationViewTop = viewBinding.conversationViewTop;
conversationViewShiJie = viewBinding.conversationViewTeamShijie;
conversationViewBottom = viewBinding.conversationViewBottom;
funViewHolderFactory = new FunViewHolderFactory();
funViewHolderFactory.isSelector = false;
conversationViewTop.setViewHolderFactory(funViewHolderFactory);
conversationViewBottom.setViewHolderFactory(funViewHolderFactory);
conversationViewShiJie.setViewHolderFactory(funViewHolderFactory);
if (conversationType == 2) {
viewBinding.layoutShijiechat.setVisibility(View.VISIBLE);
conversationViewTop.getAdatper().setShowAll(false);
conversationViewBottom.getAdatper().setShowAll(false);
}
@@ -439,9 +619,14 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
conversationViewTop.setComparator(conversationComparator);
conversationViewTop.setLoadMoreListener(this);
conversationViewTop.setItemClickListener(this);
conversationViewBottom.setComparator(conversationComparator);
conversationViewBottom.setLoadMoreListener(this);
conversationViewBottom.setItemClickListener(this);
conversationViewShiJie.setComparator(conversationComparator);
conversationViewShiJie.setLoadMoreListener(this);
conversationViewShiJie.setItemClickListener(this);
}
private void getServicesData() {
@@ -493,6 +678,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
}
}
/**
* 初始化设置数据
*
@@ -503,6 +689,13 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
switch (conversationType) {
case 0:
List<ConversationBean> listconversation = updateServicesConversation(result.getData());
if (chatTabParentFragment.groupIds != null) { //添加世界聊天窗口
LogUtils.d("shijie", "添加世界聊天==" + chatTabParentFragment.groupIds.size());
List<ConversationBean> conversationShiJieList = addConversationTeamShiJie(listconversation);
LogUtils.d("shijie", "添加世界聊天==" + conversationShiJieList.size());
listconversation.addAll(conversationShiJieList);
}
Collections.sort(listconversation, conversationShiJieComparator);
conversationViewTop.setData(listconversation);
break;
case 1:
@@ -511,15 +704,70 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
break;
case 2:
getConversationTeamTypeList(result.getData());
LogUtils.d("shijie", "添加世界聊天 群组 groupsid==" + chatTabParentFragment.groupIds.size());
listGuanfangTeam.addAll(addConversationTeamShiJie(listGuanfangTeam));
LogUtils.d("shijie", "添加世界聊天 群组==" + listGuanfangTeam.size());
setChatDraftDataList(listMyTeam);
setChatDraftDataList(listJoinTeam);
setChatDraftDataList(listGuanfangTeam);
conversationViewTop.setData(listMyTeam);
conversationViewBottom.setData(listJoinTeam);
conversationViewShiJie.setData(listGuanfangTeam);
break;
}
}
//在已有的会话中添加世界聊天会话
public List<ConversationBean> addConversationTeamShiJie(List<ConversationBean> recentContactList) {
List<ConversationBean> listconversation = new ArrayList<>();
for (int i = 0; i < chatTabParentFragment.groupIds.size(); i++) {
boolean isAdd = false;
for (ConversationBean conversationBean : recentContactList) {
if (conversationBean.infoData.getContactId().equals(chatTabParentFragment.groupIds.get(i))) {
conversationBean.isShiJie = true;
conversationBean.infoData.setStickTop(true);
isAdd = true;
}
}
if (!isAdd) {
RecentContact recentContact = NIMClient.getService(MsgService.class).createEmptyRecentContact(chatTabParentFragment.groupIds.get(i), SessionTypeEnum.Team, 0, System.currentTimeMillis(), true, true);
ConversationInfo info = new ConversationInfo(recentContact);
if (chatTabParentFragment.teamInfos.size() > 0) {
info.setTeamInfo(chatTabParentFragment.teamInfos.get(i));
}
info.setStickTop(true);
ConversationBean conversationBean = new ConversationBean(info);
conversationBean.isShiJie = true;
listconversation.add(conversationBean);
}
}
return listconversation;
}
// // 設置包含世界聊天
// public List<ConversationBean> setHasTeamShiJie(List<ConversationBean> listConversationBean) {
// if (chatTabParentFragment.groupIds == null) {
// return listConversationBean;
// }
// for (int i = 0; i < chatTabParentFragment.groupIds.size(); i++) {
// for (ConversationBean conversationBean : listConversationBean) {
// if (conversationBean.infoData.getContactId().equals(chatTabParentFragment.groupIds.get(i))) {
// ConversationBean conversationBean1 = listConversationBean.get(listConversationBean.indexOf(conversationBean));
// listConversationBean.get(listConversationBean.indexOf(conversationBean1)).infoData.setStickTop(true);
// listConversationBean.get(listConversationBean.indexOf(conversationBean1)).isShiJie = true;
// isHasShiJieChat = true;
// break;
// }
// }
// }
// return listConversationBean;
// }
/**
* 添加数据
*
@@ -541,6 +789,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
setChatDraftDataList(listJoinTeam);
conversationViewTop.addData(listMyTeam);
conversationViewBottom.addData(listJoinTeam);
break;
}
}
@@ -554,6 +803,7 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
private void setUpdateViewData(int conversationType, List<ConversationBean> result) {
switch (conversationType) {
case 0:
LogUtils.d("shijie", "更新世界聊天" + result.size());
conversationViewTop.update(updateServicesConversation(result));
break;
case 1:
@@ -561,11 +811,14 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
conversationViewTop.update(updateServicesConversation(listFriend));
break;
case 2:
LogUtils.d("shijie", "更新世界聊天2 " + result.size());
getConversationTeamTypeList(result);
setChatDraftDataList(listMyTeam);
setChatDraftDataList(listJoinTeam);
LogUtils.d("shijie", "更新世界聊天2 " + listGuanfangTeam.size());
conversationViewTop.update(listMyTeam);
conversationViewBottom.update(listJoinTeam);
conversationViewShiJie.update(listGuanfangTeam);
break;
}
}
@@ -593,17 +846,27 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
}
//去掉客服会话 改成添加字段
//去掉客服会话, 修改世界聊天 改成添加字段
public List<ConversationBean> updateServicesConversation(List<ConversationBean> beans) {
if (servicesIds == null || servicesIds.size() == 0) {
return beans;
}
if (chatTabParentFragment.groupIds == null) {
return beans;
}
for (ConversationBean conversationBean : beans) {
conversationBean.isServices = false;
conversationBean.isShiJie = false;
if (conversationBean.infoData.getSessionType() == SessionTypeEnum.P2P && servicesIds.indexOf(conversationBean.infoData.getContactId()) >= 0) {
conversationBean.isServices = true;
}
if (conversationBean.infoData.getSessionType() == SessionTypeEnum.Team || conversationBean.infoData.getSessionType() == SessionTypeEnum.SUPER_TEAM) {
if (chatTabParentFragment.groupIds.contains(conversationBean.infoData.getContactId())) {
conversationBean.isShiJie = true;
conversationBean.infoData.setStickTop(true);
}
}
//获取草稿内容
updateChatDraftDataItem(conversationBean);
}
@@ -625,18 +888,29 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
public void getConversationTeamTypeList(List<ConversationBean> list) {
listMyTeam.clear();
listJoinTeam.clear();
listGuanfangTeam.clear();
for (ConversationBean conversationBean : list) {
if (conversationBean.infoData.getTeamInfo() != null) { //不是群就是好友 也包含已删除的好友会话
if (conversationBean.infoData.getTeamInfo().getCreator().equals(IMKitClient.account())) {
listMyTeam.add(conversationBean);
if (isShiJieConversation(conversationBean)) {
conversationBean.isShiJie = true;
conversationBean.infoData.setStickTop(true);
listGuanfangTeam.add(conversationBean);
} else {
listJoinTeam.add(conversationBean);
if (conversationBean.infoData.getTeamInfo().getCreator().equals(IMKitClient.account())) {
listMyTeam.add(conversationBean);
} else {
listJoinTeam.add(conversationBean);
}
}
}
}
}
public boolean isShiJieConversation(ConversationBean conversationBean) {
return chatTabParentFragment.groupIds.contains(conversationBean.infoData.getContactId());
}
private void doEmptyView() {
if (conversationType != 2) {
if (conversationViewTop.getDataSize() > 0) {
@@ -647,10 +921,12 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
viewBinding.layoutOneroot.setVisibility(View.GONE);
}
} else {
if (conversationViewTop.getDataSize() == 0 && conversationViewBottom.getDataSize() == 0) {
if (conversationViewTop.getDataSize() == 0 && conversationViewBottom.getDataSize() == 0 && conversationViewShiJie.getDataSize() == 0) {
emptyView.setVisibility(View.VISIBLE);
viewBinding.layoutOneroot.setVisibility(View.GONE);
viewBinding.layoutShijiechat.setVisibility(View.GONE);
} else {
viewBinding.layoutShijiechat.setVisibility(View.VISIBLE);
emptyView.setVisibility(View.GONE);
viewBinding.layoutOneroot.setVisibility(View.VISIBLE);
}
@@ -691,9 +967,11 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
position);
}
if (!result && !TextUtils.isEmpty(data.router)) {
boolean isShiJie = ((ConversationBean) data).isShiJie;
XKitRouter.withKey(data.router)
.withParam(data.paramKey, data.param)
.withParam("isService", ((ConversationBean) data).isServices)
.withParam(ChatUIConstants.KEY_TEAM_ISGUANFANG, isShiJie)
.withContext(ChatConversationFragment.this.requireContext())
.navigate();
}
@@ -752,6 +1030,9 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe
private void showBottomDialog(BaseBean data) {
if (data instanceof ConversationBean) {
ConversationBean dataBean = (ConversationBean) data;
if (dataBean.isShiJie) {
return;
}
BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(getActivity(), R.style.BottomSheetDialog);
View bottomView = LayoutInflater.from(getActivity()).inflate(R.layout.bottom_sheet_layout_conversation, null);

View File

@@ -15,12 +15,18 @@ import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dskj.rbchat.IMUIKitConfig;
import com.dskj.rbchat.R;
import com.dskj.rbchat.base.LllChatBaseActivity;
import com.dskj.rbchat.databinding.ActivityEditChatrecordBinding;
import com.dskj.rbchat.dialog.ActionConfirmDialog;
import com.dskj.rbchat.event.ConversationEditEvent;
import com.dskj.rbchat.login.PhoneLoginActivity;
import com.dskj.rbchat.model.NotifyCountBean;
import com.dskj.rbchat.network.Api;
import com.dskj.rbchat.network.BaseObserver;
import com.dskj.rbchat.network.Result;
import com.dskj.rbchat.utils.DataUtils;
import com.dskj.rbchat.utils.LogUtils;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.msg.MsgService;
@@ -42,11 +48,19 @@ import com.netease.yunxin.kit.conversationkit.ui.model.ConversationBean;
import com.netease.yunxin.kit.conversationkit.ui.page.viewmodel.ConversationViewModel;
import com.netease.yunxin.kit.conversationkit.ui.view.ConversationView;
import com.netease.yunxin.kit.corekit.event.EventCenter;
import com.netease.yunxin.kit.corekit.im.IMKitClient;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
//编辑聊天记录
public class EditChatRecordlistActivity extends LllChatBaseActivity {
@@ -58,12 +72,14 @@ public class EditChatRecordlistActivity extends LllChatBaseActivity {
public FunViewHolderFactory conversationFactory;
private Observer<FetchResult<List<ConversationBean>>> changeObserver;
public int paramType;
public ArrayList<String> groupIds = new ArrayList<>(); //官方群聊
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityEditChatrecordBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
groupIds = getIntent().getStringArrayListExtra("groupIds");
initView();
initObserver();
initData();
@@ -80,6 +96,7 @@ public class EditChatRecordlistActivity extends LllChatBaseActivity {
return 0;
}
private Comparator<ConversationInfo> conversationComparator =
(bean1, bean2) -> {
int result;
@@ -107,11 +124,10 @@ public class EditChatRecordlistActivity extends LllChatBaseActivity {
this,
result -> {
if (result.getLoadStatus() == LoadStatus.Success) {
conversationView.setData(result.getData());
conversationView.setData(removeShiJieConversation(result.getData()));
} else if (result.getLoadStatus() == LoadStatus.Finish) {
conversationView.addData(result.getData());
conversationView.addData(removeShiJieConversation(result.getData()));
}
if (conversationView.getDataSize() > 0) {
binding.emptyLayout.setVisibility(View.GONE);
} else {
@@ -123,6 +139,22 @@ public class EditChatRecordlistActivity extends LllChatBaseActivity {
}
public List<ConversationBean> removeShiJieConversation(List<ConversationBean> listconversation) {
List<ConversationBean> listconversation2 = new ArrayList<>();
if (groupIds != null && groupIds.size() > 0) {
for (ConversationBean conversationBean : listconversation) {
if (!groupIds.contains(conversationBean.infoData.getContactId())) {
listconversation2.add(conversationBean);
}
}
} else {
listconversation2.addAll(listconversation);
}
return listconversation2;
}
private void initView() {
binding.titleBarView.getBackImageView().setImageResource(R.mipmap.ic_dskj_back);
binding.titleBarView.getTitleTextView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
@@ -284,6 +316,9 @@ public class EditChatRecordlistActivity extends LllChatBaseActivity {
conversationViewModel.getChangeLiveData().removeObserver(changeObserver);
}
@Override
protected void onDestroy() {
super.onDestroy();

View File

@@ -241,11 +241,11 @@ public class NotifyMessageActivity extends LllChatBaseActivity {
public void getActivityMsgCount() {
binding.tvActivitycount.setVisibility(View.GONE);
int activityMsgCount = DataUtils.get(this, "activity_message_count", 0);
if (activityMsgCount > 0) {
binding.tvActivitycount.setVisibility(View.VISIBLE);
binding.tvActivitycount.setText(activityMsgCount > 99 ? "99+" : activityMsgCount + "");
}
// int activityMsgCount = DataUtils.get(this, "activity_message_count", 0);
// if (activityMsgCount > 0) {
// binding.tvActivitycount.setVisibility(View.VISIBLE);
// binding.tvActivitycount.setText(activityMsgCount > 99 ? "99+" : activityMsgCount + "");
// }
}
@Override

View File

@@ -464,7 +464,7 @@ public class MineFragment extends BaseFragment {
super.onResume();
ALog.d(Constant.PROJECT_TAG, "MineFragment:onResume");
if (DataUtils.getIsMerchant()) {
binding.layoutActionLy.setVisibility(View.VISIBLE);
binding.layoutActionLy.setVisibility(View.GONE);
} else {
binding.layoutActionLy.setVisibility(View.GONE);
}

View File

@@ -10,6 +10,15 @@ public class ConfigBean {
private String title;
private String val;
private String status;
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public int getId() {
return id;

View File

@@ -33,6 +33,16 @@ public class LoginBean extends RosterElementEntity {
private Integer isBiz = 0;
private double cashFeeRate; //cash费率
private double silverFeeRate;//积分费率
private double mmSilverFeeRate; //mm 积分费率
public double getMmSilverFeeRate() {
return mmSilverFeeRate;
}
public void setMmSilverFeeRate(double mmSilverFeeRate) {
this.mmSilverFeeRate = mmSilverFeeRate;
}
public double getCashFeeRate() {
return cashFeeRate;

View File

@@ -1,9 +1,22 @@
package com.dskj.rbchat.model;
import android.print.PageRange;
import java.util.List;
public class NotifyCountBean {
public int systemMsgCount;
public int activityMsgCount;
public String groupId;
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public int getSystemMsgCount() {
return systemMsgCount;

View File

@@ -81,7 +81,7 @@ public class TransferAccountsActivity extends BaseActivity {
viewBinding = ActivityTransferAccountsBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
isJinBi = getIntent().getBooleanExtra("type", isJinBi);
feeRate = isJinBi ? DataUtils.getLocUserInfo().getCashFeeRate() : DataUtils.getLocUserInfo().getSilverFeeRate();
feeRate = isJinBi ? DataUtils.getLocUserInfo().getCashFeeRate() : DataUtils.getLocUserInfo().getMmSilverFeeRate();
initView();
initListeners();
}