Skip to content

Commit 69ef444

Browse files
committed
2.0.1
1 parent a49e243 commit 69ef444

File tree

6 files changed

+62
-8
lines changed

6 files changed

+62
-8
lines changed

conf/nbs.db

0 Bytes
Binary file not shown.

src/main/java/io/nbs/client/adapter/MessageAdapter.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616
import io.nbs.client.ui.components.NbsListView;
1717
import io.nbs.client.ui.holders.BaseMessageViewHolder;
1818
import io.nbs.sdk.beans.PeerInfo;
19+
import org.apache.commons.lang3.StringUtils;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
2122

2223
import javax.swing.*;
2324
import javax.swing.text.ViewFactory;
2425
import java.awt.*;
2526
import java.awt.event.MouseEvent;
27+
import java.io.IOException;
2628
import java.util.List;
2729

2830
/**
@@ -192,8 +194,7 @@ private void processSystemMessage(ViewHolder viewHolder, MessageItem item)
192194
* @param preItem
193195
* @param holder
194196
*/
195-
private void processTimeAndAvatar(MessageItem item, MessageItem preItem, BaseMessageViewHolder holder)
196-
{
197+
private void processTimeAndAvatar(MessageItem item, MessageItem preItem, BaseMessageViewHolder holder) {
197198
// 如果当前消息的时间与上条消息时间相差大于1分钟,则显示当前消息的时间
198199
if(preItem!=null){
199200
if (TimeUtil.inTheSameMinute(item.getTimestamp(), preItem.getTimestamp()))
@@ -213,10 +214,27 @@ private void processTimeAndAvatar(MessageItem item, MessageItem preItem, BaseMes
213214
}
214215

215216
if (holder.avatar != null) {
216-
217217
ImageIcon icon = new ImageIcon();
218-
Image image = AvatarUtil.createOrLoadUserAvatar(item.getSenderUsername()).getScaledInstance(40, 40, Image.SCALE_SMOOTH);
219-
icon.setImage(image);
218+
Image image = null;
219+
if(item.getMessageType()<0){
220+
PeerInfo currentPeer = MainFrame.getContext().getCurrentPeer();
221+
try {
222+
image = AvatarUtil.getPeerAvatar(currentPeer);
223+
AvatarUtil.updateCacheIamge(currentPeer.getAvatarName(),image);
224+
} catch (IOException e) {
225+
226+
}
227+
}
228+
if(image == null){
229+
boolean bflag = false;
230+
String identify = item.getSenderUsername();
231+
if(StringUtils.isNotBlank(item.getAvatar())){
232+
identify = item.getAvatar();
233+
bflag = true;
234+
}
235+
image = AvatarUtil.createOrLoadUserAvatar(identify,bflag,item.getSuffix());
236+
}
237+
icon.setImage( image.getScaledInstance(36,36,Image.SCALE_SMOOTH));
220238
holder.avatar.setIcon(icon);
221239

222240
//如果不是自己

src/main/java/io/nbs/client/helper/AvatarImageHandler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import io.nbs.client.Launcher;
44
import io.nbs.client.cnsts.AppGlobalCnst;
5+
import io.nbs.client.ui.frames.MainFrame;
56
import io.nbs.commons.utils.IconUtil;
7+
import io.nbs.sdk.beans.PeerInfo;
68
import org.apache.commons.lang3.StringUtils;
79
import org.slf4j.Logger;
810
import org.slf4j.LoggerFactory;
@@ -101,6 +103,9 @@ public ImageIcon getAvatar128(String hashFileName){
101103
return icon;
102104
}
103105

106+
107+
108+
104109
/**
105110
* 下载文件
106111
* @param url

src/main/java/io/nbs/client/ui/panels/im/messages/MessageRightTextViewHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class MessageRightTextViewHolder extends BaseMessageViewHolder {
3939
public IMRightImageMessageBubble messageBubble = new IMRightImageMessageBubble();
4040

4141
public MessageRightTextViewHolder(){
42-
defaltIcon.setImage(defaltIcon.getImage().getScaledInstance(30,30,Image.SCALE_SMOOTH));
42+
// defaltIcon.setImage(defaltIcon.getImage().getScaledInstance(30,30,Image.SCALE_SMOOTH));
4343
initComponents();
4444
initView();
4545
}

src/main/java/io/nbs/commons/utils/AvatarUtil.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import io.nbs.client.cnsts.ColorCnst;
77
import io.nbs.client.helper.AvatarImageHandler;
88
import io.nbs.commons.helper.ConfigurationHelper;
9+
import io.nbs.sdk.beans.PeerInfo;
10+
import org.apache.commons.lang3.StringUtils;
911
import org.slf4j.Logger;
1012
import org.slf4j.LoggerFactory;
1113

@@ -86,6 +88,9 @@ public class AvatarUtil {
8688
}
8789
}
8890

91+
public static void updateCacheIamge(String identify,Image image){
92+
if(StringUtils.isNotBlank(identify)&&image!=null)avatarCache.put(identify,image);
93+
}
8994

9095
/**
9196
* 分组头像
@@ -137,7 +142,7 @@ public static Image createOrLoadGroupAvatar(String groupName, String[] members,
137142
/**
138143
* 获取联系人头像,如果是hash则先从IPFS获取
139144
* @param identify
140-
* @param isHash
145+
* @param isHash 是否hash
141146
* @param suffix
142147
* @return
143148
*/
@@ -176,6 +181,24 @@ public static Image createOrLoadUserAvatar(String identify,boolean isHash,String
176181
return avatar;
177182
}
178183

184+
/**
185+
*
186+
* @param info
187+
* @return
188+
* @throws IOException
189+
*/
190+
public static Image getPeerAvatar(PeerInfo info) throws IOException {
191+
if(info==null||StringUtils.isBlank(info.getAvatarName())){
192+
return null;
193+
}
194+
if(avatarCache.containsKey(info.getAvatarName()))return avatarCache.get(info.getAvatarName());
195+
File infoFile = new File(AppGlobalCnst.consturactPath(AvatarImageHandler.getAvatarProfileHome(),info.getAvatarName()));
196+
if(infoFile.exists()&&infoFile.isFile()){
197+
return ImageIO.read(infoFile);
198+
}
199+
return null;
200+
}
201+
179202
/**
180203
*
181204
* @param username

src/main/java/io/nbs/sdk/beans/MessageItem.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class MessageItem implements Comparable<MessageItem> {
6666
*/
6767
private String avatar;
6868

69-
69+
private String suffix;
7070

7171
public MessageItem() {
7272
}
@@ -194,4 +194,12 @@ public String getAvatar() {
194194
public void setAvatar(String avatar) {
195195
this.avatar = avatar;
196196
}
197+
198+
public String getSuffix() {
199+
return suffix;
200+
}
201+
202+
public void setSuffix(String suffix) {
203+
this.suffix = suffix;
204+
}
197205
}

0 commit comments

Comments
 (0)