Commit 44e13026 authored by jianglx's avatar jianglx

im 2019-12-24

parent 687f1048
...@@ -107,6 +107,10 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -107,6 +107,10 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
return new MsgBePassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_be_pass_item, viewGroup, false)); return new MsgBePassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_be_pass_item, viewGroup, false));
case 71: case 71:
return new MsgPassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_pass_item, viewGroup, false)); return new MsgPassHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_pass_item, viewGroup, false));
case 72:
return new MsgAddSuccessHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_pass_item, viewGroup, false));
case 73:
return new MsgBeFriendHolder(LayoutInflater.from(mContext).inflate(R.layout.chat_be_pass_item, viewGroup, false));
} }
return null; return null;
} }
...@@ -140,9 +144,13 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -140,9 +144,13 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} else if (viewHolder instanceof MsgToVideoCallHolder) { } else if (viewHolder instanceof MsgToVideoCallHolder) {
setToVideoCallContentView(bean, (MsgToVideoCallHolder) viewHolder); setToVideoCallContentView(bean, (MsgToVideoCallHolder) viewHolder);
} else if (viewHolder instanceof MsgBePassHolder) { } else if (viewHolder instanceof MsgBePassHolder) {
setBeFriendContentView(bean, (MsgBeFriendHolder) viewHolder); setBePassContentView(bean, (MsgBePassHolder) viewHolder) ;
} else if (viewHolder instanceof MsgPassHolder) { } else if (viewHolder instanceof MsgPassHolder) {
setPassContentView(bean, (MsgPassHolder) viewHolder) ;
} else if (viewHolder instanceof MsgBeFriendHolder) {
setBeFriendContentView(bean, (MsgBeFriendHolder) viewHolder);
} else if (viewHolder instanceof MsgAddSuccessHolder) {
setMsgAddSuccessContentView(bean, (MsgAddSuccessHolder) viewHolder);
} }
} }
} }
...@@ -206,12 +214,33 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -206,12 +214,33 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} }
} }
private void setBePassContentView(ChatMessage bean, MsgBeFriendHolder holder) { private void setBePassContentView(ChatMessage bean, MsgBePassHolder holder) {
showTime(holder.tvTime, bean); showTime(holder.tvSendTime, bean);
holder.chatText.setText("我通过了你的朋友验证请求,现在我们开始可以聊天了");
} }
private void setBeFriendContentView(ChatMessage bean, MsgBeFriendHolder holder) { private void setBeFriendContentView(ChatMessage bean, MsgBeFriendHolder holder) {
showTime(holder.tvTime, bean); showTime(holder.tvSendTime, bean);
holder.chatText.setText("我已添加你为好友,现在我们开始可以聊天了");
}
private void setMsgAddSuccessContentView(ChatMessage bean, MsgAddSuccessHolder holder) {
showTime(holder.tvSendTime, bean);
holder.chatText.setText("我已添加你为好友,现在我们开始可以聊天了");
if (!TextUtils.isEmpty(myHeaderUrl)) {
GlideManager.getInstance(mContext).loadImage(myHeaderUrl, holder.ivHeader);
}
}
private void setPassContentView(ChatMessage bean, MsgPassHolder holder) {
showTime(holder.tvSendTime, bean);
holder.chatText.setText("我通过了你的朋友验证请求,现在我们开始可以聊天了");
if (!TextUtils.isEmpty(myHeaderUrl)) {
GlideManager.getInstance(mContext).loadImage(myHeaderUrl, holder.ivHeader);
}
} }
private void setToTextContentView(ChatMessage bean, MsgToTextHolder holder) { private void setToTextContentView(ChatMessage bean, MsgToTextHolder holder) {
...@@ -524,22 +553,39 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -524,22 +553,39 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} }
} }
class MsgBeFriendHolder extends RecyclerView.ViewHolder {
TextView tvTime; 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);
}
}
public MsgBeFriendHolder(@NonNull View itemView) { class MsgPassHolder extends RecyclerView.ViewHolder {
TextView tvSendTime;
RoundImageView ivHeader;
TextView chatText;
public MsgPassHolder(@NonNull View itemView) {
super(itemView); super(itemView);
tvTime = itemView.findViewById(R.id.tv_time); tvSendTime = itemView.findViewById(R.id.tv_send_time);
ivHeader = itemView.findViewById(R.id.iv_header);
chatText = itemView.findViewById(R.id.chat_text);
} }
} }
class MsgBePassHolder extends RecyclerView.ViewHolder { class MsgAddSuccessHolder extends RecyclerView.ViewHolder {
TextView tvSendTime; TextView tvSendTime;
RoundImageView ivHeader; RoundImageView ivHeader;
TextView chatText; TextView chatText;
public MsgBePassHolder(@NonNull View itemView) { public MsgAddSuccessHolder(@NonNull View itemView) {
super(itemView); super(itemView);
tvSendTime = itemView.findViewById(R.id.tv_send_time); tvSendTime = itemView.findViewById(R.id.tv_send_time);
ivHeader = itemView.findViewById(R.id.iv_header); ivHeader = itemView.findViewById(R.id.iv_header);
...@@ -547,12 +593,13 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo ...@@ -547,12 +593,13 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
} }
} }
class MsgPassHolder extends RecyclerView.ViewHolder { class MsgBeFriendHolder extends RecyclerView.ViewHolder {
TextView tvSendTime; TextView tvSendTime;
RoundImageView ivHeader; RoundImageView ivHeader;
TextView chatText; TextView chatText;
public MsgPassHolder(@NonNull View itemView) { public MsgBeFriendHolder(@NonNull View itemView) {
super(itemView); super(itemView);
tvSendTime = itemView.findViewById(R.id.tv_send_time); tvSendTime = itemView.findViewById(R.id.tv_send_time);
ivHeader = itemView.findViewById(R.id.iv_header); ivHeader = itemView.findViewById(R.id.iv_header);
......
...@@ -81,8 +81,9 @@ public class FriendDao { ...@@ -81,8 +81,9 @@ public class FriendDao {
return; return;
} }
Log.d(TAG, friend.toString()); Log.d(TAG, friend.toString());
if (isExit(friend)) { Friend oldFriend = null;
updateFriend(friend); if ((oldFriend = isExit(friend)) != null) {
updateFriend(friend, oldFriend);
return; return;
} }
try { try {
...@@ -124,20 +125,35 @@ public class FriendDao { ...@@ -124,20 +125,35 @@ public class FriendDao {
* 更新消息 * 更新消息
* @param friend * @param friend
*/ */
public void updateFriend(Friend friend) { public int updateFriend(Friend friend, Friend old) {
if (dao == null) { if (dao == null) {
LogUtil.e(TAG, "dao is null"); LogUtil.e(TAG, "dao is null");
return; return -1;
} }
if (friend == null) { if (friend == null) {
LogUtil.e(TAG, "friend is null"); LogUtil.e(TAG, "friend is null");
return; return -1;
}
if (old == null) {
LogUtil.e(TAG, "old is null");
return -1;
} }
update(friend, old);
int result = 0 ;
try { try {
dao.update(friend); result = dao.update(old);
// dao.update(friend);
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
return result ;
}
private void update(Friend f1, Friend f2) {
f2.setStatus(f1.getStatus());
f2.setTimeCreate(f1.getTimeCreate());
f2.setAction(f1.getAction());
f2.setRead(f1.isRead());
} }
/******* /*******
...@@ -145,21 +161,21 @@ public class FriendDao { ...@@ -145,21 +161,21 @@ public class FriendDao {
* @param friend * @param friend
* @return * @return
*/ */
public boolean isExit(Friend friend) { public Friend isExit(Friend friend) {
if (dao == null) { if (dao == null) {
LogUtil.e(TAG, "dao is null"); LogUtil.e(TAG, "dao is null");
return false; return null;
} }
if (friend == null) { if (friend == null) {
LogUtil.e(TAG, "friend is null"); LogUtil.e(TAG, "friend is null");
return false; return null;
} }
try { try {
List<Friend> lists = dao.queryForEq("userId", friend.getUserId()); List<Friend> lists = dao.queryForEq("userId", friend.getUserId());
return lists == null ? false : lists.size() == 0 ? false : true; return lists == null ? null : lists.size() == 0 ? null : lists.get(0);
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
return false; return null;
} }
} }
...@@ -128,7 +128,19 @@ public class NewFriendActivity extends BaseStatusActivity<NewFriendPresenter> im ...@@ -128,7 +128,19 @@ public class NewFriendActivity extends BaseStatusActivity<NewFriendPresenter> im
@Override @Override
public void agree(Friend item) { public void agree(Friend item) {
agreeFriend = item; agreeFriend = item;
mPresenter.doAgreeOrAttention(agreeFriend); mPresenter.doAgreeOrAttention(agreeFriend,attentionListener);
} }
}; };
private NewFriendPresenter.AttentionListener attentionListener = new NewFriendPresenter.AttentionListener() {
@Override
public void success() {
getAddRecord();
}
@Override
public void failed() {
}
} ;
} }
...@@ -16,6 +16,7 @@ import com.rv.im.AppConfig; ...@@ -16,6 +16,7 @@ import com.rv.im.AppConfig;
import com.rv.im.Constants; import com.rv.im.Constants;
import com.rv.im.ImSetting; import com.rv.im.ImSetting;
import com.rv.im.bean.ImBaseBean; import com.rv.im.bean.ImBaseBean;
import com.rv.im.db.service.ChatMessageServiceImp;
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;
import com.rv.im.db.table.Friend; import com.rv.im.db.table.Friend;
...@@ -66,7 +67,7 @@ public class NewFriendPresenter extends CommonPresenter { ...@@ -66,7 +67,7 @@ public class NewFriendPresenter extends CommonPresenter {
/** /**
* 同意别人的加好友 * 同意别人的加好友
*/ */
public void doAgreeOrAttention(final Friend item) { public void doAgreeOrAttention(final Friend item, AttentionListener listener) {
AppConfig appConfig = (AppConfig) RvCache.getInstance().get(CacheEnum.IM_CONFIG); AppConfig appConfig = (AppConfig) RvCache.getInstance().get(CacheEnum.IM_CONFIG);
if (appConfig == null) return; if (appConfig == null) return;
StringBuffer buffer = new StringBuffer(); StringBuffer buffer = new StringBuffer();
...@@ -87,15 +88,18 @@ public class NewFriendPresenter extends CommonPresenter { ...@@ -87,15 +88,18 @@ public class NewFriendPresenter extends CommonPresenter {
ImBaseBean bean = new Gson().fromJson(data, ImBaseBean.class); ImBaseBean bean = new Gson().fromJson(data, ImBaseBean.class);
if (bean != null && bean.resultCode == 1) { if (bean != null && bean.resultCode == 1) {
((BaseStatusActivity) getPresenterContext()).showToast("已同意"); ((BaseStatusActivity) getPresenterContext()).showToast("已同意");
doAgree(item.getUserName(), item.getUserId()); ChatMessage chatMessage = doAgree(item.getUserName(), item.getUserId());
ChatMessageServiceImp.getInstance(ImSetting.getContext()).addMessage(chatMessage);
item.setStatus(Friend.STATUS_12); item.setStatus(Friend.STATUS_12);
FriendServiceImp.getInstance(getPresenterContext()).addMessage(item); FriendServiceImp.getInstance(getPresenterContext()).addMessage(item);
listener.success();
} else if (bean != null) { } else if (bean != null) {
((BaseStatusActivity) getPresenterContext()).showToast(bean.resultMsg); ((BaseStatusActivity) getPresenterContext()).showToast(bean.resultMsg);
if(bean.resultCode == 100512){ if (bean.resultCode == 100512) {
item.setStatus(2); item.setStatus(2);
FriendServiceImp.getInstance(getPresenterContext()).addMessage(item); FriendServiceImp.getInstance(getPresenterContext()).addMessage(item);
} }
listener.failed();
} }
} }
} }
...@@ -106,4 +110,11 @@ public class NewFriendPresenter extends CommonPresenter { ...@@ -106,4 +110,11 @@ public class NewFriendPresenter extends CommonPresenter {
} }
}); });
} }
public interface AttentionListener {
void success();
void failed();
}
} }
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/dp10" android:layout_marginLeft="@dimen/dp10"
android:background="@drawable/shape_from_chat_msg"
android:layout_marginTop="@dimen/chat_head_top" android:layout_marginTop="@dimen/chat_head_top"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/dp5" android:layout_marginLeft="@dimen/dp5"
android:layout_marginTop="@dimen/chat_head_top" android:layout_marginTop="@dimen/chat_head_top"
android:background="@drawable/shape_to_chat_msg"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
......
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