Commit 687f1048 authored by jianglx's avatar jianglx

im 2019 -12 -23

parent 32cadb23
...@@ -4,6 +4,7 @@ import android.content.Intent; ...@@ -4,6 +4,7 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
...@@ -16,11 +17,14 @@ import com.rv.im.bean.ContactsBean; ...@@ -16,11 +17,14 @@ import com.rv.im.bean.ContactsBean;
import com.rv.im.db.table.ChatMessage; import com.rv.im.db.table.ChatMessage;
import com.rv.im.friend.NewFriendActivity; import com.rv.im.friend.NewFriendActivity;
import com.rv.im.presenter.AddressPresenter; import com.rv.im.presenter.AddressPresenter;
import com.rv.im.util.sortlist.PingYinUtil;
import com.rv.im.xmpp.ListenerManager; import com.rv.im.xmpp.ListenerManager;
import com.rv.im.xmpp.listener.NewFriendListener; import com.rv.im.xmpp.listener.NewFriendListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List; import java.util.List;
/************ /************
...@@ -34,7 +38,7 @@ public class AddressListActivity extends BaseStatusActivity<AddressPresenter> im ...@@ -34,7 +38,7 @@ public class AddressListActivity extends BaseStatusActivity<AddressPresenter> im
private AddressListAdapter adapter = null; private AddressListAdapter adapter = null;
private List<ContactsBean.ContactItemBean> lists = new ArrayList<>(); private List<ContactsBean.ContactItemBean> lists = new LinkedList<>();
@Override @Override
...@@ -96,10 +100,22 @@ public class AddressListActivity extends BaseStatusActivity<AddressPresenter> im ...@@ -96,10 +100,22 @@ public class AddressListActivity extends BaseStatusActivity<AddressPresenter> im
// 保存数据,更新ui; // 保存数据,更新ui;
lists.clear(); lists.clear();
lists.addAll(bean.getData()); lists.addAll(bean.getData());
Collections.sort(lists); Collections.sort(lists, (o1, o2) -> {
if(TextUtils.isEmpty(o1.getToNickname())){
return 1;
}
if(TextUtils.isEmpty(o2.getToNickname())){
return -1;
}
String pingyin = PingYinUtil.getPingYin(o2.getToNickname());
String pingy = PingYinUtil.getPingYin(o1.getToNickname());
if (!TextUtils.isEmpty(pingy) && !TextUtils.isEmpty(pingyin)) {
return pingy.compareTo(pingyin);
}
return 0;
});
mPresenter.addTopDatas(lists); mPresenter.addTopDatas(lists);
adapter.setNewData(lists); adapter.setNewData(lists);
adapter.notifyDataSetChanged();
} }
} }
} }
......
...@@ -46,8 +46,18 @@ public class ChatHolderFactory { ...@@ -46,8 +46,18 @@ public class ChatHolderFactory {
} else { } else {
type = ChatHolderTypeEnum.VIEW_FROM_VIDEO; type = ChatHolderTypeEnum.VIEW_FROM_VIDEO;
} }
}else if(message.getMessageType() == MessageTypeEnum.PASS.getType()){ } else if (message.getMessageType() == MessageTypeEnum.PASS.getType()) {
type = ChatHolderTypeEnum.VIEW_ADD_FRIEND_SUCCESS ; if (mLoginUserId.equals(message.getToUserId())) { // 对方同意我的添加好友
type = ChatHolderTypeEnum.VIEW_BE_PASS;
} else { // 我同意对方的添加好友
type = ChatHolderTypeEnum.VIEW_PASS;
}
} else if (message.getMessageType() == MessageTypeEnum.BE_FRIEND.getType()) {
if (mLoginUserId.equals(message.getToUserId())) { // 对方直接添加我为好友
type = ChatHolderTypeEnum.VIEW_BE_FRIEND;
} else { // 我直接添加对方为好友
type = ChatHolderTypeEnum.VIEW_ADD_SUCCESS;
}
} }
} }
if (type != null) if (type != null)
......
...@@ -25,10 +25,17 @@ public enum ChatHolderTypeEnum { ...@@ -25,10 +25,17 @@ public enum ChatHolderTypeEnum {
VIEW_FROM_VIDEO(60), VIEW_FROM_VIDEO(60),
VIEW_TO_VIDEO(61), VIEW_TO_VIDEO(61),
// 添加好友 这一块 // 对方同意我的添加好友请求
VIEW_ADD_FRIEND_SUCCESS(70) ; VIEW_BE_PASS(70),
// 我同意对方的添加好友请求
VIEW_PASS(71),
// 我直接添加对方为好友
VIEW_ADD_SUCCESS(72),
// 对方直接添加我为好友
VIEW_BE_FRIEND(73);
private int id; private int id;
......
...@@ -12,6 +12,7 @@ import com.ruiwenliu.wrapper.base.BaseBean; ...@@ -12,6 +12,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.im.bean.UserDetailBean; import com.rv.im.bean.UserDetailBean;
import com.rv.im.friend.RealAddFriendActivity;
import com.rv.im.listener.NoDoubleClickListener; import com.rv.im.listener.NoDoubleClickListener;
import com.rv.im.presenter.UserDetailPresenter; import com.rv.im.presenter.UserDetailPresenter;
import com.rv.im.util.DateUtils; import com.rv.im.util.DateUtils;
...@@ -21,8 +22,10 @@ import com.rv.im.view.RoundImageView; ...@@ -21,8 +22,10 @@ import com.rv.im.view.RoundImageView;
public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> { public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> {
private static final String KEY_USER_ID = "userId"; private static final String KEY_USER_ID = "userId";
private static final String KEY_ADD_TYPE = "addType";
private String userId; private String userId;
private int fromAddType;
private String mLoginUserId; private String mLoginUserId;
...@@ -47,6 +50,15 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> ...@@ -47,6 +50,15 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter>
ctx.startActivity(intent); ctx.startActivity(intent);
} }
public static void start(Context ctx, String userId, int fromAddType) {
Intent intent = new Intent(ctx, UserDetailActivity.class);
Bundle bundle = new Bundle();
bundle.putString(KEY_USER_ID, userId);
bundle.putInt(KEY_ADD_TYPE, fromAddType);
intent.putExtras(bundle);
ctx.startActivity(intent);
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -60,7 +72,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> ...@@ -60,7 +72,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter>
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("基本信息"); titleView.setTitle("基本信息");
initWeight(); initWidget();
} }
@Override @Override
...@@ -68,6 +80,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> ...@@ -68,6 +80,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter>
super.loadData(savedInstanceState, intent); super.loadData(savedInstanceState, intent);
if (intent != null) { if (intent != null) {
userId = intent.getStringExtra(KEY_USER_ID); userId = intent.getStringExtra(KEY_USER_ID);
fromAddType = intent.getIntExtra(KEY_ADD_TYPE, -1) ;
} }
mLoginUserId = ImSetting.getUserId(); mLoginUserId = ImSetting.getUserId();
if (TextUtils.isEmpty(userId)) { if (TextUtils.isEmpty(userId)) {
...@@ -76,7 +89,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> ...@@ -76,7 +89,7 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter>
mPresenter.loadOtherInfoFromNet(userId); mPresenter.loadOtherInfoFromNet(userId);
} }
private void initWeight() { private void initWidget() {
nameTv = findViewById(R.id.name_tv); nameTv = findViewById(R.id.name_tv);
avatarImg = findViewById(R.id.avatar_img); avatarImg = findViewById(R.id.avatar_img);
renameTv = findViewById(R.id.rename_tv); renameTv = findViewById(R.id.rename_tv);
...@@ -165,7 +178,9 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter> ...@@ -165,7 +178,9 @@ public class UserDetailActivity extends BaseStatusActivity<UserDetailPresenter>
public class AddAttentionListener extends NoDoubleClickListener { public class AddAttentionListener extends NoDoubleClickListener {
@Override @Override
public void onNoDoubleClick(View view) { public void onNoDoubleClick(View view) {
Intent intent = RealAddFriendActivity.getIntent(getApplicationContext(), userId, user.getNickName(), fromAddType);
startActivity(intent);
finish();
} }
} }
} }
...@@ -44,27 +44,23 @@ public class AddRecordListAdapter extends BaseQuickAdapter<Friend, BaseViewHolde ...@@ -44,27 +44,23 @@ public class AddRecordListAdapter extends BaseQuickAdapter<Friend, BaseViewHolde
if (item.getStatus() == Friend.STATUS_10) { if (item.getStatus() == Friend.STATUS_10) {
helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE); helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE);
helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE); helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(item.getAction())) { helper.setText(R.id.text_add_status, "等待验证");
helper.setText(R.id.text_add_status, item.getAction()); } else if (item.getStatus() == Friend.STATUS_11) {
}
} else if(item.getStatus() == Friend.STATUS_11){
helper.itemView.findViewById(R.id.btn_add).setVisibility(View.VISIBLE); helper.itemView.findViewById(R.id.btn_add).setVisibility(View.VISIBLE);
helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.GONE); helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.GONE);
if (!TextUtils.isEmpty(item.getAction())) { helper.setText(R.id.btn_add, "同意");
helper.setText(R.id.btn_add, item.getAction()); } else if (item.getStatus() == Friend.STATUS_12) {
}
} else if(item.getStatus() == Friend.STATUS_12){
helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE); helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE);
helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE); helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(item.getAction())) { helper.setText(R.id.text_add_status, "同意添加");
helper.setText(R.id.text_add_status, item.getAction()); } else if (item.getStatus() == Friend.STATUS_13) {
}
}else if(item.getStatus() == Friend.STATUS_13){
helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE); helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE);
helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE); helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(item.getAction())) { helper.setText(R.id.text_add_status, "验证通过");
helper.setText(R.id.text_add_status, item.getAction()); } else if (item.getStatus() == Friend.STATUS_21 || item.getStatus() == Friend.STATUS_22) {
} helper.itemView.findViewById(R.id.btn_add).setVisibility(View.GONE);
helper.itemView.findViewById(R.id.text_add_status).setVisibility(View.VISIBLE);
helper.setText(R.id.text_add_status, item.getAction());
} }
helper.setOnClickListener(R.id.btn_add, v -> { helper.setOnClickListener(R.id.btn_add, v -> {
......
...@@ -18,7 +18,14 @@ public class AddressListAdapter extends BaseQuickAdapter<ContactsBean.ContactIte ...@@ -18,7 +18,14 @@ public class AddressListAdapter extends BaseQuickAdapter<ContactsBean.ContactIte
private boolean needShowNavigation = true; private boolean needShowNavigation = true;
private char lastNavigation = 'A'; private String lastNavigation = null;
@Override
public void setNewData(@Nullable List<ContactsBean.ContactItemBean> data) {
lastNavigation = null;
needShowNavigation = true;
super.setNewData(data);
}
public AddressListAdapter(@Nullable List<ContactsBean.ContactItemBean> data) { public AddressListAdapter(@Nullable List<ContactsBean.ContactItemBean> data) {
super(R.layout.item_address_list, data); super(R.layout.item_address_list, data);
...@@ -41,25 +48,22 @@ public class AddressListAdapter extends BaseQuickAdapter<ContactsBean.ContactIte ...@@ -41,25 +48,22 @@ public class AddressListAdapter extends BaseQuickAdapter<ContactsBean.ContactIte
} }
} else { } else {
String navigation = PingYinUtil.getPingYin(item.getToNickname()); String navigation = PingYinUtil.getPingYin(item.getToNickname());
if (!TextUtils.isEmpty(navigation) && navigation.charAt(0) == lastNavigation) { if (!TextUtils.isEmpty(navigation) && navigation.substring(0, 1).equals(lastNavigation)) {
needShowNavigation = false; needShowNavigation = false;
} else { } else {
if (!TextUtils.isEmpty(navigation)) { if (!TextUtils.isEmpty(navigation)) {
lastNavigation = navigation.charAt(0); lastNavigation = navigation.substring(0, 1);
} }
needShowNavigation = true; needShowNavigation = true;
} }
if (needShowNavigation) { if (needShowNavigation) {
helper.itemView.findViewById(R.id.ll_navigation).setVisibility(View.VISIBLE); helper.itemView.findViewById(R.id.ll_navigation).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_character, TextUtils.isEmpty(navigation) ? "" : String.valueOf(navigation.charAt(0))); helper.setText(R.id.tv_character, TextUtils.isEmpty(lastNavigation) ? "" : lastNavigation);
} else { } else {
helper.itemView.findViewById(R.id.ll_navigation).setVisibility(View.GONE); helper.itemView.findViewById(R.id.ll_navigation).setVisibility(View.GONE);
helper.setText(R.id.tv_character, TextUtils.isEmpty(lastNavigation) ? "" : lastNavigation);
} }
// if (!TextUtils.isEmpty(item.getHeadUrl())) {
// ImageView imageView = helper.itemView.findViewById(R.id.img_header);
// GlideManager.getInstance(mContext).loadImage(item.getHeadUrl(), imageView);
// }
} }
helper.itemView.setOnClickListener(v -> { helper.itemView.setOnClickListener(v -> {
......
...@@ -104,7 +104,9 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -104,7 +104,9 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
case 61: case 61:
return new MsgToVideoCallHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_to_item_video_call, viewGroup, false)); return new MsgToVideoCallHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_to_item_video_call, viewGroup, false));
case 70: case 70:
return new MsgBeFriendHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_be_friend, viewGroup, false)) ; return new MsgBePassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_be_pass_item, viewGroup, false));
case 71:
return new MsgPassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_pass_item, viewGroup, false));
} }
return null; return null;
} }
...@@ -137,8 +139,10 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -137,8 +139,10 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
setFromVideoCallContentView(bean, (MsgFromVideoCallHolder) viewHolder); setFromVideoCallContentView(bean, (MsgFromVideoCallHolder) viewHolder);
} else if (viewHolder instanceof MsgToVideoCallHolder) { } else if (viewHolder instanceof MsgToVideoCallHolder) {
setToVideoCallContentView(bean, (MsgToVideoCallHolder) viewHolder); setToVideoCallContentView(bean, (MsgToVideoCallHolder) viewHolder);
}else if(viewHolder instanceof MsgBeFriendHolder){ } else if (viewHolder instanceof MsgBePassHolder) {
setBeFriendContentView(bean, (MsgBeFriendHolder) viewHolder); setBeFriendContentView(bean, (MsgBeFriendHolder) viewHolder);
} else if (viewHolder instanceof MsgPassHolder) {
} }
} }
} }
...@@ -202,7 +206,11 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -202,7 +206,11 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} }
} }
private void setBeFriendContentView(ChatMessage bean, MsgBeFriendHolder holder){ private void setBePassContentView(ChatMessage bean, MsgBeFriendHolder holder) {
showTime(holder.tvTime, bean);
}
private void setBeFriendContentView(ChatMessage bean, MsgBeFriendHolder holder) {
showTime(holder.tvTime, bean); showTime(holder.tvTime, bean);
} }
...@@ -516,15 +524,42 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -516,15 +524,42 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} }
} }
class MsgBeFriendHolder extends RecyclerView.ViewHolder{ class MsgBeFriendHolder extends RecyclerView.ViewHolder {
TextView tvTime; TextView tvTime;
public MsgBeFriendHolder(@NonNull View itemView) { public MsgBeFriendHolder(@NonNull View itemView) {
super(itemView); super(itemView);
tvTime = itemView.findViewById(R.id.tv_time); tvTime = itemView.findViewById(R.id.tv_time);
} }
} }
class MsgBePassHolder extends RecyclerView.ViewHolder {
TextView tvSendTime;
RoundImageView ivHeader;
TextView chatText;
public MsgBePassHolder(@NonNull View itemView) {
super(itemView);
tvSendTime = itemView.findViewById(R.id.tv_send_time);
ivHeader = itemView.findViewById(R.id.iv_header);
chatText = itemView.findViewById(R.id.chat_text);
}
}
class MsgPassHolder extends RecyclerView.ViewHolder {
TextView tvSendTime;
RoundImageView ivHeader;
TextView chatText;
public MsgPassHolder(@NonNull View itemView) {
super(itemView);
tvSendTime = itemView.findViewById(R.id.tv_send_time);
ivHeader = itemView.findViewById(R.id.iv_header);
chatText = itemView.findViewById(R.id.chat_text);
}
}
class MsgFromTextHolder extends RecyclerView.ViewHolder { class MsgFromTextHolder extends RecyclerView.ViewHolder {
TextView tvSendTime; TextView tvSendTime;
RoundImageView ivHeader; RoundImageView ivHeader;
......
...@@ -76,8 +76,16 @@ public class AddFriendActivity extends BaseStatusActivity<AddFriendPresenter> im ...@@ -76,8 +76,16 @@ public class AddFriendActivity extends BaseStatusActivity<AddFriendPresenter> im
adapter.setListener(new FriendSearchListAdapter.FriendItemClickListener() { adapter.setListener(new FriendSearchListAdapter.FriendItemClickListener() {
@Override @Override
public void showDetail(FriendSearchBean.FriendSearItemBean item) { public void showDetail(FriendSearchBean.FriendSearItemBean item) {
if (item != null) if (item != null) {
UserDetailActivity.start(getApplicationContext(), item.getUserId()); int fromAddType;
if (!TextUtils.isEmpty(userName) && userName.contains(mKeyWord)) {
fromAddType = 5;
} else {
// 昵称不包含关键字的话就是通过手机号搜索出来的,
fromAddType = 4;
}
UserDetailActivity.start(getApplicationContext(), item.getUserId(),fromAddType);
}
} }
@Override @Override
......
...@@ -11,6 +11,7 @@ import com.ruiwenliu.wrapper.base.BaseBean; ...@@ -11,6 +11,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.im.R; import com.rv.im.R;
import com.rv.im.UserDetailActivity;
import com.rv.im.adapter.AddRecordListAdapter; import com.rv.im.adapter.AddRecordListAdapter;
import com.rv.im.db.service.FriendServiceImp; import com.rv.im.db.service.FriendServiceImp;
import com.rv.im.db.table.ChatMessage; import com.rv.im.db.table.ChatMessage;
...@@ -121,6 +122,7 @@ public class NewFriendActivity extends BaseStatusActivity<NewFriendPresenter> im ...@@ -121,6 +122,7 @@ public class NewFriendActivity extends BaseStatusActivity<NewFriendPresenter> im
private AddRecordListAdapter.FriendItemClickListener listener = new AddRecordListAdapter.FriendItemClickListener() { private AddRecordListAdapter.FriendItemClickListener listener = new AddRecordListAdapter.FriendItemClickListener() {
@Override @Override
public void showDetail(Friend item) { public void showDetail(Friend item) {
UserDetailActivity.start(getApplicationContext(),item.getUserId());
} }
@Override @Override
......
...@@ -9,6 +9,7 @@ import android.view.View; ...@@ -9,6 +9,7 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
...@@ -118,8 +119,6 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese ...@@ -118,8 +119,6 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese
showToast("打招呼成功,静候回音"); showToast("打招呼成功,静候回音");
FriendServiceImp.getInstance(this).addMessage(mPresenter.buildAddFriendMessage(userId, userName, message.getMessageType())); FriendServiceImp.getInstance(this).addMessage(mPresenter.buildAddFriendMessage(userId, userName, message.getMessageType()));
setResult(RESULT_OK); setResult(RESULT_OK);
finish();
// ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true); // ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true);
} else if (isyanzheng == 1) { } else if (isyanzheng == 1) {
showToast("好友添加成功"); showToast("好友添加成功");
...@@ -128,88 +127,12 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese ...@@ -128,88 +127,12 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese
ChatMessageServiceImp.getInstance(this).addMessage(message); ChatMessageServiceImp.getInstance(this).addMessage(message);
setResult(RESULT_OK); setResult(RESULT_OK);
finish(); finish();
// FriendDao.getInstance().updateFriendContent(mLoginUserId, mUser.getUserId(), InternationalizationHelper.getString("JXMessageObject_BeFriendAndChat"), XmppMessage.TYPE_TEXT, TimeUtils.sk_time_current_time());
// ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true);
// loadOthersInfoFromNet();
// CardcastUiUpdateUtil.broadcastUpdateUi(mContext);
} }
// 已经是好友了,mFriend不能为空,
// mFriend = FriendDao.getInstance().getFriend(mLoginUserId, mUserId);
} }
// else if (addblackid != null && addblackid.equals(packet)) { }
// Toast.makeText(getApplicationContext(), getString(R.string.add_blacklist_succ), Toast.LENGTH_SHORT).show();
// findViewById(R.id.look_bussic_cicle_rl).setVisibility(View.GONE); public void msgSendFailed(String packet) {
// mNextStepBtn.setText(InternationalizationHelper.getString("REMOVE")); showToast(getString(R.string.add_friend_failed));
// mNextStepBtn.setOnClickListener(new RemoveBlacklistListener());
//
// // 更新当前持有的Friend对象,
// mFriend.setStatus(Friend.STATUS_BLACKLIST);
// FriendDao.getInstance().updateFriendStatus(message.getOwnerId(), message.getUserId(), mFriend.getStatus());
// FriendHelper.addBlacklistExtraOperation(message.getOwnerId(), message.getUserId());
//
// ChatMessage addBlackChatMessage = new ChatMessage();
// addBlackChatMessage.setContent(InternationalizationHelper.getString("JXFriendObject_AddedBlackList") + " " + mUser.getNickName());
// addBlackChatMessage.setTimeSend(TimeUtils.sk_time_current_time());
// FriendDao.getInstance().updateLastChatMessage(mLoginUserId, Friend.ID_NEW_FRIEND_MESSAGE, addBlackChatMessage);
//
// NewFriendDao.getInstance().createOrUpdateNewFriend(message);
// NewFriendDao.getInstance().changeNewFriendState(mUser.getUserId(), Friend.STATUS_18);
// ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true);
//
// CardcastUiUpdateUtil.broadcastUpdateUi(mContext);
//
// Intent intent = new Intent(this, MainActivity.class);
// startActivity(intent);
// finish();
// } else if (removeblack != null && removeblack.equals(packet)) {
// Toast.makeText(getApplicationContext(), InternationalizationHelper.getString("REMOVE_BLACKLIST"), Toast.LENGTH_SHORT).show();
// findViewById(R.id.look_bussic_cicle_rl).setVisibility(View.VISIBLE);
// mNextStepBtn.setText(InternationalizationHelper.getString("JXUserInfoVC_SendMseeage"));
// mNextStepBtn.setOnClickListener(new SendMsgListener());
//
// // 更新当前持有的Friend对象,
// if (mFriend != null) {
// mFriend.setStatus(Friend.STATUS_FRIEND);
// }
// NewFriendDao.getInstance().ascensionNewFriend(message, Friend.STATUS_FRIEND);
// FriendHelper.beAddFriendExtraOperation(message.getOwnerId(), message.getUserId());
//
// ChatMessage removeChatMessage = new ChatMessage();
// removeChatMessage.setContent(coreManager.getSelf().getNickName() + InternationalizationHelper.getString("REMOVE"));
// removeChatMessage.setTimeSend(TimeUtils.sk_time_current_time());
// FriendDao.getInstance().updateLastChatMessage(mLoginUserId, Friend.ID_NEW_FRIEND_MESSAGE, removeChatMessage);
// /* FriendDao.getInstance().updateFriendContent(mLoginUserId, message.getUserId(),
// InternationalizationHelper.getString("JXMessageObject_BeFriendAndChat"), XmppMessage.TYPE_TEXT, TimeUtils.sk_time_current_time());*/
//
// NewFriendDao.getInstance().createOrUpdateNewFriend(message);
// NewFriendDao.getInstance().changeNewFriendState(message.getUserId(), Friend.STATUS_24);
// ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true);
//
// CardcastUiUpdateUtil.broadcastUpdateUi(mContext);
//
// loadOthersInfoFromNet();
// } else if (deletehaoyou != null && deletehaoyou.equals(packet)) {
// Toast.makeText(getApplicationContext(), InternationalizationHelper.getString("JXAlert_DeleteOK"), Toast.LENGTH_SHORT).show();
//
// FriendHelper.removeAttentionOrFriend(mLoginUserId, message.getUserId());
//
// ChatMessage deleteChatMessage = new ChatMessage();
// deleteChatMessage.setContent(InternationalizationHelper.getString("JXAlert_DeleteFirend") + " " + mUser.getNickName());
// deleteChatMessage.setTimeSend(TimeUtils.sk_time_current_time());
// FriendDao.getInstance().updateLastChatMessage(mLoginUserId, Friend.ID_NEW_FRIEND_MESSAGE, deleteChatMessage);
//
// NewFriendDao.getInstance().createOrUpdateNewFriend(message);
// NewFriendDao.getInstance().changeNewFriendState(mUser.getUserId(), Friend.STATUS_16);
// ListenerManager.getInstance().notifyNewFriend(mLoginUserId, message, true);
//
// CardcastUiUpdateUtil.broadcastUpdateUi(mContext);
//
// Intent intent = new Intent(this, MainActivity.class);
// startActivity(intent);
// finish();
// }
} }
@Override @Override
...@@ -217,7 +140,7 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese ...@@ -217,7 +140,7 @@ public class RealAddFriendActivity extends BaseStatusActivity<RealAddFriendPrese
if (messageState == ChatMessageListener.MESSAGE_SEND_SUCCESS) { if (messageState == ChatMessageListener.MESSAGE_SEND_SUCCESS) {
msgSendSuccess(message, message.getPackId()); msgSendSuccess(message, message.getPackId());
} else if (messageState == ChatMessageListener.MESSAGE_SEND_FAILED) { } else if (messageState == ChatMessageListener.MESSAGE_SEND_FAILED) {
// msgSendFailed(message.getPacketId()); msgSendFailed(message.getPackId());
} }
} }
......
...@@ -54,7 +54,7 @@ public class AddFriendPresenter extends CommonPresenter { ...@@ -54,7 +54,7 @@ public class AddFriendPresenter extends CommonPresenter {
params.put("toUserId", userId); params.put("toUserId", userId);
params.put("fromAddType", String.valueOf(fromAddType)); params.put("fromAddType", String.valueOf(fromAddType));
getData(1,appConfig.FRIENDS_ATTENTION_ADD,AddResultBean.class,params,true); getData(0,appConfig.FRIENDS_ATTENTION_ADD,AddResultBean.class,params,true);
} }
// 打招呼 // 打招呼
...@@ -116,7 +116,6 @@ public class AddFriendPresenter extends CommonPresenter { ...@@ -116,7 +116,6 @@ public class AddFriendPresenter extends CommonPresenter {
} }
friend.setRead(true); friend.setRead(true);
friend.setStatus(status);
friend.setTimeCreate(System.currentTimeMillis()); friend.setTimeCreate(System.currentTimeMillis());
return friend; return friend;
} }
......
package com.rv.im.presenter; package com.rv.im.presenter;
import android.text.TextUtils;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter; import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.component.utils.CacheEnum; import com.rv.component.utils.CacheEnum;
import com.rv.component.utils.RvCache; import com.rv.component.utils.RvCache;
...@@ -7,7 +9,9 @@ import com.rv.im.AppConfig; ...@@ -7,7 +9,9 @@ import com.rv.im.AppConfig;
import com.rv.im.ImSetting; import com.rv.im.ImSetting;
import com.rv.im.R; import com.rv.im.R;
import com.rv.im.bean.ContactsBean; import com.rv.im.bean.ContactsBean;
import com.rv.im.util.sortlist.PingYinUtil;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,16 +24,30 @@ public class AddressPresenter extends CommonPresenter { ...@@ -20,16 +24,30 @@ public class AddressPresenter extends CommonPresenter {
* @param lists * @param lists
*/ */
public void initAddress(List<ContactsBean.ContactItemBean> lists) { public void initAddress(List<ContactsBean.ContactItemBean> lists) {
addTopDatas(lists);
boolean isShowLoading = lists == null || lists.size() == 0; boolean isShowLoading = lists == null || lists.size() == 0;
ContactsBean bean = (ContactsBean) RvCache.getInstance().get(CacheEnum.CONTACTS); ContactsBean bean = (ContactsBean) RvCache.getInstance().get(CacheEnum.CONTACTS);
if (bean != null && bean.getData() != null && bean.getData().size() > 0) { if (bean != null && bean.getData() != null && bean.getData().size() > 0) {
lists.addAll(bean.getData()); lists.addAll(bean.getData());
} }
Collections.sort(lists, (o1, o2) -> {
if(TextUtils.isEmpty(o1.getToNickname())){
return 1;
}
if(TextUtils.isEmpty(o2.getToNickname())){
return -1;
}
String pingyin = PingYinUtil.getPingYin(o2.getToNickname());
String pingy = PingYinUtil.getPingYin(o1.getToNickname());
if (!TextUtils.isEmpty(pingy) && !TextUtils.isEmpty(pingyin)) {
return pingy.compareTo(pingyin);
}
return 0;
});
addTopDatas(lists);
pullFriends(isShowLoading); pullFriends(isShowLoading);
} }
public void addTopDatas(List<ContactsBean.ContactItemBean> lists){ public void addTopDatas(List<ContactsBean.ContactItemBean> lists) {
addCustomerItem(lists); addCustomerItem(lists);
addGroupItem(lists); addGroupItem(lists);
addNewFriendItem(lists); addNewFriendItem(lists);
...@@ -40,7 +58,7 @@ public class AddressPresenter extends CommonPresenter { ...@@ -40,7 +58,7 @@ public class AddressPresenter extends CommonPresenter {
bean.setType(0); bean.setType(0);
bean.setToNickname(getPresenterContext().getString(R.string.text_new_friend)); bean.setToNickname(getPresenterContext().getString(R.string.text_new_friend));
bean.setLocalHead(R.drawable.icon_lion); bean.setLocalHead(R.drawable.icon_lion);
lists.add(2,bean); lists.add(2, bean);
} }
private void addGroupItem(List<ContactsBean.ContactItemBean> lists) { private void addGroupItem(List<ContactsBean.ContactItemBean> lists) {
...@@ -48,7 +66,7 @@ public class AddressPresenter extends CommonPresenter { ...@@ -48,7 +66,7 @@ public class AddressPresenter extends CommonPresenter {
bean.setType(0); bean.setType(0);
bean.setToNickname(getPresenterContext().getString(R.string.text_group)); bean.setToNickname(getPresenterContext().getString(R.string.text_group));
bean.setLocalHead(R.drawable.icon_lion); bean.setLocalHead(R.drawable.icon_lion);
lists.add(1,bean); lists.add(1, bean);
} }
private void addCustomerItem(List<ContactsBean.ContactItemBean> lists) { private void addCustomerItem(List<ContactsBean.ContactItemBean> lists) {
...@@ -56,7 +74,7 @@ public class AddressPresenter extends CommonPresenter { ...@@ -56,7 +74,7 @@ public class AddressPresenter extends CommonPresenter {
bean.setType(0); bean.setType(0);
bean.setToNickname(getPresenterContext().getString(R.string.text_customer_list)); bean.setToNickname(getPresenterContext().getString(R.string.text_customer_list));
bean.setLocalHead(R.drawable.icon_lion); bean.setLocalHead(R.drawable.icon_lion);
lists.add(0,bean); lists.add(0, bean);
} }
......
...@@ -5,7 +5,6 @@ import com.rv.component.utils.CacheEnum; ...@@ -5,7 +5,6 @@ import com.rv.component.utils.CacheEnum;
import com.rv.component.utils.RvCache; import com.rv.component.utils.RvCache;
import com.rv.im.AppConfig; import com.rv.im.AppConfig;
import com.rv.im.ImSetting; import com.rv.im.ImSetting;
import com.rv.im.bean.ImBaseBean;
import com.rv.im.bean.UserDetailBean; import com.rv.im.bean.UserDetailBean;
import java.util.HashMap; import java.util.HashMap;
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingLeft="@dimen/chat_item_padding_left"
android:paddingTop="@dimen/chat_item_padding_top"
android:paddingRight="@dimen/chat_item_padding_right"
android:paddingBottom="@dimen/chat_item_padding_bottom">
<TextView
android:id="@+id/tv_send_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2019-08-19 16:36"
android:textColor="@color/gray"
android:textSize="@dimen/dp10" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.rv.im.view.RoundImageView
android:id="@+id/iv_header"
android:layout_width="38dp"
android:layout_height="38dp"
android:contentDescription="@string/app_name"
android:src="@drawable/common_icon_avatar_default"
android:transitionName="sharedView" />
<TextView
android:id="@+id/chat_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/dp10"
android:layout_marginTop="@dimen/chat_head_top"
android:clickable="true"
android:focusable="true"
android:gravity="left|center_vertical"
android:maxWidth="210dp"
android:minHeight="30dp"
android:padding="@dimen/dp10"
android:textColor="@color/colorMain"
android:textSize="@dimen/sp_14"
tools:text="sdfsdfsdfs" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical"
android:paddingLeft="@dimen/chat_item_padding_left"
android:paddingTop="@dimen/chat_item_padding_top"
android:paddingRight="@dimen/chat_item_padding_right"
android:paddingBottom="@dimen/chat_item_padding_bottom">
<TextView
android:id="@+id/tv_send_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="2019-08-19 16:36"
android:textColor="@color/gray"
android:textSize="@dimen/dp10" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/chat_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/dp5"
android:layout_marginTop="@dimen/chat_head_top"
android:clickable="true"
android:focusable="true"
android:gravity="left|center_vertical"
android:maxWidth="210dp"
android:minHeight="@dimen/size_30"
android:padding="@dimen/dp10"
android:textColor="@color/colorMain"
android:textSize="@dimen/sp_14"
tools:text="sdfsdfsdfs" />
<com.rv.im.view.RoundImageView
android:id="@+id/iv_header"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_marginLeft="@dimen/dp10"
android:contentDescription="@string/app_name"
android:src="@drawable/common_icon_avatar_default"
android:transitionName="sharedView" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
...@@ -29,14 +29,18 @@ ...@@ -29,14 +29,18 @@
android:layout_width="@dimen/size_80" android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_38" android:layout_height="@dimen/size_38"
android:layout_gravity="right" android:layout_gravity="right"
android:text="同意" /> android:layout_marginRight="10dp"
android:text="同意"
android:visibility="gone" />
<TextView <TextView
android:gravity="center"
android:id="@+id/text_add_status" android:id="@+id/text_add_status"
android:layout_width="@dimen/size_80" android:layout_width="wrap_content"
android:layout_height="@dimen/size_38" android:layout_height="match_parent"
android:layout_gravity="right" /> android:layout_gravity="right"
android:layout_marginRight="10dp"
android:gravity="center"
android:visibility="gone" />
</LinearLayout> </LinearLayout>
<View <View
......
...@@ -188,4 +188,5 @@ ...@@ -188,4 +188,5 @@
<string name="label_online_time">上次在线时间</string> <string name="label_online_time">上次在线时间</string>
<string name="qrcode">二维码</string> <string name="qrcode">二维码</string>
<string name="now_location">所在位置</string> <string name="now_location">所在位置</string>
<string name="add_friend_failed">添加好友失败</string>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment