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

@@ -47,12 +47,12 @@ android {
applicationId = "com.dskj.rbchat"
minSdk = 24
targetSdk = 34
versionCode = 192
versionName = "1.9.2"
versionCode = 194
versionName = "1.9.4"
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f" //正式
// manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a" //测试
// manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a" //测试
manifestPlaceholders["JPUSH_PKGNAME"] = "com.dskj.rbchat"
manifestPlaceholders["JPUSH_APPKEY"] = "9041bc22de91e3d9af3cfd23"
@@ -62,10 +62,25 @@ android {
abiFilters += listOf("armeabi-v7a", "arm64-v8a")
}
}
// flavorDimensions += "version"
// productFlavors {
//
// create("timeGo") {
// applicationId = "";
// versionNameSuffix = ""
// }
//
// create("mm") {
// applicationId = "";
// versionNameSuffix = "-mm"
// }
//
//
// }
buildTypes {
getByName("release") {
isMinifyEnabled = false
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
@@ -73,6 +88,7 @@ android {
signingConfig = signingConfigs.getByName("release")
isDebuggable = false;
// buildConfigField(
// "String",
// "HTTPS_BASE_URL",
@@ -85,8 +101,8 @@ android {
"\"AIzaSyB7P1o1EIA02eWoNP_7QJ9XwWe3WkSZb9k\""
)
//正式服
manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f" //正式
//manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a"
manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f" //正式
// manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a"
}
@@ -110,8 +126,8 @@ android {
"\"AIzaSyB7P1o1EIA02eWoNP_7QJ9XwWe3WkSZb9k\""
)
//测试APPKEY
manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a"
// manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f"
// manifestPlaceholders["IMAPPKEY"] = "4cb6b0998f9e7af9d7673963e429959a"
manifestPlaceholders["IMAPPKEY"] = "c38c8bbebf7d12992d2a361bfceb6c6f"
}
@@ -261,4 +277,6 @@ dependencies {
// implementation("com.esotericsoftware.spine:spine-libgdx:4.1.00")
// implementation("com.esotericsoftware:spine-runtimes:+")
implementation("com.airbnb.android:lottie:6.0.0") // lottie json动画
}

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();
}

View File

@@ -28,7 +28,7 @@
android:layout_height="@dimen/dp_95"
android:background="@android:color/white"
android:orientation="horizontal"
android:visibility="gone"
android:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/line_top">
@@ -36,6 +36,7 @@
android:id="@+id/iv_verify"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_45"
android:layout_marginTop="@dimen/dp_15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/iv_activity"
android:layout_marginStart="@dimen/dp_43"
@@ -81,6 +82,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_15"
android:visibility="gone"
app:srcCompat="@mipmap/ic_notify_activity" />
<TextView
@@ -107,6 +109,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:text="@string/activity_msg"
android:visibility="gone"
android:textColor="@color/color_383838"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="@+id/iv_activity"

View File

@@ -18,190 +18,57 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 世界聊天窗口-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_chatall"
android:id="@+id/layout_shijiechat"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<com.netease.yunxin.kit.common.ui.widgets.ContactAvatarView
android:id="@+id/avatarView"
android:layout_width="@dimen/dimen_45_dp"
android:layout_height="@dimen/dimen_45_dp"
android:layout_marginStart="@dimen/fun_conversation_margin_15dp"
android:layout_marginTop="15dp"
app:avatarCorner="@dimen/dimen_45_dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contentLayout"
android:layout_width="0dp"
android:layout_height="@dimen/dimen_45_dp"
android:layout_marginVertical="15dp"
android:layout_marginStart="@dimen/fun_conversation_margin_15dp"
android:layout_marginEnd="@dimen/fun_conversation_margin_15dp"
app:layout_constraintLeft_toRightOf="@+id/avatarView"
app:layout_constraintRight_toRightOf="parent"
android:id="@+id/layout_conversationshijie"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/ll_name"
<TextView
android:id="@+id/tv_shijie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/nameTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="middle"
android:maxWidth="@dimen/dimen_120_dp"
android:singleLine="true"
android:text="@string/str_chat_all"
android:textColor="@color/fun_conversation_item_title_text_color"
android:textSize="@dimen/text_size_16" />
</LinearLayout>
<!-- <TextView-->
<!-- android:id="@+id/groupNumber"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/dimen_5_dp"-->
<!-- android:layout_marginEnd="@dimen/dimen_16_dp"-->
<!-- android:textColor="@color/fun_conversation_item_title_text_color"-->
<!-- android:textSize="@dimen/text_size_16"-->
<!-- android:textStyle="bold"-->
<!-- android:visibility="visible"-->
<!-- app:layout_constraintLeft_toRightOf="@+id/muteIv"-->
<!-- app:layout_constraintRight_toLeftOf="@+id/timeTv"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<LinearLayout
android:id="@+id/messageLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dimen_7_dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/unreadTv">
<TextView
android:id="@+id/aitTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dimen_4_dp"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/conversation_ait_tip"
android:textColor="@color/color_ff4e54"
android:textSize="@dimen/text_size_14"
android:visibility="gone" />
<TextView
android:id="@+id/draftTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/dimen_4_dp"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/conversation_draft_tip"
android:textColor="@color/color_ff4e54"
android:textSize="@dimen/text_size_14"
android:visibility="gone" />
<TextView
android:id="@+id/draftTvContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:textSize="@dimen/text_size_14"
android:visibility="gone" />
<TextView
android:id="@+id/messageTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textSize="@dimen/text_size_14" />
</LinearLayout>
android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/str_chat_all"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/timeTv"
android:id="@+id/tv_shijietips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:ellipsize="end"
android:maxWidth="@dimen/dimen_100_dp"
android:maxLines="1"
android:textColor="@color/fun_conversation_item_time_text_color"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/ll_name"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/ll_name" />
android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/cornor_6877fe_6dp"
android:paddingStart="@dimen/dp_5"
android:paddingEnd="@dimen/dp_5"
android:text="@string/guanfang_text"
android:textColor="@android:color/white"
android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="@+id/tv_shijie"
app:layout_constraintStart_toEndOf="@+id/tv_shijie"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/muteIv"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/dimen_5_dp"
android:src="@drawable/fun_ic_conversation_mute"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/ll_name"
app:layout_constraintLeft_toRightOf="@+id/ll_name"
app:layout_constraintTop_toTopOf="@+id/ll_name" />
<TextView
android:id="@+id/tv_myteamtype"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_5_dp"
android:layout_marginEnd="@dimen/dimen_10_dp"
android:ellipsize="middle"
android:maxWidth="@dimen/dimen_60_dp"
android:paddingStart="@dimen/dimen_5_dp"
android:paddingEnd="@dimen/dimen_5_dp"
android:singleLine="true"
android:textSize="@dimen/text_size_12"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/ll_name"
app:layout_constraintLeft_toRightOf="@+id/muteIv"
app:layout_constraintTop_toTopOf="@+id/ll_name" />
<TextView
android:id="@+id/unreadTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dimen_2_dp"
android:background="@drawable/bg_conversation_red_dot"
android:gravity="center"
android:paddingStart="@dimen/dimen_5_dp"
android:paddingEnd="@dimen/dimen_5_dp"
android:textColor="@color/color_white"
android:textSize="@dimen/text_size_12"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/messageLayout"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
<com.netease.yunxin.kit.conversationkit.ui.view.ConversationView
android:id="@+id/conversationView_team_shijie"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#EDE3E3"
app:layout_constraintBottom_toBottomOf="parent" />
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
app:layout_constraintTop_toBottomOf="@+id/layout_conversationshijie" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout

