Skip to content

Commit 917a098

Browse files
committed
2.0.1
1 parent ceaf005 commit 917a098

File tree

11 files changed

+108
-16
lines changed

11 files changed

+108
-16
lines changed

conf/nbs.db

0 Bytes
Binary file not shown.

src/main/java/io/ipfs/nbs/helper/MessageViewHolderCacheHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public synchronized MessageRightTextViewHolder tryGetRightTextViewHolder(){
7272
MessageRightTextViewHolder holder =null;
7373
if(rightTextPosition <CACHE_CAPACITY && rightTextViewHolders.size()>0){
7474
holder = rightTextViewHolders.get(rightTextPosition);
75+
rightTextPosition++;
7576
}
7677
return holder;
7778
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void onBindViewHolder(ContactsItemViewHolder viewHolder, int position) {
106106

107107
ImageIcon icon = new ImageIcon();
108108
icon.setImage(AvatarUtil.createOrLoadUserAvatar(item.getName())
109-
.getScaledInstance(32, 32, Image.SCALE_SMOOTH));
109+
.getScaledInstance(40, 40, Image.SCALE_SMOOTH));
110110
viewHolder.avatar.setIcon(icon);
111111

112112
viewHolder.roomName.setText(item.getName());

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package io.nbs.client.adapter;
22

3+
import io.nbs.client.Launcher;
4+
import io.nbs.client.cnsts.AppGlobalCnst;
5+
import io.nbs.client.helper.AvatarImageHandler;
36
import io.nbs.client.ui.components.adapters.MessageMouseListener;
47
import io.nbs.client.ui.frames.MainFrame;
58
import io.nbs.client.ui.holders.ViewHolder;
@@ -70,8 +73,7 @@ public void onBindViewHolder(BaseMessageViewHolder viewHolder, int position) {
7073
if(viewHolder==null)return;
7174
final MessageItem item = messageItems.get(position);
7275
MessageItem prevItem = 0 == position ? null : messageItems.get(position-1);
73-
74-
76+
processTimeAndAvatar(item, prevItem, viewHolder);
7577
if(viewHolder instanceof MessageSystemMessageViewHolder){
7678
processSystemMessage(viewHolder,item);
7779
}
@@ -131,6 +133,9 @@ private void processLeftTextMessage(ViewHolder viewHolder, final MessageItem ite
131133
holder.text.setTag(item.getId());
132134

133135
holder.sender.setText(item.getSenderUsername());
136+
ImageIcon selfIcon = new ImageIcon(AppGlobalCnst.consturactPath(AvatarImageHandler.getAvatarProfileHome(),currentPeer.getAvatarName()));
137+
selfIcon.setImage(selfIcon.getImage().getScaledInstance(40,40,Image.SCALE_SMOOTH));
138+
holder.avatar.setIcon(selfIcon);
134139

135140
listView.setScrollHiddenOnMouseLeave(holder.messageBubble);
136141
listView.setScrollHiddenOnMouseLeave(holder.text);
@@ -208,16 +213,17 @@ private void processTimeAndAvatar(MessageItem item, MessageItem preItem, BaseMes
208213
}
209214

210215
if (holder.avatar != null) {
216+
211217
ImageIcon icon = new ImageIcon();
212218
Image image = AvatarUtil.createOrLoadUserAvatar(item.getSenderUsername()).getScaledInstance(40, 40, Image.SCALE_SMOOTH);
213219
icon.setImage(image);
214220
holder.avatar.setIcon(icon);
215221

216-
//如果是自己
217-
if (item.getMessageType() == MessageItem.LEFT_ATTACHMENT
222+
//如果不是自己
223+
if (item.getMessageType() == MessageItem.LEFT_TEXT
218224
|| item.getMessageType() == MessageItem.LEFT_IMAGE
219225
|| item.getMessageType() == MessageItem.LEFT_TEXT) {
220-
bindAvatarAction(holder.avatar, item.getSenderUsername());
226+
// bindAvatarAction(holder.avatar, item.getSenderUsername());
221227
}
222228

223229
}

src/main/java/io/nbs/client/ui/panels/im/ChatPanel.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import io.nbs.client.services.IpfsMessageSender;
77
import io.nbs.client.ui.frames.MainFrame;
88
import io.nbs.client.ui.panels.im.chatstmp.TMChatShowPanel;
9+
import io.nbs.commons.helper.DateHelper;
910
import io.nbs.commons.helper.RadomCharactersHelper;
11+
import io.nbs.commons.utils.UUIDGenerator;
1012
import io.nbs.sdk.beans.IMMessageBean;
1113
import io.nbs.sdk.beans.MessageItem;
1214
import io.ipfs.nbs.helper.MessageViewHolderCacheHelper;
@@ -236,6 +238,9 @@ private void sendMessage(){
236238
item.setMessageType(MessageItem.RIGHT_TEXT);
237239
item.setSenderUsername(current.getNick());
238240
item.setNeedToResend(false);
241+
item.setId(UUIDGenerator.getUUID());
242+
item.setSenderId(current.getId());
243+
item.setTimestamp(DateHelper.timestamp());
239244
addMessageItemToEnd(item);
240245
}
241246

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.nbs.client.ui.panels.im.messages;
22

3-
import UI.AppMainWindow;
43
import io.nbs.client.Launcher;
54
import io.nbs.client.ui.components.NBSIconButton;
65
import io.nbs.client.cnsts.FontUtil;
@@ -29,7 +28,7 @@ public class MessageRightTextViewHolder extends BaseMessageViewHolder {
2928
/**
3029
* TODO
3130
*/
32-
ImageIcon defaltIcon = new ImageIcon(Launcher.appBasePath +"avatars/default_avatar.png");
31+
public ImageIcon defaltIcon = new ImageIcon("/icons/nbs128.png");
3332
public NBSIconButton messageButton = new NBSIconButton(defaltIcon,defaltIcon,"");
3433
public JLabel resend = new JLabel(); // 重发按钮
3534
public JLabel sendingProgress = new JLabel(); // 正在发送
@@ -40,6 +39,7 @@ public class MessageRightTextViewHolder extends BaseMessageViewHolder {
4039
public IMRightImageMessageBubble messageBubble = new IMRightImageMessageBubble();
4140

4241
public MessageRightTextViewHolder(){
42+
defaltIcon.setImage(defaltIcon.getImage().getScaledInstance(30,30,Image.SCALE_SMOOTH));
4343
initComponents();
4444
initView();
4545
}
@@ -54,11 +54,7 @@ private void initComponents(){
5454

5555
time.setForeground(ColorCnst.FONT_GRAY);
5656
time.setFont(FontUtil.getDefaultFont(12));
57-
58-
ImageIcon resendIcon = new ImageIcon(AppMainWindow.class.getResource("/icon/zh_cn/resend.png"));
59-
60-
resendIcon.setImage(resendIcon.getImage().getScaledInstance(20,20,Image.SCALE_SMOOTH));
61-
resend.setIcon(resendIcon);
57+
// resend.setIcon(resendIcon);
6258
resend.setVisible(false);
6359
resend.setToolTipText("消息发送失败.");
6460
resend.setCursor(new Cursor(Cursor.HAND_CURSOR));
@@ -71,21 +67,25 @@ private void initView(){
7167

7268
timePanel.add(time);
7369

70+
avatar.setIcon(defaltIcon);
71+
avatar.setVisible(true);
72+
7473
messageBubble.add(text,BorderLayout.CENTER);
7574

7675
//JPanel res
7776
JPanel resendTextPanel = new JPanel();
7877
resendTextPanel.setBackground(ColorCnst.WINDOW_BACKGROUND);
79-
8078
resendTextPanel.add(resend, BorderLayout.WEST);
8179
resendTextPanel.add(sendingProgress, BorderLayout.WEST);
8280
resendTextPanel.add(messageBubble, BorderLayout.CENTER);
8381

8482
messageAvatarPanel.setLayout(new GridBagLayout());
83+
84+
//messageAvatarPanel.setBorder(MainFrame.redBorder);
8585
messageAvatarPanel.add(resendTextPanel,
8686
new GBC(1,0).setWeight(1000,1).setAnchor(GBC.EAST).setInsets(0,0,5,0));
8787
messageAvatarPanel.add(avatar,new GBC(2,0).setWeight(1,1).setAnchor(GBC.NORTH).setInsets(5,0,0,10));
88-
add(timePanel,BorderLayout.NORTH);
88+
add(timePanel,BorderLayout.NORTH);//
8989
add(messageAvatarPanel,BorderLayout.CENTER);
9090
}
9191

src/main/java/io/nbs/commons/helper/DateHelper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,10 @@ public static String currentTime(){
3636
public static int currentSecond(){
3737
return (int)(System.currentTimeMillis()/1000);
3838
}
39+
40+
/**
41+
*
42+
* @return
43+
*/
44+
public static long timestamp(){return System.currentTimeMillis();}
3945
}

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,14 @@ public class AvatarUtil {
5555
private static final int DEFAULT_AVATAR = 0;
5656
private static final int CUSTOM_AVATAR = 1;
5757

58+
/**
59+
* 头像缓存
60+
*/
5861
private static Map<String, Image> avatarCache = new HashMap<>();
5962

6063
static
6164
{
62-
AVATAR_CACHE_ROOT = AppGlobalCnst.consturactPath(Launcher.appBasePath,"avatars");
65+
AVATAR_CACHE_ROOT = AppGlobalCnst.consturactPath(Launcher.appBasePath,"cache","avatars");
6366

6467
File file = new File(AVATAR_CACHE_ROOT);
6568
if (!file.exists())
@@ -78,6 +81,13 @@ public class AvatarUtil {
7881
}
7982

8083

84+
/**
85+
* 分组头像
86+
* @param groupName
87+
* @param members
88+
* @param type
89+
* @return
90+
*/
8191
public static Image createOrLoadGroupAvatar(String groupName, String[] members, String type)
8292
{
8393
Image avatar;
@@ -118,6 +128,11 @@ public static Image createOrLoadGroupAvatar(String groupName, String[] members,
118128
return avatar;
119129
}
120130

131+
/**
132+
*
133+
* @param username
134+
* @return
135+
*/
121136
public static Image createOrLoadUserAvatar(String username)
122137
{
123138
Image avatar;
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package io.nbs.commons.utils;
2+
3+
import java.util.UUID;
4+
5+
/**
6+
* @Package : io.nbs.commons.utils
7+
* @Description : <p></p>
8+
* @Author : lambor.c
9+
* @Date : 2018/7/4-11:06
10+
* Copyright (c) 2018, NBS , lambor.c<[email protected]>.
11+
* All rights reserved.
12+
*/
13+
public class UUIDGenerator {
14+
/**
15+
* UUID 36 e393c8ab-8f25-40da-90cf-007b5650af48
16+
*/
17+
public static final String UUID_36 = "36";
18+
/**
19+
* UUID 32 LOWWER e393c8ab8f2540da90cf007b5650af48
20+
*/
21+
public static final String UUID_LOWEER = "32l";
22+
23+
private UUIDGenerator() {
24+
}
25+
26+
/**
27+
*
28+
* @Author :wdcai
29+
* @Comment :
30+
* @param type
31+
* :36 OR 32l
32+
* @return
33+
*/
34+
public static String getUUID(String type) {
35+
if (type.equalsIgnoreCase(UUID_36)) {
36+
return UUID.randomUUID().toString();
37+
} else if (type.equalsIgnoreCase(UUID_LOWEER)) {
38+
return UUID.randomUUID().toString().replaceAll("-", "")
39+
.toLowerCase();
40+
} else {
41+
return UUID.randomUUID().toString();
42+
}
43+
44+
}
45+
46+
/**
47+
* 32 UPPER :4B11CAA83B8741FC835C5440F68C2BEC
48+
*
49+
* @Author :wdcai
50+
* @Comment :
51+
* @return
52+
*/
53+
public static String getUUID() {
54+
return getUUID(UUID_36).replaceAll("-", "").toUpperCase();
55+
}
56+
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class MessageItem implements Comparable<MessageItem> {
2525
* uuid
2626
*/
2727
private String id;
28+
2829
/**
2930
*
3031
*/
@@ -61,6 +62,8 @@ public class MessageItem implements Comparable<MessageItem> {
6162

6263
private long updatedAt;
6364

65+
66+
6467
public MessageItem() {
6568
}
6669

0 commit comments

Comments
 (0)