群聊修改
This commit is contained in:
@@ -59,6 +59,7 @@ public class ContactGroupSettingActivity extends FunBaseSelectorDataActivity imp
|
||||
FunContactSelectorSettingActivityBinding binding;
|
||||
protected FunContactMembersAdapter membersAdapter;
|
||||
protected boolean isChecked = true;
|
||||
protected boolean isAllow = true;
|
||||
protected ArrayList<String> listkey;
|
||||
protected ArrayList<String> listname;
|
||||
protected ArrayList<String> listavat;
|
||||
@@ -142,6 +143,10 @@ public class ContactGroupSettingActivity extends FunBaseSelectorDataActivity imp
|
||||
binding.rbSelector.setChecked(isChecked);
|
||||
}
|
||||
);
|
||||
binding.swichAllow.setOnClickListener(v -> {
|
||||
isAllow = !isAllow;
|
||||
binding.swichAllow.setChecked(isAllow);
|
||||
});
|
||||
LinearLayoutManager layoutManager =
|
||||
new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
|
||||
binding.rvMembers.setLayoutManager(layoutManager);
|
||||
@@ -288,6 +293,7 @@ public class ContactGroupSettingActivity extends FunBaseSelectorDataActivity imp
|
||||
result.putExtra(KEY_TEAM_NAME, TextUtils.isEmpty(groupname) ? binding.editGroupname.getHint().toString() : groupname);
|
||||
result.putExtra(KEY_TEAM_ICON, groupHeadUrl);
|
||||
result.putExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_AUTO, isChecked);
|
||||
result.putExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_ALLOW_ADDFRIENDS, isAllow);
|
||||
setResult(RESULT_OK, result);
|
||||
finish();
|
||||
}).setActionTextColor(getResources().getColor(R.color.color_6877fe));
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.dskj.rbchat.contact;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
@@ -36,11 +35,8 @@ import com.dskj.rbchat.adapter.CommonAdapter;
|
||||
import com.dskj.rbchat.adapter.ViewHolder;
|
||||
import com.dskj.rbchat.databinding.ActivityUserInfoBinding;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.main.MainActivity;
|
||||
import com.dskj.rbchat.main.mine.EditFriendUserInfoActivity;
|
||||
import com.dskj.rbchat.main.mine.EditUserInfoActivity;
|
||||
import com.dskj.rbchat.main.mine.photo.AddPhotoActivity;
|
||||
import com.dskj.rbchat.main.mine.photo.UserPhotoDetailsActivity;
|
||||
import com.dskj.rbchat.main.mine.photo.UserPhotoListActivity;
|
||||
import com.dskj.rbchat.model.AlbumBean;
|
||||
import com.dskj.rbchat.model.ListBeanResult;
|
||||
@@ -62,7 +58,6 @@ import com.netease.yunxin.kit.chatkit.ui.common.ChatUtils;
|
||||
import com.netease.yunxin.kit.chatkit.ui.common.RxBus;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.ChatBlackEvent;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.ChatDeleteEvent;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.CleanHistoryEvent;
|
||||
import com.netease.yunxin.kit.common.ui.activities.BaseActivity;
|
||||
import com.netease.yunxin.kit.common.ui.utils.ToastX;
|
||||
import com.netease.yunxin.kit.common.ui.viewmodel.LoadStatus;
|
||||
@@ -80,9 +75,9 @@ import com.netease.yunxin.kit.corekit.im.provider.FetchCallback;
|
||||
import com.netease.yunxin.kit.corekit.im.repo.CommonRepo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.corekit.route.XKitRouter;
|
||||
import com.netease.yunxin.kit.teamkit.ui.utils.viewmodel.TeamSettingViewModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -93,12 +88,16 @@ import io.reactivex.schedulers.Schedulers;
|
||||
public class UserInfoActivity extends BaseActivity {
|
||||
private ActivityUserInfoBinding viewBinding;
|
||||
protected UserInfoViewModel viewModel;
|
||||
protected TeamSettingViewModel teammodel;
|
||||
protected ContactUserInfoBean userInfoData;
|
||||
protected String accId;
|
||||
private ActivityResultLauncher<Intent> launcher;
|
||||
protected BlackListViewModel blackListViewModel;
|
||||
|
||||
private String alias = "";
|
||||
private String teamId = "";
|
||||
private int isAllowAdd = 1;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@@ -588,7 +587,10 @@ public class UserInfoActivity extends BaseActivity {
|
||||
viewBinding.moreIv.setVisibility(View.GONE);
|
||||
viewBinding.starIv.setVisibility(View.GONE);
|
||||
viewBinding.friendLy.setVisibility(View.GONE);
|
||||
viewBinding.addFriendsTv.setVisibility(View.VISIBLE);
|
||||
if (isAllowAdd == 1) {
|
||||
viewBinding.addFriendsTv.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
finish();
|
||||
|
||||
RxBus.getInstance().post(IMUIKitConfig.CHANGE_FOLLOW_USER);
|
||||
@@ -599,7 +601,9 @@ public class UserInfoActivity extends BaseActivity {
|
||||
viewBinding.moreIv.setVisibility(View.GONE);
|
||||
viewBinding.starIv.setVisibility(View.GONE);
|
||||
viewBinding.friendLy.setVisibility(View.GONE);
|
||||
viewBinding.addFriendsTv.setVisibility(View.VISIBLE);
|
||||
if (isAllowAdd == 1) {
|
||||
viewBinding.addFriendsTv.setVisibility(View.VISIBLE);
|
||||
}
|
||||
finish();
|
||||
|
||||
RxBus.getInstance().post(IMUIKitConfig.CHANGE_FOLLOW_USER);
|
||||
@@ -665,6 +669,30 @@ public class UserInfoActivity extends BaseActivity {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
//群设置了不允许互加好友
|
||||
// teamId = getIntent().getStringExtra("teamId");
|
||||
// if (!TextUtils.isEmpty(teamId)) {
|
||||
// teammodel = new TeamSettingViewModel();
|
||||
// teammodel.getTeamWithMemberData().observe(this, teamResultInfo -> {
|
||||
// if (teamResultInfo.getValue() == null || !teamResultInfo.getSuccess()) {
|
||||
// return;
|
||||
// }
|
||||
// Team teaminfo = teamResultInfo.getValue().getTeam();
|
||||
// String extension = teaminfo.getExtension();
|
||||
// if (!TextUtils.isEmpty(extension)) {
|
||||
// TeamExtensionBean extensionBean = GsonUtils.getObjFromJSON(extension, TeamExtensionBean.class);
|
||||
// if (extensionBean != null) {
|
||||
// isAllowAdd = extensionBean.getAllowAddFriends();
|
||||
// }
|
||||
// if (isAllowAdd == 0) {
|
||||
// viewBinding.addFriendsTv.setVisibility(View.GONE);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// });
|
||||
// teammodel.requestTeamData(teamId);
|
||||
// }
|
||||
|
||||
IMApplication.schemeUserId = null;
|
||||
|
||||
if (accId.equals(IMKitClient.account()) || ContactRepo.isFriend(accId)) { //是好友或者是自己 可以修改备注
|
||||
@@ -845,7 +873,7 @@ public class UserInfoActivity extends BaseActivity {
|
||||
viewBinding.moreIv.setVisibility(View.VISIBLE);
|
||||
viewBinding.starIv.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
if (!userInfoData.isBlack) {
|
||||
if (!userInfoData.isBlack && isAllowAdd == 1) {
|
||||
viewBinding.addFriendsTv.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,25 +106,20 @@ public class FunContactSelectorActivity extends BaseContactSelectorActivity {
|
||||
super.updateView();
|
||||
if (type == 1) { //转发 这ui 修改的....
|
||||
rvSelected.setVisibility(View.GONE);
|
||||
contactListView.showSelector(false);
|
||||
lastContactView.showSelector(false);
|
||||
loveContactView.showSelector(false);
|
||||
searchContactView.showSelector(false);
|
||||
LinearLayout.LayoutParams params1 = (LinearLayout.LayoutParams) contactListView.getLayoutParams();
|
||||
LinearLayout.LayoutParams params2 = (LinearLayout.LayoutParams) lastContactView.getLayoutParams();
|
||||
LinearLayout.LayoutParams params3 = (LinearLayout.LayoutParams) loveContactView.getLayoutParams();
|
||||
LinearLayout.LayoutParams params4 = (LinearLayout.LayoutParams) searchContactView.getLayoutParams();
|
||||
params1.setMarginStart(SizeUtils.dp2px(15));
|
||||
params2.setMarginStart(SizeUtils.dp2px(15));
|
||||
params3.setMarginStart(SizeUtils.dp2px(15));
|
||||
params4.setMarginStart(SizeUtils.dp2px(15));
|
||||
contactListView.setLayoutParams(params1);
|
||||
lastContactView.setLayoutParams(params2);
|
||||
loveContactView.setLayoutParams(params3);
|
||||
searchContactView.setLayoutParams(params4);
|
||||
updateListView(contactListView);
|
||||
updateListView(lastContactView);
|
||||
updateListView(loveContactView);
|
||||
updateListView(searchContactView);
|
||||
}
|
||||
}
|
||||
|
||||
public void updateListView(ContactListView contactListView) {
|
||||
contactListView.showSelector(false);
|
||||
LinearLayout.LayoutParams params1 = (LinearLayout.LayoutParams) contactListView.getLayoutParams();
|
||||
params1.setMarginStart(SizeUtils.dp2px(15));
|
||||
contactListView.setLayoutParams(params1);
|
||||
}
|
||||
|
||||
public void setViewHolderFactory(ContactListView contactView) {
|
||||
contactView
|
||||
.getDecoration()
|
||||
@@ -169,6 +164,7 @@ public class FunContactSelectorActivity extends BaseContactSelectorActivity {
|
||||
.withParam(KEY_TEAM_NAME, data.getStringExtra(KEY_TEAM_NAME))
|
||||
.withParam(KEY_TEAM_ICON, data.getStringExtra(KEY_TEAM_ICON))
|
||||
.withParam(ContactConstant.REQUEST_FUN_CREATE_GROUP_AUTO, data.getBooleanExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_AUTO, true))
|
||||
.withParam(ContactConstant.REQUEST_FUN_CREATE_GROUP_ALLOW_ADDFRIENDS, data.getBooleanExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_ALLOW_ADDFRIENDS, true))
|
||||
.navigate(
|
||||
res -> {
|
||||
if (res.getSuccess() && res.getValue() instanceof CreateTeamResult) {
|
||||
|
||||
@@ -418,6 +418,7 @@ public abstract class BaseTeamQrSettingActivity extends BaseActivity implements
|
||||
.withParam(KEY_TEAM_NAME, data.getStringExtra(KEY_TEAM_NAME))
|
||||
.withParam(KEY_TEAM_ICON, data.getStringExtra(KEY_TEAM_ICON))
|
||||
.withParam(ContactConstant.REQUEST_FUN_CREATE_GROUP_AUTO, data.getBooleanExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_AUTO, true))
|
||||
.withParam(ContactConstant.REQUEST_FUN_CREATE_GROUP_ALLOW_ADDFRIENDS, data.getBooleanExtra(ContactConstant.REQUEST_FUN_CREATE_GROUP_ALLOW_ADDFRIENDS, true))
|
||||
.navigate(
|
||||
res -> {
|
||||
if (res.getSuccess() && res.getValue() instanceof CreateTeamResult) {
|
||||
|
||||
@@ -0,0 +1,394 @@
|
||||
package com.dskj.rbchat.imkit.team;
|
||||
|
||||
import static com.netease.yunxin.kit.corekit.im.utils.RouterConstant.KEY_TEAM_ID;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.TypedValue;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatRadioButton;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.adapter.CommonAdapter;
|
||||
import com.dskj.rbchat.adapter.ViewHolder;
|
||||
import com.dskj.rbchat.base.LllChatBaseActivity;
|
||||
import com.dskj.rbchat.databinding.ActivityTeamaddmanagerBinding;
|
||||
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.RequestCallback;
|
||||
import com.netease.nimlib.sdk.team.TeamService;
|
||||
import com.netease.nimlib.sdk.team.model.TeamMember;
|
||||
import com.netease.yunxin.kit.chatkit.repo.ContactRepo;
|
||||
import com.netease.yunxin.kit.common.ui.utils.ToastX;
|
||||
import com.netease.yunxin.kit.common.ui.widgets.ContactAvatarView;
|
||||
import com.netease.yunxin.kit.common.utils.NetworkUtils;
|
||||
import com.netease.yunxin.kit.contactkit.ui.databinding.FunContactSelectorActivityLayoutBinding;
|
||||
import com.netease.yunxin.kit.contactkit.ui.fun.contact.FunContactDefaultFactory;
|
||||
import com.netease.yunxin.kit.contactkit.ui.view.ContactListView;
|
||||
import com.netease.yunxin.kit.corekit.im.IMKitClient;
|
||||
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.corekit.route.XKitRouter;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 添加管理員
|
||||
*/
|
||||
public class TeamAddManagerActivity extends LllChatBaseActivity {
|
||||
|
||||
|
||||
@Override
|
||||
public int initNavigationBarColor() {
|
||||
return getColor(R.color.color_fffafa);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int initStatusBarColor() {
|
||||
return getColor(R.color.color_titlebar);
|
||||
}
|
||||
|
||||
protected ActivityTeamaddmanagerBinding binding;
|
||||
protected RecyclerView searchContactView; //搜索
|
||||
protected RecyclerView allTeamContactView; //群好友
|
||||
protected RecyclerView rvSelected; //已選擇
|
||||
|
||||
protected CommonAdapter selectedAdapter;
|
||||
protected CommonAdapter searchAdapter;
|
||||
protected CommonAdapter allMemberAdapter;
|
||||
|
||||
private List<UserInfo> listMembers = new ArrayList<>();
|
||||
private List<UserInfo> listSearch = new ArrayList<>();
|
||||
public static final String LISTMEMBERS = "listTeamMembers";
|
||||
public static final String HASSELECTOR = "hasSelector"; //只能添加个数
|
||||
public static final String BUNDLE = "bundle";
|
||||
private List<UserInfo> userInfos;
|
||||
|
||||
private List<UserInfo> selectorPosition = new ArrayList<>();
|
||||
|
||||
|
||||
private String teamId = "";
|
||||
private int hasAdd;
|
||||
|
||||
|
||||
public static void launch(Context context, String teamId, List<UserInfo> userInfos, int hasSelector, @NonNull ActivityResultLauncher<Intent> launcher) {
|
||||
Intent intent = new Intent(context, TeamAddManagerActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(KEY_TEAM_ID, teamId);
|
||||
bundle.putInt(HASSELECTOR, hasSelector);
|
||||
bundle.putSerializable(LISTMEMBERS, (Serializable) userInfos);
|
||||
intent.putExtra(BUNDLE, bundle);
|
||||
launcher.launch(intent);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ActivityTeamaddmanagerBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
Bundle args = getIntent().getBundleExtra(BUNDLE);
|
||||
if (args == null) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
userInfos = (List<UserInfo>) args.getSerializable(LISTMEMBERS);
|
||||
teamId = args.getString(KEY_TEAM_ID);
|
||||
hasAdd = args.getInt(HASSELECTOR);
|
||||
listMembers.addAll(userInfos);
|
||||
searchContactView = binding.recyclerSearchlistView;
|
||||
rvSelected = binding.rvSelected;
|
||||
allTeamContactView = binding.recyclerMember;
|
||||
binding.title
|
||||
.setOnBackIconClickListener(v -> onBackPressed())
|
||||
.setTitle(R.string.str_teammanager_add_title)
|
||||
.setActionText(String.format(getString(R.string.str_teammanager_title_right), selectorPosition.size()))
|
||||
.setActionTextColor(getResources().getColor(com.netease.yunxin.kit.contactkit.ui.R.color.color_6877fe))
|
||||
.setActionListener(
|
||||
v -> {
|
||||
if (!NetworkUtils.isConnected()) {
|
||||
Toast.makeText(this, com.netease.yunxin.kit.contactkit.ui.R.string.contact_network_error_tip, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
if (selectorPosition.size() > 0) {
|
||||
List<String> accountId = new ArrayList<>();
|
||||
for (UserInfo userInfo : selectorPosition) {
|
||||
accountId.add(userInfo.getAccount());
|
||||
}
|
||||
addManager(accountId);
|
||||
}else{
|
||||
ToastX.showShortToast(R.string.str_teammanager_add_not_toast);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
binding.title.getTitleTextView().setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20);
|
||||
binding.editSelectorFriends.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView textView, int actionId, KeyEvent event) {
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
|
||||
String search = textView.getEditableText().toString();
|
||||
//搜索好友
|
||||
List<UserInfo> listSearchResult = searchName(search);
|
||||
listSearch.clear();
|
||||
listSearch.addAll(listSearchResult);
|
||||
binding.layoutSearchlist.setVisibility(View.VISIBLE);
|
||||
binding.layoutTeammemberlist.setVisibility(View.GONE);
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
binding.editSelectorFriends.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
if (TextUtils.isEmpty(editable.toString())) {
|
||||
binding.icCleanEdit.setVisibility(View.GONE);
|
||||
binding.layoutSearchlist.setVisibility(View.GONE);
|
||||
binding.layoutTeammemberlist.setVisibility(View.VISIBLE);
|
||||
listSearch.clear();
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
binding.icCleanEdit.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
});
|
||||
binding.icCleanEdit.setOnClickListener(view -> binding.editSelectorFriends.setText(""));
|
||||
|
||||
initRecyclerView();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public List<UserInfo> searchName(String key) {
|
||||
List<UserInfo> listSearch = new ArrayList<>();
|
||||
List<UserInfo> result = new ArrayList<>();
|
||||
result.addAll(listMembers);
|
||||
for (UserInfo userInfo : result) {
|
||||
String name = getAlias(userInfo);
|
||||
if (name.contains(key)) {
|
||||
listSearch.add(userInfo);
|
||||
}
|
||||
}
|
||||
return listSearch;
|
||||
}
|
||||
|
||||
|
||||
public String getAlias(UserInfo userInfo) {
|
||||
String name = userInfo.getName();
|
||||
if (ContactRepo.isFriend(userInfo.getAccount())) {
|
||||
String alias = ContactRepo.getFriend(userInfo.getAccount()).getAlias();
|
||||
return TextUtils.isEmpty(alias) ? name : alias;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
public void addManager(List<String> accountList) {
|
||||
NIMClient.getService(TeamService.class).addManagers(teamId, accountList).setCallback(new RequestCallback<List<TeamMember>>() {
|
||||
@Override
|
||||
public void onSuccess(List<TeamMember> members) {
|
||||
// 撤销群管理员成功
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_add_succ_toast));
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("managerlist", (Serializable) selectorPosition);
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(int code) {
|
||||
// 撤销群管理员失败
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_delete_error));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onException(Throwable exception) {
|
||||
// 错误
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_delete_error));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void initRecyclerView() {
|
||||
LinearLayoutManager layoutManager =
|
||||
new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
|
||||
rvSelected.setLayoutManager(layoutManager);
|
||||
selectedAdapter = new CommonAdapter<>(this, com.netease.yunxin.kit.contactkit.ui.R.layout.fun_friend_selected_view_holder, selectorPosition) {
|
||||
|
||||
@Override
|
||||
public void convert(ViewHolder holder, UserInfo user, int index) {
|
||||
ContactAvatarView contactAvatarView = holder.getView(com.netease.yunxin.kit.contactkit.ui.R.id.avatar_view);
|
||||
TextView tvName = holder.getView(com.netease.yunxin.kit.contactkit.ui.R.id.tv_name);
|
||||
String name = user.getName();
|
||||
if (ContactRepo.isFriend(user.getAccount())) {
|
||||
String alias = ContactRepo.getFriend(user.getAccount()).getAlias();
|
||||
if (!TextUtils.isEmpty(alias)) {
|
||||
name = alias;
|
||||
}
|
||||
}
|
||||
tvName.setText(name);
|
||||
if (TextUtils.isEmpty(user.getAvatar())) {
|
||||
contactAvatarView.setData(R.mipmap.default_head_img, user.getName(), 0);
|
||||
} else {
|
||||
contactAvatarView.setData(user.getAvatar(), user.getName());
|
||||
}
|
||||
holder.getView(com.netease.yunxin.kit.contactkit.ui.R.id.root_view).setOnClickListener(v -> {
|
||||
selectorPosition.remove(selectorPosition.indexOf(user));
|
||||
notifyDataSetChanged();
|
||||
allMemberAdapter.notifyDataSetChanged();
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
updateTitleView();
|
||||
});
|
||||
}
|
||||
};
|
||||
rvSelected.setAdapter(selectedAdapter);
|
||||
|
||||
|
||||
allTeamContactView.setLayoutManager(new LinearLayoutManager(this));
|
||||
allMemberAdapter = new CommonAdapter<>(this, R.layout.item_team_members_selector, listMembers) {
|
||||
|
||||
@Override
|
||||
public void convert(ViewHolder holder, UserInfo user, int index) {
|
||||
ContactAvatarView contactAvatarView = holder.getView(R.id.avatar_view);
|
||||
TextView tvName = holder.getView(R.id.tv_name);
|
||||
AppCompatRadioButton radioButton = holder.getView(R.id.rb_selector);
|
||||
String name = user.getName();
|
||||
if (ContactRepo.isFriend(user.getAccount())) {
|
||||
String alias = ContactRepo.getFriend(user.getAccount()).getAlias();
|
||||
if (!TextUtils.isEmpty(alias)) {
|
||||
name = alias;
|
||||
}
|
||||
}
|
||||
|
||||
tvName.setText(name);
|
||||
if (TextUtils.isEmpty(user.getAvatar())) {
|
||||
contactAvatarView.setData(R.mipmap.default_head_img, user.getName(), 0);
|
||||
} else {
|
||||
contactAvatarView.setData(user.getAvatar(), user.getName());
|
||||
}
|
||||
contactAvatarView.setOnClickListener(v -> {
|
||||
startUserInfoActivity(user);
|
||||
});
|
||||
radioButton.setChecked(isSelector(user));
|
||||
holder.getView(R.id.root_view).setOnClickListener(v -> {
|
||||
if (!radioButton.isChecked() && selectorPosition.size() == hasAdd) {
|
||||
ToastX.showShortToast(getResources().getString(R.string.str_teammanager_add_faile_toast));
|
||||
return;
|
||||
}
|
||||
radioButton.setChecked(!radioButton.isChecked());
|
||||
if (radioButton.isChecked()) {
|
||||
selectorPosition.add(user);
|
||||
} else {
|
||||
selectorPosition.remove(selectorPosition.indexOf(user));
|
||||
}
|
||||
selectedAdapter.notifyDataSetChanged();
|
||||
updateTitleView();
|
||||
});
|
||||
}
|
||||
};
|
||||
allTeamContactView.setAdapter(allMemberAdapter);
|
||||
|
||||
|
||||
searchContactView.setLayoutManager(new LinearLayoutManager(this));
|
||||
searchAdapter = new CommonAdapter<>(this, R.layout.item_team_members_selector, listSearch) {
|
||||
|
||||
@Override
|
||||
public void convert(ViewHolder holder, UserInfo user, int index) {
|
||||
ContactAvatarView contactAvatarView = holder.getView(R.id.avatar_view);
|
||||
TextView tvName = holder.getView(R.id.tv_name);
|
||||
AppCompatRadioButton radioButton = holder.getView(R.id.rb_selector);
|
||||
String name = user.getName();
|
||||
if (ContactRepo.isFriend(user.getAccount())) {
|
||||
String alias = ContactRepo.getFriend(user.getAccount()).getAlias();
|
||||
if (!TextUtils.isEmpty(alias)) {
|
||||
name = alias;
|
||||
}
|
||||
}
|
||||
|
||||
tvName.setText(name);
|
||||
if (TextUtils.isEmpty(user.getAvatar())) {
|
||||
contactAvatarView.setData(R.mipmap.default_head_img, user.getName(), 0);
|
||||
} else {
|
||||
contactAvatarView.setData(user.getAvatar(), user.getName());
|
||||
}
|
||||
contactAvatarView.setOnClickListener(v -> {
|
||||
startUserInfoActivity(user);
|
||||
});
|
||||
radioButton.setChecked(isSelector(user));
|
||||
holder.getView(R.id.root_view).setOnClickListener(v -> {
|
||||
if (!radioButton.isChecked() && selectorPosition.size() == hasAdd) {
|
||||
ToastX.showShortToast(getResources().getString(R.string.str_teammanager_add_faile_toast));
|
||||
return;
|
||||
}
|
||||
radioButton.setChecked(!radioButton.isChecked());
|
||||
if (radioButton.isChecked()) {
|
||||
selectorPosition.add(user);
|
||||
} else {
|
||||
selectorPosition.remove(selectorPosition.indexOf(user));
|
||||
}
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
selectedAdapter.notifyDataSetChanged();
|
||||
allMemberAdapter.notifyDataSetChanged();
|
||||
updateTitleView();
|
||||
});
|
||||
}
|
||||
};
|
||||
searchContactView.setAdapter(searchAdapter);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void startUserInfoActivity(UserInfo user) {
|
||||
XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE)
|
||||
.withContext(TeamAddManagerActivity.this)
|
||||
.withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account())
|
||||
.withParam("userId", user.getAccount())
|
||||
.withParam("isGroup", true)
|
||||
.navigate();
|
||||
}
|
||||
|
||||
protected void updateTitleView() {
|
||||
binding.title.setActionText(String.format(getString(R.string.str_teammanager_title_right), selectorPosition.size()));
|
||||
}
|
||||
|
||||
protected boolean isSelector(UserInfo index) {
|
||||
for (UserInfo userInfo : selectorPosition) {
|
||||
if (index == userInfo) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,291 @@
|
||||
// Copyright (c) 2022 NetEase, Inc. All rights reserved.
|
||||
// Use of this source code is governed by a MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
package com.dskj.rbchat.imkit.team;
|
||||
|
||||
import static com.netease.yunxin.kit.corekit.im.utils.RouterConstant.KEY_TEAM_ID;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.adapter.CommonAdapter;
|
||||
import com.dskj.rbchat.adapter.ViewHolder;
|
||||
import com.dskj.rbchat.base.LllChatBaseActivity;
|
||||
import com.dskj.rbchat.databinding.ActivityTeamManagerBinding;
|
||||
import com.dskj.rbchat.databinding.ActivityTeamMembersBinding;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.imkit.team.adapter.TeamMembersAdapter;
|
||||
import com.dskj.rbchat.network.Api;
|
||||
import com.dskj.rbchat.network.BaseObserver;
|
||||
import com.dskj.rbchat.network.Result;
|
||||
import com.dskj.rbchat.utils.LogUtils;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.RequestCallback;
|
||||
import com.netease.nimlib.sdk.team.TeamService;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMemberType;
|
||||
import com.netease.nimlib.sdk.team.model.TeamMember;
|
||||
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
|
||||
import com.netease.yunxin.kit.chatkit.repo.ContactRepo;
|
||||
import com.netease.yunxin.kit.common.ui.activities.BaseActivity;
|
||||
import com.netease.yunxin.kit.common.ui.utils.ToastX;
|
||||
import com.netease.yunxin.kit.common.ui.widgets.ContactAvatarView;
|
||||
import com.netease.yunxin.kit.common.utils.NetworkUtils;
|
||||
import com.netease.yunxin.kit.contactkit.ui.model.ContactFriendBean;
|
||||
import com.netease.yunxin.kit.corekit.im.IMKitClient;
|
||||
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.corekit.route.XKitRouter;
|
||||
import com.netease.yunxin.kit.teamkit.ui.utils.viewmodel.TeamSettingViewModel;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* 群管理员 (获取群成员,找出管理员)
|
||||
*/
|
||||
public class TeamManagerActivity extends LllChatBaseActivity {
|
||||
|
||||
public final TeamSettingViewModel teammodel = new TeamSettingViewModel();
|
||||
private String teamId;
|
||||
private String avaterurl;
|
||||
|
||||
// public static void launch(Context context, String teamId, @NonNull ActivityResultLauncher<Intent> launcher) {
|
||||
// Intent intent = new Intent(context, TeamManagerActivity.class);
|
||||
// intent.putExtra(KEY_TEAM_ID, teamId);
|
||||
// launcher.launch(intent);
|
||||
// }
|
||||
|
||||
|
||||
ActivityTeamManagerBinding binding;
|
||||
private List<UserInfo> listManager = new ArrayList<>();
|
||||
private List<UserInfo> listTeamMembers = new ArrayList<>();
|
||||
private CommonAdapter managerAdapter;
|
||||
private ActivityResultLauncher launcher;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ActivityTeamManagerBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
teamId = getIntent().getStringExtra(KEY_TEAM_ID);
|
||||
launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
if (result.getResultCode() == Activity.RESULT_OK) {
|
||||
List<UserInfo> managers = (List<UserInfo>) result.getData().getSerializableExtra("managerlist"); //选了管理员,更新普通用户列表 更新当前管理员列表
|
||||
listManager.addAll(managers);
|
||||
updateManagerTextView();
|
||||
binding.title.getRightTextView().setText(String.format(getString(R.string.str_teammanager_title_right), listManager.size()));
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for (UserInfo userInfoWithTeam : listManager) {
|
||||
for (int i = 0; i < listTeamMembers.size(); i++) {
|
||||
if (userInfoWithTeam.getAccount().equals(listTeamMembers.get(i).getAccount())) {
|
||||
listTeamMembers.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
});
|
||||
if (NetworkUtils.isConnected()) {
|
||||
showLoading();
|
||||
//重新获取群成员
|
||||
teammodel.getUserInfoData().observe(this, listResultInfo -> {
|
||||
if (listResultInfo.getSuccess()) {
|
||||
listManager.clear();
|
||||
listTeamMembers.clear();
|
||||
List<UserInfoWithTeam> listmember = listResultInfo.getValue();
|
||||
setDataView(listmember);
|
||||
dismissLoading();
|
||||
}
|
||||
});
|
||||
teammodel.requestTeamMembers(teamId);
|
||||
}
|
||||
UserInfo userInfo = IMKitClient.getUserInfo();
|
||||
avaterurl = userInfo.getAvatar();
|
||||
if (TextUtils.isEmpty(avaterurl)) {
|
||||
binding.avatarView.setData(R.mipmap.default_head_img, userInfo.getName(), 0);
|
||||
} else {
|
||||
binding.avatarView.setData(avaterurl, userInfo.getName());
|
||||
}
|
||||
binding.avatarView.setOnClickListener(v -> {
|
||||
startUserInfoActivity(userInfo.getAccount());
|
||||
});
|
||||
binding.tvName.setText(userInfo.getName() + "");
|
||||
binding.title.setOnBackIconClickListener(view -> finish());
|
||||
binding.title.getTitleTextView().setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20);
|
||||
binding.title.setActionTextColor(getResources().getColor(com.netease.yunxin.kit.contactkit.ui.R.color.color_6877fe));
|
||||
binding.title.setActionListener(v -> {
|
||||
if (listManager.size() < 5) {
|
||||
//添加管理員
|
||||
TeamAddManagerActivity.launch(this, teamId, listTeamMembers, 5 - listManager.size(), launcher);
|
||||
} else {
|
||||
ToastX.showShortToast(R.string.str_teammanager_add_faile_toast);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
binding.recyclerviewManager.setLayoutManager(new LinearLayoutManager(this));
|
||||
managerAdapter = new CommonAdapter<>(this, R.layout.item_team_manager, listManager) {
|
||||
|
||||
@Override
|
||||
public void convert(ViewHolder holder, UserInfo user, int index) {
|
||||
ContactAvatarView contactAvatarView = holder.getView(R.id.item_avatar);
|
||||
TextView tvName = holder.getView(R.id.item_username);
|
||||
View line = holder.getView(R.id.item_line);
|
||||
String name = user.getName();
|
||||
if (ContactRepo.isFriend(user.getAccount())) {
|
||||
String alias = ContactRepo.getFriend(user.getAccount()).getAlias();
|
||||
if (!TextUtils.isEmpty(alias)) {
|
||||
name = alias;
|
||||
}
|
||||
}
|
||||
tvName.setText(name);
|
||||
if (TextUtils.isEmpty(user.getAvatar())) {
|
||||
contactAvatarView.setData(R.mipmap.default_head_img, user.getName(), 0);
|
||||
} else {
|
||||
contactAvatarView.setData(user.getAvatar(), user.getName());
|
||||
}
|
||||
contactAvatarView.setOnClickListener(v -> {
|
||||
startUserInfoActivity(user.getAccount());
|
||||
});
|
||||
line.setVisibility(View.VISIBLE);
|
||||
if (index == listManager.size() - 1) {
|
||||
line.setVisibility(View.GONE);
|
||||
}
|
||||
holder.getView(R.id.iv_delete).setOnClickListener(v -> {
|
||||
showDeleteDialog(index, user.getName(), user.getAccount());
|
||||
});
|
||||
}
|
||||
};
|
||||
binding.recyclerviewManager.setAdapter(managerAdapter);
|
||||
|
||||
}
|
||||
|
||||
public void showDeleteDialog(int position, String name, String account) {
|
||||
ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(this, String.format(getString(R.string.str_teammanager_dialog_title), name),
|
||||
getString(R.string.str_teammanager_dialog_cancel),
|
||||
getString(com.netease.yunxin.kit.chatkit.ui.R.string.chat_dialog_sure));
|
||||
actionConfirmDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() {
|
||||
@Override
|
||||
public void toSumbit() {
|
||||
List<String> listaccount = new ArrayList<>();
|
||||
listaccount.add(account);
|
||||
removeManager(position, listaccount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toCancel() {
|
||||
}
|
||||
});
|
||||
actionConfirmDialog.show();
|
||||
}
|
||||
|
||||
|
||||
public void removeManager(int position, List<String> accountList) {
|
||||
NIMClient.getService(TeamService.class).removeManagers(teamId, accountList).setCallback(new RequestCallback<List<TeamMember>>() {
|
||||
@Override
|
||||
public void onSuccess(List<TeamMember> members) {
|
||||
// 撤销群管理员成功
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_delete_succ));
|
||||
listTeamMembers.add(0, listManager.get(position));
|
||||
listManager.remove(position);
|
||||
updateManagerTextView();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(int code) {
|
||||
// 撤销群管理员失败
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_delete_error));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onException(Throwable exception) {
|
||||
// 错误
|
||||
ToastX.showShortToast(getString(R.string.str_teammanager_delete_error));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//设置展示View
|
||||
public void setDataView(List<UserInfoWithTeam> listmember) {
|
||||
for (UserInfoWithTeam userInfoWithTeam :
|
||||
listmember) {
|
||||
TeamMemberType type = userInfoWithTeam.getTeamInfo().getType();
|
||||
if (type == TeamMemberType.Manager) {
|
||||
listManager.add(userInfoWithTeam.getUserInfo());
|
||||
} else if (type == TeamMemberType.Normal) {
|
||||
listTeamMembers.add(userInfoWithTeam.getUserInfo());
|
||||
}
|
||||
|
||||
}
|
||||
updateManagerTextView();
|
||||
}
|
||||
|
||||
public void updateManagerTextView() {
|
||||
if (listManager.size() > 0) {
|
||||
binding.layoutManagerempty.setVisibility(View.GONE);
|
||||
binding.recyclerviewManager.setVisibility(View.VISIBLE);
|
||||
binding.tvTitlemanager.setText(getString(R.string.teamsetting_other_teammanager) + " (" + listManager.size() + "/5" + ")");
|
||||
} else {
|
||||
binding.tvTitlemanager.setText(getString(R.string.teamsetting_other_teammanager));
|
||||
binding.layoutManagerempty.setVisibility(View.VISIBLE);
|
||||
binding.recyclerviewManager.setVisibility(View.GONE);
|
||||
}
|
||||
binding.title.getRightTextView().setText(String.format(getString(R.string.str_teammanager_title_right), listManager.size()));
|
||||
managerAdapter.setDates(listManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int initNavigationBarColor() {
|
||||
return getColor(R.color.color_fffafa);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int initStatusBarColor() {
|
||||
return getColor(R.color.color_titlebar);
|
||||
}
|
||||
|
||||
|
||||
public void startUserInfoActivity(String userid) {
|
||||
XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE)
|
||||
.withContext(TeamManagerActivity.this)
|
||||
.withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account())
|
||||
.withParam("userId", userid)
|
||||
.withParam("isGroup", true)
|
||||
.navigate();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -4,10 +4,7 @@
|
||||
|
||||
package com.dskj.rbchat.imkit.team;
|
||||
|
||||
import static com.dskj.rbchat.utils.GsonUtils.gson;
|
||||
import static com.netease.yunxin.kit.corekit.im.utils.RouterConstant.KEY_TEAM_ID;
|
||||
import static com.netease.yunxin.kit.corekit.im.utils.RouterConstant.KEY_TEAM_NAME;
|
||||
import static com.netease.yunxin.kit.teamkit.ui.utils.NetworkUtilsWrapper.handleNetworkBrokenResult;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -24,68 +21,32 @@ import android.view.inputmethod.EditorInfo;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.base.LllChatBaseActivity;
|
||||
import com.dskj.rbchat.databinding.ActivityTeamMembersBinding;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.imkit.team.adapter.TeamMembersAdapter;
|
||||
import com.dskj.rbchat.model.AdBean;
|
||||
import com.dskj.rbchat.model.UsersExistBean;
|
||||
import com.dskj.rbchat.network.Api;
|
||||
import com.dskj.rbchat.network.BaseObserver;
|
||||
import com.dskj.rbchat.network.Result;
|
||||
import com.dskj.rbchat.utils.GsonUtils;
|
||||
import com.dskj.rbchat.utils.LogUtils;
|
||||
import com.dskj.rbchat.utils.ShareDateUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMemberType;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
|
||||
import com.netease.nimlib.sdk.team.model.Team;
|
||||
import com.netease.nimlib.sdk.team.model.TeamMember;
|
||||
import com.netease.yunxin.kit.alog.ALog;
|
||||
import com.netease.yunxin.kit.chatkit.model.ConversationInfo;
|
||||
import com.netease.yunxin.kit.chatkit.model.TeamWithCurrentMember;
|
||||
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
|
||||
import com.netease.yunxin.kit.chatkit.repo.ContactRepo;
|
||||
import com.netease.yunxin.kit.chatkit.ui.page.LocationPageActivity;
|
||||
import com.netease.yunxin.kit.chatkit.ui.page.viewmodel.ChatBaseViewModel;
|
||||
import com.netease.yunxin.kit.chatkit.ui.page.viewmodel.ChatTeamViewModel;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.TeamExtensionBean;
|
||||
import com.netease.yunxin.kit.common.ui.utils.ToastX;
|
||||
import com.netease.yunxin.kit.common.ui.viewmodel.LoadStatus;
|
||||
import com.netease.yunxin.kit.common.utils.NetworkUtils;
|
||||
import com.netease.yunxin.kit.contactkit.ui.contact.ContactViewModel;
|
||||
import com.netease.yunxin.kit.contactkit.ui.fun.selector.FunContactMembersAdapter;
|
||||
import com.netease.yunxin.kit.contactkit.ui.fun.selector.FunContactSelectorDialog;
|
||||
import com.netease.yunxin.kit.contactkit.ui.model.ContactFriendBean;
|
||||
import com.netease.yunxin.kit.contactkit.ui.search.SearchViewModel;
|
||||
import com.netease.yunxin.kit.conversationkit.ui.model.ConversationBean;
|
||||
import com.netease.yunxin.kit.conversationkit.ui.page.viewmodel.ConversationViewModel;
|
||||
import com.netease.yunxin.kit.corekit.im.IMKitClient;
|
||||
import com.netease.yunxin.kit.corekit.im.model.FriendInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.corekit.model.ResultInfo;
|
||||
import com.netease.yunxin.kit.corekit.route.XKitRouter;
|
||||
import com.netease.yunxin.kit.teamkit.ui.normal.adapter.TeamMemberListAdapter;
|
||||
import com.netease.yunxin.kit.teamkit.ui.utils.viewmodel.TeamSettingViewModel;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -100,6 +61,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
|
||||
public static final String ISMANAGER = "isManager";
|
||||
public static final String LISTUSERINFOS = "listUserInfos";
|
||||
public static final String TEAMINFO = "teamInfo";
|
||||
public static final String TYPE = "type";
|
||||
public static final String QUITE = "quite";
|
||||
public static final String TEAMQR = "teamQr";
|
||||
@@ -108,14 +70,16 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
public boolean isRefresh = false; //是否刷新设置页
|
||||
public boolean teamQr = true;
|
||||
public List<UserInfo> listSearch = new ArrayList<>();
|
||||
public int isAllowAdd = 1;
|
||||
|
||||
public static void launch(Context context, boolean isManager, boolean isShowTeamQR, String teamId, List<UserInfo> userInfos, @NonNull ActivityResultLauncher<Intent> launcher) {
|
||||
public static void launch(Context context, int isManager, boolean isShowTeamQR, String teamId, List<UserInfo> userInfos, Team team, @NonNull ActivityResultLauncher<Intent> launcher) {
|
||||
Intent intent = new Intent(context, TeamMembersListActivity.class);
|
||||
intent.putExtra(ISMANAGER, isManager);
|
||||
intent.putExtra(TYPE, 0);
|
||||
intent.putExtra(TEAMQR, isShowTeamQR);
|
||||
intent.putExtra(KEY_TEAM_ID, teamId);
|
||||
intent.putExtra(LISTUSERINFOS, (Serializable) userInfos);
|
||||
intent.putExtra(TEAMINFO, (Serializable) team);
|
||||
launcher.launch(intent);
|
||||
}
|
||||
|
||||
@@ -130,21 +94,37 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
|
||||
|
||||
ActivityTeamMembersBinding binding;
|
||||
private boolean isManager;
|
||||
private int isManager = 0; // 1 群主 2 管理员
|
||||
private Team teamInfo;
|
||||
private String teamOwnerId; //群主id;
|
||||
|
||||
private TeamMembersAdapter membersAdapter;
|
||||
private TeamExtensionBean extensionBean;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
getWindow().setNavigationBarColor(getResources().getColor(com.netease.yunxin.kit.chatkit.ui.R.color.color_white));
|
||||
isManager = getIntent().getBooleanExtra(ISMANAGER, false);
|
||||
isManager = getIntent().getIntExtra(ISMANAGER, 0);
|
||||
teamInfo = (Team) getIntent().getSerializableExtra(TEAMINFO);
|
||||
type = getIntent().getIntExtra(TYPE, 0);
|
||||
quite = getIntent().getIntExtra(QUITE, 0);
|
||||
List<UserInfo> list = (List<UserInfo>) getIntent().getSerializableExtra(LISTUSERINFOS);
|
||||
teamQr = getIntent().getBooleanExtra(TEAMQR, true);
|
||||
|
||||
if (teamInfo != null) {
|
||||
teamOwnerId = teamInfo.getCreator();
|
||||
if (!TextUtils.isEmpty(teamInfo.getExtension())) {
|
||||
extensionBean = GsonUtils.getObjFromJSON(teamInfo.getExtension(), TeamExtensionBean.class);
|
||||
if (extensionBean == null) {
|
||||
extensionBean = new TeamExtensionBean(Integer.parseInt(teamInfo.getExtension()), 1);
|
||||
}
|
||||
} else {
|
||||
extensionBean = new TeamExtensionBean(1, 1);
|
||||
}
|
||||
isAllowAdd = extensionBean.getAllowAddFriends();
|
||||
}
|
||||
if (list != null && list.size() > 0) {
|
||||
listmemebers.clear();
|
||||
listmemebers.addAll(list);
|
||||
@@ -173,6 +153,22 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
}
|
||||
initView();
|
||||
initData();
|
||||
|
||||
// teammodel.getTeamWithMemberData().observe(this, teamResultInfo -> {
|
||||
// if (teamResultInfo.getValue() == null || !teamResultInfo.getSuccess()) {
|
||||
// return;
|
||||
// }
|
||||
// Team teaminfo = teamResultInfo.getValue().getTeam();
|
||||
// String extension = teaminfo.getExtension();
|
||||
// if (!TextUtils.isEmpty(extension)) {
|
||||
// TeamExtensionBean extensionBean = GsonUtils.getObjFromJSON(extension, TeamExtensionBean.class);
|
||||
// if (extensionBean != null) {
|
||||
// isAllowAdd = extensionBean.getAllowAddFriends();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// });
|
||||
// teammodel.requestTeamData(teamId);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +182,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
Map<String, Long> memberMap;
|
||||
|
||||
public void getTeamActiveTime() {
|
||||
if (isManager && type == 0) {
|
||||
if (isManager != 0 && type == 0) {
|
||||
Api.getInstance().teamMemberActiveTime(teamId)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@@ -198,7 +194,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
listmemebers.remove(0);
|
||||
listmemebers = sortListByActivieTime(listmemebers);
|
||||
listmemebers.add(0, IMKitClient.getUserInfo());
|
||||
membersAdapter.setData(listmemebers, true, memberMap);
|
||||
membersAdapter.setData(listmemebers, true, memberMap, teamId);
|
||||
}
|
||||
|
||||
|
||||
@@ -240,7 +236,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
public void setData() {
|
||||
if (type == 0) {
|
||||
listmemebers.add(0, IMKitClient.getUserInfo());
|
||||
membersAdapter.setData(listmemebers, true, memberMap);
|
||||
membersAdapter.setData(listmemebers, true, memberMap, teamId);
|
||||
binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1));
|
||||
} else { //不能编辑 转让
|
||||
// UserInfo info = IMKitClient.getUserInfo();
|
||||
@@ -256,7 +252,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
|
||||
binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size()));
|
||||
membersAdapter.setEdit(false);
|
||||
membersAdapter.setData(listmemebers, false, memberMap);
|
||||
membersAdapter.setData(listmemebers, false, memberMap, teamId);
|
||||
}
|
||||
binding.rvMembers.setAdapter(membersAdapter);
|
||||
}
|
||||
@@ -273,7 +269,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
@Override
|
||||
public void onItemClick(UserInfo item, int position) {
|
||||
//查看成员详情 普通用户点击头像
|
||||
startUserInfoActivity(item.getAccount());
|
||||
startUserInfoActivity(item.getAccount(), teamId);
|
||||
// deletePosition = position;
|
||||
// if (!item.getAccount().equals(IMKitClient.account()) && membersAdapter.isEdit()) {
|
||||
// if (type == 0) {
|
||||
@@ -339,11 +335,18 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
binding.icCleanEdit.setOnClickListener(view -> binding.editSelectorFriends.setText(""));
|
||||
}
|
||||
|
||||
public void startUserInfoActivity(String userid) {
|
||||
public void startUserInfoActivity(String userid, String teamId) {
|
||||
//如果群不允许群内添加好友 当前登录用户不是群主,以及userid 也不是群主 直接跳过
|
||||
if (isAllowAdd == 0 && isManager != 1 && !userid.equals(teamOwnerId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE)
|
||||
.withContext(TeamMembersListActivity.this)
|
||||
.withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account())
|
||||
.withParam("userId", userid)
|
||||
.withParam("teamId", teamId)
|
||||
.withParam("isGroup", true)
|
||||
.navigate();
|
||||
}
|
||||
|
||||
@@ -419,7 +422,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
selectorlist.add(userinfo.getUserInfo().getAccount());
|
||||
listmemebers.add(userinfo.getUserInfo());
|
||||
}
|
||||
membersAdapter.setData(listmemebers, true, memberMap);
|
||||
membersAdapter.setData(listmemebers, true, memberMap, teamId);
|
||||
isRefresh = true;
|
||||
binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1));
|
||||
}
|
||||
@@ -448,7 +451,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
private void initTitleView() {
|
||||
if (type == 0) { //右上角编辑,删除
|
||||
binding.title.setTitle(R.string.teamsetting_members);
|
||||
if (isManager) {
|
||||
if (isManager != 0) {
|
||||
setTitleAction(R.string.teammember_edit, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -538,7 +541,7 @@ public class TeamMembersListActivity extends BaseTeamQrSettingActivity {
|
||||
binding.title.setActionText(actionText);
|
||||
membersAdapter.setEdit(!isEdit);
|
||||
membersAdapter.getSelectedInt().clear();
|
||||
membersAdapter.setData(listmember, isEdit, memberMap);
|
||||
membersAdapter.setData(listmember, isEdit, memberMap, teamId);
|
||||
}
|
||||
|
||||
public void showConfirmDialog(boolean isDelete, String title, List<String> account) {
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.imkit.base.BaseSettingOtherActivity;
|
||||
import com.dskj.rbchat.model.TeamUpdateEvent;
|
||||
import com.dskj.rbchat.utils.GsonUtils;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.msg.MsgService;
|
||||
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
|
||||
@@ -33,8 +34,10 @@ import com.netease.nimlib.sdk.team.constant.TeamBeInviteModeEnum;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamFieldEnum;
|
||||
import com.netease.nimlib.sdk.team.model.Team;
|
||||
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.TeamExtensionBean;
|
||||
import com.netease.yunxin.kit.corekit.event.EventCenter;
|
||||
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.teamkit.ui.utils.viewmodel.TeamSettingViewModel;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -57,6 +60,7 @@ public class TeamOtherSettingActivity extends BaseSettingOtherActivity {
|
||||
private ActivityResultLauncher launcher;
|
||||
public List<UserInfo> listmemebers = new ArrayList<>();
|
||||
private boolean updateIcon = false;
|
||||
private TeamExtensionBean extensionBean;
|
||||
|
||||
public static void launch(Context context, Team teaminfo, @NonNull ActivityResultLauncher<Intent> launcher) {
|
||||
Intent intent = new Intent(context, TeamOtherSettingActivity.class);
|
||||
@@ -165,16 +169,24 @@ public class TeamOtherSettingActivity extends BaseSettingOtherActivity {
|
||||
team, launcher
|
||||
);
|
||||
});
|
||||
String extension = team.getExtension();
|
||||
String extension = team.getExtension(); //扩展字段
|
||||
if (!TextUtils.isEmpty(extension)) {
|
||||
binding.swichTeamqr.setChecked(team.getExtension().equals("1"));
|
||||
extensionBean = GsonUtils.getObjFromJSON(extension, TeamExtensionBean.class);
|
||||
if (extensionBean == null) {
|
||||
extensionBean = new TeamExtensionBean(Integer.parseInt(extension), 1);
|
||||
}
|
||||
binding.swichTeamqr.setChecked(extensionBean.getShowQrCode() == 1);
|
||||
} else {
|
||||
extensionBean = new TeamExtensionBean(1, 1);
|
||||
}
|
||||
int value = team.getVerifyType().getValue();
|
||||
binding.swichAddtype.setChecked(team.getTeamBeInviteMode().getValue() == 1);
|
||||
binding.tvTeamallowaddfriends.setText(extensionBean.getAllowAddFriends() == 1 ? getString(R.string.teamsetting_other_teamallow) : getString(R.string.teamsetting_other_teamallow_not));
|
||||
Map<TeamFieldEnum, Serializable> map = new HashMap<>();
|
||||
binding.swichTeamqr.setOnClickListener(view -> {
|
||||
//onclick check 变更
|
||||
map.put(TeamFieldEnum.Extension, binding.swichTeamqr.isChecked() ? "1" : "0");
|
||||
// map.put(TeamFieldEnum.Extension, binding.swichTeamqr.isChecked() ? "1" : "0");
|
||||
extensionBean.setShowQrCode(binding.swichTeamqr.isChecked() ? 1 : 0);
|
||||
map.put(TeamFieldEnum.Extension, GsonUtils.beanToJSONString(extensionBean));
|
||||
teammodel.UpdateTeamFilesExtension(team.getId(), map);
|
||||
});
|
||||
|
||||
@@ -182,6 +194,11 @@ public class TeamOtherSettingActivity extends BaseSettingOtherActivity {
|
||||
map.put(TeamFieldEnum.BeInviteMode, binding.swichAddtype.isChecked() ? TeamBeInviteModeEnum.NoAuth : TeamBeInviteModeEnum.NeedAuth);
|
||||
teammodel.UpdateTeamFilesExtension(team.getId(), map);
|
||||
});
|
||||
binding.flteammanager.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(this, TeamManagerActivity.class);
|
||||
intent.putExtra(RouterConstant.KEY_TEAM_ID, team.getId());
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -44,16 +44,13 @@ import com.netease.nimlib.sdk.team.model.TeamMember;
|
||||
import com.netease.yunxin.kit.chatkit.model.IMMessageInfo;
|
||||
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
|
||||
import com.netease.yunxin.kit.chatkit.ui.ChatKitUIConstant;
|
||||
import com.netease.yunxin.kit.chatkit.ui.common.ChatUtils;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.CleanHistoryEvent;
|
||||
import com.netease.yunxin.kit.chatkit.ui.model.TeamExtensionBean;
|
||||
import com.netease.yunxin.kit.corekit.event.EventCenter;
|
||||
import com.netease.yunxin.kit.corekit.im.model.UserInfo;
|
||||
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant;
|
||||
import com.netease.yunxin.kit.corekit.route.XKitRouter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -126,7 +123,14 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity {
|
||||
}
|
||||
);
|
||||
binding.tvmember.setOnClickListener(view -> {
|
||||
TeamMembersListActivity.launch(this, teamMember.getType() == TeamMemberType.Owner, isTeamShow, teamId, listmemebers, launcher);
|
||||
int manager = 0;
|
||||
if (teamMember.getType() == TeamMemberType.Owner) {
|
||||
manager = 1;
|
||||
}
|
||||
if (teamMember.getType() == TeamMemberType.Manager) {
|
||||
manager = 2;
|
||||
}
|
||||
TeamMembersListActivity.launch(this, manager, isTeamShow, teamId, listmemebers, teamInfo, launcher);
|
||||
});
|
||||
binding.tvinvited.setOnClickListener(view -> showAddFriendsDialog(isTeamShow));
|
||||
binding.tvexit.setOnClickListener(view -> setQuitTeam());
|
||||
@@ -292,7 +296,6 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity {
|
||||
});
|
||||
|
||||
|
||||
|
||||
teammodel.getQuitTeamData().observe(this, voidResultInfo -> {
|
||||
if (voidResultInfo.getSuccess()) {
|
||||
finish();
|
||||
@@ -331,8 +334,7 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
TeamExtensionBean extensionBean;
|
||||
|
||||
protected void refreshUI(Team team) {
|
||||
teamName = team.getName();
|
||||
@@ -340,11 +342,21 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity {
|
||||
binding.tvTitle.setText(String.format("%s(%d)", teamName, teamNumber));
|
||||
setNotifyUI(teamInfo.getMessageNotifyType() == TeamMessageNotifyTypeEnum.All);
|
||||
setSettingUI(teamMember.getType() == TeamMemberType.Owner);
|
||||
if (!TextUtils.isEmpty(teamInfo.getExtension()) && teamInfo.getExtension().equals("0")) {
|
||||
isTeamShow = false;
|
||||
//为了兼容老版本
|
||||
if (!TextUtils.isEmpty(teamInfo.getExtension())) {
|
||||
extensionBean = GsonUtils.getObjFromJSON(teamInfo.getExtension(), TeamExtensionBean.class);
|
||||
if (extensionBean == null) {
|
||||
extensionBean = new TeamExtensionBean(Integer.parseInt(teamInfo.getExtension()), 1);
|
||||
}
|
||||
} else {
|
||||
isTeamShow = true;
|
||||
extensionBean = new TeamExtensionBean(1, 1);
|
||||
}
|
||||
isTeamShow = (extensionBean.getShowQrCode() == 1);
|
||||
// if (!TextUtils.isEmpty(teamInfo.getExtension()) && teamInfo.getExtension().equals("0")) {
|
||||
// isTeamShow = false;
|
||||
// } else {
|
||||
// isTeamShow = true;
|
||||
// }
|
||||
}
|
||||
|
||||
// public void setExtension() {
|
||||
|
||||
@@ -19,6 +19,10 @@ import androidx.viewbinding.ViewBinding;
|
||||
|
||||
import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.databinding.TeamMembersViewHolderBinding;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.team.TeamService;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMemberType;
|
||||
import com.netease.nimlib.sdk.team.model.TeamMember;
|
||||
import com.netease.yunxin.kit.chatkit.repo.ContactRepo;
|
||||
import com.netease.yunxin.kit.chatkit.ui.normal.factory.ChatVieHolderFactory;
|
||||
import com.netease.yunxin.kit.common.ui.utils.AvatarColor;
|
||||
@@ -47,6 +51,7 @@ public class TeamMembersAdapter extends RecyclerView.Adapter<TeamMembersAdapter.
|
||||
private int selectpostion = -1;
|
||||
private Map<String, Long> mapTime;
|
||||
private List<Integer> selectedInt = new ArrayList<>(); //多选position
|
||||
private String teamId;
|
||||
|
||||
public TeamMembersAdapter(Context context, int type) {
|
||||
members = new ArrayList<>();
|
||||
@@ -60,12 +65,13 @@ public class TeamMembersAdapter extends RecyclerView.Adapter<TeamMembersAdapter.
|
||||
this.itemClickListener = itemClickListener;
|
||||
}
|
||||
|
||||
public void setData(List<UserInfo> list, boolean isShow, Map<String, Long> mapActiveTime) {
|
||||
public void setData(List<UserInfo> list, boolean isShow, Map<String, Long> mapActiveTime, String teamId) {
|
||||
members.clear();
|
||||
members.addAll(list);
|
||||
selectedInt.clear();
|
||||
isShowInvited = isShow;
|
||||
mapTime = mapActiveTime;
|
||||
this.teamId = teamId;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@@ -125,14 +131,19 @@ public class TeamMembersAdapter extends RecyclerView.Adapter<TeamMembersAdapter.
|
||||
holder.binding.tvName.setText(mContext.getResources().getString(R.string.invcode_friend_txt));
|
||||
holder.binding.tvNameActivetime.setVisibility(View.GONE);
|
||||
} else {
|
||||
|
||||
if (isEdit) {
|
||||
TeamMember teamMember = NIMClient.getService(TeamService.class).queryTeamMemberBlock(teamId, userInfo.getAccount());
|
||||
if (teamMember != null && (teamMember.getType() == TeamMemberType.Manager || teamMember.getType() == TeamMemberType.Owner)) {
|
||||
holder.binding.icDelete.setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.binding.icDelete.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (selectedInt.indexOf(position) >= 0) {
|
||||
holder.binding.icDelete.setBackgroundResource(R.mipmap.dialog_gou_t);
|
||||
} else {
|
||||
holder.binding.icDelete.setBackgroundResource(R.mipmap.dialog_gou_ff);
|
||||
}
|
||||
holder.binding.icDelete.setVisibility(userInfo.getAccount().equals(IMKitClient.account()) ? View.GONE : View.VISIBLE);
|
||||
// holder.binding.icDelete.setVisibility(userInfo.getAccount().equals(IMKitClient.account()) ? View.GONE : View.VISIBLE);
|
||||
} else if (mType == 1) {
|
||||
|
||||
if (selectpostion >= 0 && position == selectpostion) {
|
||||
@@ -182,7 +193,7 @@ public class TeamMembersAdapter extends RecyclerView.Adapter<TeamMembersAdapter.
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
if (isEdit) {
|
||||
if (isEdit && holder.binding.icDelete.getVisibility() == View.VISIBLE) {
|
||||
//管理员删除用户选择
|
||||
int index = selectedInt.indexOf(position);
|
||||
if (index >= 0) {
|
||||
|
||||
Reference in New Issue
Block a user