View File

@@ -135,7 +135,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_10_dp"
android:src="@mipmap/shangjia_img"
android:visibility="visible" />
android:visibility="gone" />
<View
android:layout_width="match_parent"
@@ -157,7 +157,7 @@
android:text="@string/shanghuguanli_txt"
android:textColor="#ffffffff"
android:textSize="14sp"
android:visibility="visible" />
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

View File

@@ -595,7 +595,7 @@
<string name="teamsetting_other_history">Clear chat history</string>
<string name="teamsetting_other_announcement">Group Announcement</string>
<string name="teamsetting_other_announcement_hint">Enter group announcement content</string>
<string name="teamsetting_other_announcement_onlymanager">Only group owner can edit/publish</string>
<string name="teamsetting_other_announcement_onlymanager">Only group owners and administrators can edit/post</string>
<string name="teamsetting_other_teamdiss">Dismiss</string>
<string name="teamsetting_other_teamtransfer">Group owner permission give away</string>
<string name="teamsetting_other_teamdisstips">After disbanding the group chat, both the group members and the group owner will be removed from the group chat</string>

View File

@@ -594,7 +594,7 @@
<string name="teamsetting_other_history">チャット履歴をクリア</string>
<string name="teamsetting_other_announcement">グループのお知らせ</string>
<string name="teamsetting_other_announcement_hint">グループのお知らせ内容を入力してください</string>
<string name="teamsetting_other_announcement_onlymanager">グループオーナーのみが編集/公開可能</string>
<string name="teamsetting_other_announcement_onlymanager">グループの所有者と管理者のみが編集/投稿できます</string>
<string name="teamsetting_other_teamdiss">解雇</string>
<string name="teamsetting_other_teamtransfer">グループ所有者の権限の譲渡</string>
<string name="teamsetting_other_teamdisstips">グループ チャットを解散すると、グループ メンバーとグループはグループ チャットから削除されます</string>

View File

@@ -589,7 +589,7 @@
<string name="teamsetting_other_history">清除聊天記錄</string>
<string name="teamsetting_other_announcement">群公告</string>
<string name="teamsetting_other_announcement_hint">輸入群公告內容</string>
<string name="teamsetting_other_announcement_onlymanager">僅群主可編輯/發佈</string>
<string name="teamsetting_other_announcement_onlymanager">僅群主和管理員可編輯/發佈</string>
<string name="teamsetting_other_teamdiss">解散</string>
<string name="teamsetting_other_teamtransfer">群主權限轉讓</string>
<string name="teamsetting_other_teamdisstips">解散群聊後,群組成員和群組都將被移出群組聊天</string>

View File

@@ -351,28 +351,28 @@
<string name="pthb_txt">普通红包</string>
<string name="hbgs_txt">红包数</string>
<string name="qtxgs_txt">请填写红包个数</string>
<string name="red_envelope_amount_txt">红包金额</string>
<string name="amount_input_hint_txt">请输入金额</string>
<string name="giftredpacket_totalamount">金额</string>
<string name="red_envelope_amount_txt">红包数量</string>
<string name="amount_input_hint_txt">请输入数量</string>
<string name="giftredpacket_totalamount">数量</string>
<string name="danwei_txt"></string>
<string name="remarks_hit_txt">恭喜发财,大吉大利</string>
<string name="send_in_redenvelope_txt1">塞Cash进红包</string>
<string name="send_in_lipinjifen_txt1">禮品積分進紅包</string>
<string name="send_in_lipinjifen_txt1">礼品积分紅包</string>
<string name="send_in_redtype_txt1">塞金币进红包</string>
<string name="no_get_to_back_txt">未领取的红包将于24小时候退回</string>
<string name="zhuanzhangobject_txt">点击选择赠送对象</string>
<string name="zhuanzhangjine_txt">赠送金额</string>
<string name="zhuanzhangjine_txt">赠送数量</string>
<string name="zhuanzhangjineto_txt">赠送给:%s</string>
<string name="shouxufei_txt">手续费</string>
<string name="shouxufeitips_jinbi_txt"><![CDATA[含手续费<b><font color=\'#FF4161\'>%d</font></b>cash]]></string>
<string name="shouxufeitips_yinbi_txt"><![CDATA[含手续费<b><font color=\'#FF4161\'>%d</font></b>积分]]></string>
<string name="totaljine_txt">统计支付金额</string>
<string name="totaljine_txt">统计支付数量</string>
<string name="cashbuzu_txt">当前cash余额不足</string>
<string name="lipinjifenbuzu_txt">当前礼品积分余额不足</string>
<string name="transfer_instructions_hint_txt">(选填)输入赠送说明</string>
<string name="fqzz_txt">发起赠送</string>
<string name="no_get_to_back_t_txt">24小时内未领取赠送金额将被自动领取</string>
<string name="timeout_transfer_tips_txt">24小时内未领取赠送金额将被自动领取</string>
<string name="no_get_to_back_t_txt">24小时内未领取赠送数量将被自动领取</string>
<string name="timeout_transfer_tips_txt">24小时内未领取赠送数量将被自动领取</string>
<string name="transfer_instructions_txt">赠送说明</string>
<string name="transfer_time_txt">赠送时间</string>
<string name="get_transfer_time_txt">领取时间</string>
@@ -392,19 +392,19 @@
<string name="red_envelope_issued_txt2">发出的礼金红包</string>
<string name="wo_txt"></string>
<string name="fshb_txt">发送红包</string>
<string name="zjine_txt">金额</string>
<string name="zjine_txt">数量</string>
<string name="hbq_tips_txt">本群共%d人红包个数不能超过当前群聊人数</string>
<string name="qbyf_txt">Cash余额%s</string>
<string name="hljfye_txt">礼品积分余额:%s</string>
<string name="red_packet_number_hint_txt">请输入金额</string>
<string name="dangejine_txt">单个金额</string>
<string name="red_packet_number_hint_txt1">请输入单个金额</string>
<string name="red_packet_number_hint_txt">请输入数量</string>
<string name="dangejine_txt">单个数量</string>
<string name="red_packet_number_hint_txt1">请输入单个数量</string>
<string name="size_not_null_tips_txt">红包个数不能为空</string>
<string name="qsrhbgs_txt">请输入红包个数</string>
<string name="number_not_null_tips_txt">红包金额不能为空</string>
<string name="hbjebnsy_txt">红包金额不能小于0.01</string>
<string name="dghbjebnsy_txt">单个红包金额不能小于0.01</string>
<string name="dghbjebndy_txt">单个红包金额不能大于</string>
<string name="number_not_null_tips_txt">红包数量不能为空</string>
<string name="hbjebnsy_txt">红包数量不能小于0.01</string>
<string name="dghbjebnsy_txt">单个红包数量不能小于0.01</string>
<string name="dghbjebndy_txt">单个红包数量不能大于</string>
<string name="hbgsbncgdqqlzs_txt">红包个数不能超过当前群聊总人数</string>
<string name="yebz_txt">余额不足</string>
<string name="dialog_input_paypassword_txt">请输入支付密码</string>
@@ -412,11 +412,11 @@
<string name="hqqbxxsb_txt">获取钱包信息失败</string>
<string name="send_in_redenvelope_txt2">塞礼品积分进红包</string>
<string name="zhuanzhang_txt">[礼品积分赠送]</string>
<string name="zzjebnwk_txt">赠送金额不能为空</string>
<string name="zzjebnwk_txt1">收款金额不能为空</string>
<string name="zzjebnwk_txt">赠送数量不能为空</string>
<string name="zzjebnwk_txt1">收款数量不能为空</string>
<string name="zzjebnsy_txt">赠送金额不能小于0.01</string>
<string name="zzjebnsy_txt1">收款金额不能为空不能小于0.01</string>
<string name="zzjebnsy_txt">赠送数量不能小于0.01</string>
<string name="zzjebnsy_txt1">收款数量不能为空不能小于0.01</string>
<string name="hqqbxxsb_tx">获取钱包信息失败</string>
<string name="nqdythzz_txt">确定要退还赠送吗?</string>
@@ -424,7 +424,7 @@
<string name="tuihuan_txt">退还</string>
<string name="ndqbbdj_txt">您的Cash被冻结如需解冻请联系客服</string>
<string name="lxkh_txt">联系客服</string>
<string name="zhuanzhang_tips1_txt">1天内对方未领取赠送金额将自动打到对方的余额</string>
<string name="zhuanzhang_tips1_txt">1天内对方未领取赠送数量将自动打到对方的余额</string>
<string name="daishoukuan_txt">待%s收款</string>
<string name="yishoukuan_txt">%s已收款</string>
<string name="yzdsk_txt">%s已自动领取</string>
@@ -432,7 +432,7 @@
<string name="yzdtk_txt">%s已自动退还</string>
<string name="ytkdye_txt">已退还到余额</string>
<string name="dfwbdsjhytkdye_txt">对方未绑定手机号,已退还到余额</string>
<string name="zhuangzhang_tips2_txt">1天内未领取赠送金额将自动打到余额</string>
<string name="zhuangzhang_tips2_txt">1天内未领取赠送数量将自动打到余额</string>
<string name="dainishoukuan_txt">待你收款</string>
<string name="ninyishoukuan_txt">您已领取</string>
<string name="niyizdsk_txt">您已自动领取</string>
@@ -557,7 +557,7 @@
<string name="post_updates_txt">发布动态</string>
<string name="wawajishoufukuan_txt">娃娃机收付款</string>
<string name="dianziyouxizhuanru_txt">电子游戏转入转出</string>
<string name="fukuanjine_txt">付款金额</string>
<string name="fukuanjine_txt">付款数量</string>
<string name="tianjiabeizhu_txt">添加备注(选填)</string>
<string name="skrkjzdes_txt">收款人可见最多20个字</string>
<string name="zhiufuchengg_txt">支付成功</string>
@@ -590,14 +590,14 @@
<string name="teamsetting_other_history">清除聊天记录</string>
<string name="teamsetting_other_announcement">群公告</string>
<string name="teamsetting_other_announcement_hint">输入群公告内容</string>
<string name="teamsetting_other_announcement_onlymanager">仅群主可编辑/发布</string>
<string name="teamsetting_other_announcement_onlymanager">仅群主和管理员可编辑/发布</string>
<string name="teamsetting_other_teamdiss">解散</string>
<string name="teamsetting_other_teamtransfer">群主权限转让</string>
<string name="teamsetting_other_teamdisstips">解散群聊后,群成员和群主都将被移出群聊</string>
<string name="teamsetting_other_teamzlfm">群资料封面</string>
<string name="wyydbty_txt">我已阅读并同意</string>
<string name="mianmi_title_txt">开通免密支付</string>
<string name="mianmi_content_txt">商家扫码付款码时,针对小额金额可免密支付,请确认是否开通!</string>
<string name="mianmi_content_txt">商家扫码付款码时,针对小额数量可免密支付,请确认是否开通!</string>
<string name="mmzfxe_txt">《免密支付协议》</string>
<string name="lijikaitong_txt">立即开通</string>
<string name="mianmixieyi_tips_txt">请先阅读并同意《免密支付协议》</string>
@@ -652,7 +652,7 @@
<string name="xiangshuiyinbi_txt1">来自 %s 的礼品积分赠送</string>
<string name="saoyisao_txt">扫一扫</string>
<string name="shoukuan_title_txt">收款</string>
<string name="shoukuanjine_txt">收款金额</string>
<string name="shoukuanjine_txt">收款数量</string>
<string name="shoukuanfasong_succ_txt">收款扫码成功</string>
<string name="zhifuchengong_txt">支付成功</string>
<string name="fukuangei_txt">赠送%s</string>
@@ -692,7 +692,7 @@
<string name="qrztsyzwzfm_txt">确认暂停使用指纹支付吗</string>
<string name="tupianzhengming_txt">图片证明(%d/6</string>
<string name="deidaifukuan_txt">进行中,等待对方确认支付</string>
<string name="shoukuanchenggong_txt">收款成功,到账金额</string>
<string name="shoukuanchenggong_txt">收款成功,到账数量</string>
<string name="fukuanfang_txt">付款方</string>
<string name="daozhangshijian_txt">到账时间</string>
<string name="fanhuishouye_txt">返回首页</string>

View File

@@ -351,28 +351,28 @@
<string name="pthb_txt">普通红包</string>
<string name="hbgs_txt">红包数</string>
<string name="qtxgs_txt">请填写红包个数</string>
<string name="red_envelope_amount_txt">红包金额</string>
<string name="amount_input_hint_txt">请输入金额</string>
<string name="giftredpacket_totalamount">金额</string>
<string name="red_envelope_amount_txt">红包数量</string>
<string name="amount_input_hint_txt">请输入数量</string>
<string name="giftredpacket_totalamount">数量</string>
<string name="danwei_txt"></string>
<string name="remarks_hit_txt">恭喜发财,大吉大利</string>
<string name="send_in_redenvelope_txt1">塞Cash进红包</string>
<string name="send_in_lipinjifen_txt1">禮品積分進紅包</string>
<string name="send_in_lipinjifen_txt1">礼品积分紅包</string>
<string name="send_in_redtype_txt1">塞金币进红包</string>
<string name="no_get_to_back_txt">未领取的红包将于24小时候退回</string>
<string name="zhuanzhangobject_txt">点击选择赠送对象</string>
<string name="zhuanzhangjine_txt">赠送金额</string>
<string name="zhuanzhangjine_txt">赠送数量</string>
<string name="zhuanzhangjineto_txt">赠送给:%s</string>
<string name="shouxufei_txt">手续费</string>
<string name="shouxufeitips_jinbi_txt"><![CDATA[含手续费<b><font color=\'#FF4161\'>%d</font></b>cash]]></string>
<string name="shouxufeitips_yinbi_txt"><![CDATA[含手续费<b><font color=\'#FF4161\'>%d</font></b>积分]]></string>
<string name="totaljine_txt">统计支付金额</string>
<string name="totaljine_txt">统计支付数量</string>
<string name="cashbuzu_txt">当前cash余额不足</string>
<string name="lipinjifenbuzu_txt">当前礼品积分余额不足</string>
<string name="transfer_instructions_hint_txt">(选填)输入赠送说明</string>
<string name="fqzz_txt">发起赠送</string>
<string name="no_get_to_back_t_txt">24小时内未领取赠送金额将被自动领取</string>
<string name="timeout_transfer_tips_txt">24小时内未领取赠送金额将被自动领取</string>
<string name="no_get_to_back_t_txt">24小时内未领取赠送数量将被自动领取</string>
<string name="timeout_transfer_tips_txt">24小时内未领取赠送数量将被自动领取</string>
<string name="transfer_instructions_txt">赠送说明</string>
<string name="transfer_time_txt">赠送时间</string>
<string name="get_transfer_time_txt">领取时间</string>
@@ -392,19 +392,19 @@
<string name="red_envelope_issued_txt2">发出的礼金红包</string>
<string name="wo_txt"></string>
<string name="fshb_txt">发送红包</string>
<string name="zjine_txt">金额</string>
<string name="zjine_txt">数量</string>
<string name="hbq_tips_txt">本群共%d人红包个数不能超过当前群聊人数</string>
<string name="qbyf_txt">Cash余额%s</string>
<string name="hljfye_txt">礼品积分余额:%s</string>
<string name="red_packet_number_hint_txt">请输入金额</string>
<string name="dangejine_txt">单个金额</string>
<string name="red_packet_number_hint_txt1">请输入单个金额</string>
<string name="red_packet_number_hint_txt">请输入数量</string>
<string name="dangejine_txt">单个数量</string>
<string name="red_packet_number_hint_txt1">请输入单个数量</string>
<string name="size_not_null_tips_txt">红包个数不能为空</string>
<string name="qsrhbgs_txt">请输入红包个数</string>
<string name="number_not_null_tips_txt">红包金额不能为空</string>
<string name="hbjebnsy_txt">红包金额不能小于0.01</string>
<string name="dghbjebnsy_txt">单个红包金额不能小于0.01</string>
<string name="dghbjebndy_txt">单个红包金额不能大于</string>
<string name="number_not_null_tips_txt">红包数量不能为空</string>
<string name="hbjebnsy_txt">红包数量不能小于0.01</string>
<string name="dghbjebnsy_txt">单个红包数量不能小于0.01</string>
<string name="dghbjebndy_txt">单个红包数量不能大于</string>
<string name="hbgsbncgdqqlzs_txt">红包个数不能超过当前群聊总人数</string>
<string name="yebz_txt">余额不足</string>
<string name="dialog_input_paypassword_txt">请输入支付密码</string>
@@ -412,11 +412,11 @@
<string name="hqqbxxsb_txt">获取钱包信息失败</string>
<string name="send_in_redenvelope_txt2">塞礼品积分进红包</string>
<string name="zhuanzhang_txt">[礼品积分赠送]</string>
<string name="zzjebnwk_txt">赠送金额不能为空</string>
<string name="zzjebnwk_txt1">收款金额不能为空</string>
<string name="zzjebnwk_txt">赠送数量不能为空</string>
<string name="zzjebnwk_txt1">收款数量不能为空</string>
<string name="zzjebnsy_txt">赠送金额不能小于0.01</string>
<string name="zzjebnsy_txt1">收款金额不能为空不能小于0.01</string>
<string name="zzjebnsy_txt">赠送数量不能小于0.01</string>
<string name="zzjebnsy_txt1">收款数量不能为空不能小于0.01</string>
<string name="hqqbxxsb_tx">获取钱包信息失败</string>
<string name="nqdythzz_txt">确定要退还赠送吗?</string>
@@ -424,7 +424,7 @@
<string name="tuihuan_txt">退还</string>
<string name="ndqbbdj_txt">您的Cash被冻结如需解冻请联系客服</string>
<string name="lxkh_txt">联系客服</string>
<string name="zhuanzhang_tips1_txt">1天内对方未领取赠送金额将自动打到对方的余额</string>
<string name="zhuanzhang_tips1_txt">1天内对方未领取赠送数量将自动打到对方的余额</string>
<string name="daishoukuan_txt">待%s收款</string>
<string name="yishoukuan_txt">%s已收款</string>
<string name="yzdsk_txt">%s已自动领取</string>
@@ -432,7 +432,7 @@
<string name="yzdtk_txt">%s已自动退还</string>
<string name="ytkdye_txt">已退还到余额</string>
<string name="dfwbdsjhytkdye_txt">对方未绑定手机号,已退还到余额</string>
<string name="zhuangzhang_tips2_txt">1天内未领取赠送金额将自动打到余额</string>
<string name="zhuangzhang_tips2_txt">1天内未领取赠送数量将自动打到余额</string>
<string name="dainishoukuan_txt">待你收款</string>
<string name="ninyishoukuan_txt">您已领取</string>
<string name="niyizdsk_txt">您已自动领取</string>
@@ -557,7 +557,7 @@
<string name="post_updates_txt">发布动态</string>
<string name="wawajishoufukuan_txt">娃娃机收付款</string>
<string name="dianziyouxizhuanru_txt">电子游戏转入转出</string>
<string name="fukuanjine_txt">付款金额</string>
<string name="fukuanjine_txt">付款数量</string>
<string name="tianjiabeizhu_txt">添加备注(选填)</string>
<string name="skrkjzdes_txt">收款人可见最多20个字</string>
<string name="zhiufuchengg_txt">支付成功</string>
@@ -590,14 +590,14 @@
<string name="teamsetting_other_history">清除聊天记录</string>
<string name="teamsetting_other_announcement">群公告</string>
<string name="teamsetting_other_announcement_hint">输入群公告内容</string>
<string name="teamsetting_other_announcement_onlymanager">仅群主可编辑/发布</string>
<string name="teamsetting_other_announcement_onlymanager">仅群主和管理员可编辑/发布</string>
<string name="teamsetting_other_teamdiss">解散</string>
<string name="teamsetting_other_teamtransfer">群主权限转让</string>
<string name="teamsetting_other_teamdisstips">解散群聊后,群成员和群主都将被移出群聊</string>
<string name="teamsetting_other_teamzlfm">群资料封面</string>
<string name="wyydbty_txt">我已阅读并同意</string>
<string name="mianmi_title_txt">开通免密支付</string>
<string name="mianmi_content_txt">商家扫码付款码时,针对小额金额可免密支付,请确认是否开通!</string>
<string name="mianmi_content_txt">商家扫码付款码时,针对小额数量可免密支付,请确认是否开通!</string>
<string name="mmzfxe_txt">《免密支付协议》</string>
<string name="lijikaitong_txt">立即开通</string>
<string name="mianmixieyi_tips_txt">请先阅读并同意《免密支付协议》</string>
@@ -652,7 +652,7 @@
<string name="xiangshuiyinbi_txt1">来自 %s 的礼品积分赠送</string>
<string name="saoyisao_txt">扫一扫</string>
<string name="shoukuan_title_txt">收款</string>
<string name="shoukuanjine_txt">收款金额</string>
<string name="shoukuanjine_txt">收款数量</string>
<string name="shoukuanfasong_succ_txt">收款扫码成功</string>
<string name="zhifuchengong_txt">支付成功</string>
<string name="fukuangei_txt">赠送%s</string>
@@ -692,7 +692,7 @@
<string name="qrztsyzwzfm_txt">确认暂停使用指纹支付吗</string>
<string name="tupianzhengming_txt">图片证明(%d/6</string>
<string name="deidaifukuan_txt">进行中,等待对方确认支付</string>
<string name="shoukuanchenggong_txt">收款成功,到账金额</string>
<string name="shoukuanchenggong_txt">收款成功,到账数量</string>
<string name="fukuanfang_txt">付款方</string>
<string name="daozhangshijian_txt">到账时间</string>
<string name="fanhuishouye_txt">返回首页</string>
@@ -914,4 +914,5 @@
<string name="str_teammanager_add_succ_toast">添加成功</string>
<string name="str_teammanager_add_not_toast">请选择管理员</string>
</resources>

View File

@@ -8,4 +8,6 @@ public final class ChatUIConstants {
public static final String KEY_MAP_FOR_MESSAGE = "chat_message_map";
public static final String KEY_MAP_FOR_PIN = "chat_pin_map";
public static final String KEY_TEAM_ISGUANFANG="is_guanfang"; //世界聊天 官方
}

View File

@@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentManager;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.team.model.Team;
import com.netease.yunxin.kit.alog.ALog;
import com.netease.yunxin.kit.chatkit.ui.ChatUIConstants;
import com.netease.yunxin.kit.chatkit.ui.R;
import com.netease.yunxin.kit.chatkit.ui.fun.page.fragment.FunChatTeamFragment;
import com.netease.yunxin.kit.chatkit.ui.page.ChatBaseActivity;
@@ -28,6 +29,7 @@ public class FunChatTeamActivity extends ChatBaseActivity {
public void initChat() {
Team teamInfo = (Team) getIntent().getSerializableExtra(RouterConstant.CHAT_KRY);
String teamId = getIntent().getStringExtra(RouterConstant.CHAT_ID_KRY);
boolean isGuanFang = getIntent().getBooleanExtra(ChatUIConstants.KEY_TEAM_ISGUANFANG,false);
if (teamInfo == null && TextUtils.isEmpty(teamId)) {
ALog.e(LIB_TAG, TAG, "team info is null && team id is null" + teamId);
finish();
@@ -38,6 +40,7 @@ public class FunChatTeamActivity extends ChatBaseActivity {
Bundle bundle = new Bundle();
bundle.putSerializable(RouterConstant.CHAT_KRY, teamInfo);
bundle.putSerializable(RouterConstant.CHAT_ID_KRY, teamId);
bundle.putBoolean(ChatUIConstants.KEY_TEAM_ISGUANFANG,isGuanFang);
IMMessage message = (IMMessage) getIntent().getSerializableExtra(RouterConstant.KEY_MESSAGE);
if (message != null) {
bundle.putSerializable(RouterConstant.KEY_MESSAGE, message);

View File

@@ -32,8 +32,11 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.netease.nim.highavailable.LogUtils;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.RequestCallback;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.team.TeamService;
import com.netease.nimlib.sdk.team.constant.TeamFieldEnum;
import com.netease.nimlib.sdk.team.model.Team;
import com.netease.yunxin.kit.alog.ALog;
@@ -171,6 +174,7 @@ public class FunChatTeamFragment extends FunChatFragment {
}
public TeamExtensionBean extensionBean;
private void refreshView() {
if (teamInfo != null) {
// chatView.getTitleBar().setTitle(teamInfo.getName());
@@ -184,34 +188,7 @@ public class FunChatTeamFragment extends FunChatFragment {
showIsNotMyTeam();
} else {
//展示正常
viewBinding.chattopview.ivChatcall.setVisibility(View.GONE);
viewBinding.chattopview.ivChatsetting.setVisibility(View.VISIBLE);
viewBinding.chattopview.ivChatannouncement.setVisibility(View.VISIBLE);
viewBinding.layoutTeamannouncement.setVisibility(View.GONE);
getMessageBottomLayout().setShowInit();
String teamId = teamInfo.getId();
if (!ChatDataUtils.get(getActivity(), String.format(ChatKitUIConstant.TEAM_ANNOUNCEMENT_CONTENT, IMKitClient.account(), teamId), "").equals(teamInfo.getAnnouncement())) {
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), true);
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.TEAM_ANNOUNCEMENT_CONTENT, IMKitClient.account(), teamId), teamInfo.getAnnouncement());
}
if (!TextUtils.isEmpty(teamInfo.getAnnouncement()) && ChatDataUtils.get(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), true)) {
viewBinding.layoutTeamannouncement.setVisibility(View.VISIBLE);
viewBinding.tvTeamannouncement.setText(teamInfo.getAnnouncement());
viewBinding.ivTeammannouncementClose.setOnClickListener(view -> {
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), false);
viewBinding.layoutTeamannouncement.setVisibility(View.GONE);
});
viewBinding.layoutTeamannouncement.setOnClickListener(view -> {
//跳到群公告页面
chatView.hideCurrentInput();
XKitRouter.withKey(ChatKitUIConstant.PATH_FUN_TEAM_ANNOUNCEMENT_PAGE)
.withContext(requireContext())
.withParam(KEY_TEAM_ID, teamInfo.getId())
.navigate();
});
}
showChatView();
}
//获取是否允许加好友状态
@@ -247,7 +224,6 @@ public class FunChatTeamFragment extends FunChatFragment {
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -410,6 +386,28 @@ public class FunChatTeamFragment extends FunChatFragment {
//群被解散或者被踢出
//我不在这个群
// chatView.getTitleBar().setVisibility(View.GONE);
if (isGuanFang) { //如果是官方世界聊天
NIMClient.getService(TeamService.class).applyJoinTeam(teamInfo.getId(), null).setCallback(new RequestCallback<Team>() {
@Override
public void onSuccess(Team team1) {
showChatView();
}
@Override
public void onFailed(int code) {
}
@Override
public void onException(Throwable exception) {
// error
}
});
return;
}
viewBinding.chattopview.ivChatcall.setVisibility(View.GONE);
viewBinding.chattopview.ivChatsetting.setVisibility(View.GONE);
viewBinding.chattopview.ivChatannouncement.setVisibility(View.GONE);
@@ -432,6 +430,35 @@ public class FunChatTeamFragment extends FunChatFragment {
// alertDialog.getWindow().setContentView(dialogView);
}
//展示正常聊天View
public void showChatView() {
viewBinding.chattopview.ivChatcall.setVisibility(View.GONE);
viewBinding.chattopview.ivChatsetting.setVisibility(View.VISIBLE);
viewBinding.chattopview.ivChatannouncement.setVisibility(View.VISIBLE);
viewBinding.layoutTeamannouncement.setVisibility(View.GONE);
getMessageBottomLayout().setShowInit();
String teamId = teamInfo.getId();
if (!ChatDataUtils.get(getActivity(), String.format(ChatKitUIConstant.TEAM_ANNOUNCEMENT_CONTENT, IMKitClient.account(), teamId), "").equals(teamInfo.getAnnouncement())) {
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), true);
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.TEAM_ANNOUNCEMENT_CONTENT, IMKitClient.account(), teamId), teamInfo.getAnnouncement());
}
if (!TextUtils.isEmpty(teamInfo.getAnnouncement()) && ChatDataUtils.get(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), true)) {
viewBinding.layoutTeamannouncement.setVisibility(View.VISIBLE);
viewBinding.tvTeamannouncement.setText(teamInfo.getAnnouncement());
viewBinding.ivTeammannouncementClose.setOnClickListener(view -> {
ChatDataUtils.set(getActivity(), String.format(ChatKitUIConstant.SHOW_TEAM_ANNOUNCEMENT, IMKitClient.account(), teamId), false);
viewBinding.layoutTeamannouncement.setVisibility(View.GONE);
});
viewBinding.layoutTeamannouncement.setOnClickListener(view -> {
//跳到群公告页面
chatView.hideCurrentInput();
XKitRouter.withKey(ChatKitUIConstant.PATH_FUN_TEAM_ANNOUNCEMENT_PAGE)
.withContext(requireContext())
.withParam(KEY_TEAM_ID, teamInfo.getId())
.navigate();
});
}
}
@Override
public void onNewIntent(Intent intent) {

View File

@@ -73,13 +73,13 @@ public class FunBottomActionFactory {
R.drawable.ic_location1,
R.string.chat_message_location));
actions.add(new ActionItem(ActionConstants.ACTION_TYPE_ALBUMS, R.drawable.ic_action_share_albums, R.string.sharealbums_txt));
//礼品积分红包
actions.add(new ActionItem(ActionConstants.ACTION_TYPE_REP_PACKET, R.drawable.ic_action_red_packet, R.string.hongbao_txt));
if (getConfig(IMKitClient.getApplicationContext(), "redpkg_score", false)) { //积分赠送
//礼品积分红包
actions.add(new ActionItem(ActionConstants.ACTION_TYPE_REP_PACKET, R.drawable.ic_action_red_packet, R.string.hongbao_txt));
}
//赠送功能入口
if (sessionType == SessionTypeEnum.P2P) {
if (getConfig(IMKitClient.getApplicationContext(), "transfer_jifen", false)) { //积分赠送
if (getConfig(IMKitClient.getApplicationContext(), "transfer_score", false)) { //积分赠送
actions.add(new ActionItem(ActionConstants.ACTION_TYPE_TRANSFER, R.drawable.ic_action_tur, R.string.zhuanzhang_txtq));
}
// if (getConfig(IMKitClient.getApplicationContext(), "transfer_cash", false)) { //cash赠送

View File

@@ -54,8 +54,7 @@ public interface ApiService {
/**
* 测试环境
*/
//String URL = "https://api-test.letschat2023.com/";
// String URL = "https://8.217.244.135:8001/";
// String URL = "https://api-test.letschat2023.com/";
String SUBSTATIONID = "1703655363476242434";

View File

@@ -91,6 +91,7 @@ import com.netease.yunxin.kit.chatkit.ui.ChatKitClient;
import com.netease.yunxin.kit.chatkit.ui.ChatKitUIConstant;
import com.netease.yunxin.kit.chatkit.ui.ChatMessageType;
import com.netease.yunxin.kit.chatkit.ui.ChatUIConfig;
import com.netease.yunxin.kit.chatkit.ui.ChatUIConstants;
import com.netease.yunxin.kit.chatkit.ui.R;
import com.netease.yunxin.kit.chatkit.ui.adapter.CommonAdapter;
import com.netease.yunxin.kit.chatkit.ui.adapter.ViewHolder;
@@ -282,6 +283,8 @@ public abstract class ChatBaseFragment extends BaseFragment {
public Team teamInfo;
public int isAllowAd = 0;
public boolean isGuanFang;
@Nullable
@Override
public View onCreateView(
@@ -301,6 +304,7 @@ public abstract class ChatBaseFragment extends BaseFragment {
super.onViewCreated(view, savedInstanceState);
if (getArguments() != null) {
isServices = getArguments().getBoolean("isService", false);
isGuanFang = getArguments().getBoolean(ChatUIConstants.KEY_TEAM_ISGUANFANG, false);
initData(getArguments());
}
mHandler = new Handler();

View File

@@ -114,7 +114,7 @@
<string name="chat_team_notice_update">Modified group announcement</string>
<string name="chat_team_accept_ones_invent">accepted the group invitation from %s</string>
<string name="chat_team_verify_update">permissions updated to</string>
<string name="chat_team_manager_pass_ones_application">Agree the group apply from%s</string>
<string name="chat_team_manager_pass_ones_application">%s has joined the group chat</string>
<string name="chat_team_remove_to_another">Give away the group to</string>
<string name="chat_team_operate_by_manager">Admin by</string>
<string name="chat_team_mute">Mute</string>

View File

@@ -113,7 +113,7 @@
<string name="chat_team_notice_update">グループのお知らせを更新しました</string>
<string name="chat_team_accept_ones_invent">%s のグループ招待を承認しました</string>
<string name="chat_team_verify_update">グループ検証権限を更新する</string>
<string name="chat_team_manager_pass_ones_application">管理者はユーザー %s を通じてグループ メンバーシップを申請します</string>
<string name="chat_team_manager_pass_ones_application">%s がグループチャットに参加しました</string>
<string name="chat_team_remove_to_another">グループを次の場所に移動します</string>
<string name="chat_team_operate_by_manager">管理者</string>
<string name="chat_team_mute">ミュート</string>

View File

@@ -116,7 +116,7 @@
<string name="chat_team_notice_update">更新了群公告</string>
<string name="chat_team_accept_ones_invent">接受了%s的入群邀请</string>
<string name="chat_team_verify_update">更新群身份验证权限为</string>
<string name="chat_team_manager_pass_ones_application">管理员通过用户%s的入群申请</string>
<string name="chat_team_manager_pass_ones_application">%s进入了群聊</string>
<string name="chat_team_remove_to_another">将群转移给</string>
<string name="chat_team_operate_by_manager">被管理员</string>
<string name="chat_team_mute">禁言</string>

View File

@@ -116,7 +116,7 @@
<string name="chat_team_notice_update">更新了群組公告</string>
<string name="chat_team_accept_ones_invent">接受了%s的入群邀請</string>
<string name="chat_team_verify_update">更新群組驗證權限為</string>
<string name="chat_team_manager_pass_ones_application">管理員透過使用者%s的入群申請</string>
<string name="chat_team_manager_pass_ones_application">%s 已加入群聊</string>
<string name="chat_team_remove_to_another">將群組轉移給</string>
<string name="chat_team_operate_by_manager">被管理員</string>
<string name="chat_team_mute">禁言</string>

View File

@@ -47,6 +47,13 @@ public class FunConversationTeamViewHolder extends FunConversationBaseViewHolder
viewBinding.tvMyteamtype.setVisibility(View.VISIBLE);
}
if (data.isShiJie) {
viewBinding.tvMyteamtype.setBackgroundResource(R.drawable.cornor_6877fe_6dp);
viewBinding.tvMyteamtype.setTextColor(Color.parseColor("#ffffffff"));
viewBinding.tvMyteamtype.setText(viewBinding.getRoot().getContext().getResources().getString(R.string.guanfang_text));
viewBinding.tvMyteamtype.setVisibility(View.VISIBLE);
}
// viewBinding.groupNumber.setVisibility(View.VISIBLE);
// viewBinding.groupNumber.setText("(" + teamInfo.getMemberCount() + ")");
}

View File

@@ -21,6 +21,16 @@ public class ConversationBean extends BaseBean {
public boolean isHide;
public boolean isShiJie;
public boolean isShiJie() {
return isShiJie;
}
public void setShiJie(boolean shiJie) {
isShiJie = shiJie;
}
public boolean isSelector() {
return isSelector;
}

View File

@@ -2,5 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="6dp" />
<solid android:color="@color/color_6877fe" />
<solid android:color="@color/color_fe6881" />
</shape>

View File

@@ -16,5 +16,6 @@
<color name="fun_conversation_add_pop_text_color">#ffffff</color>
<color name="fun_conversation_add_pop_bg_color">#4c4c4c</color>
<color name="color_6877fe">#6877fe</color>
<color name="color_fe6881">#FE6881</color>
</resources>

View File

@@ -45,4 +45,6 @@
<string name="chat_message_revoke_content">recalled the message</string>
<string name="services_text">Service</string>
<string name="guanfang_text">Official</string>
</resources>

View File

@@ -47,4 +47,5 @@
<string name="chat_message_revoke_content">がメッセージを撤回しました</string>
<string name="services_text">顧客サービス</string>
<string name="guanfang_text">公式</string>
</resources>

View File

@@ -46,4 +46,5 @@
<string name="chat_message_revoke_content">撤回了一条消息</string>
<string name="services_text">客服</string>
<string name="guanfang_text">官方</string>
</resources>

View File

@@ -47,4 +47,5 @@
<string name="chat_message_revoke_content">撤回了一則訊息</string>
<string name="services_text">客服</string>
<string name="guanfang_text">官方</string>
</resources>