Skip to content

Commit 876d1bc

Browse files
committed
use player info instead of chat user to display player info
1 parent 2234cb5 commit 876d1bc

File tree

2 files changed

+19
-33
lines changed

2 files changed

+19
-33
lines changed

src/main/java/com/faforever/client/chat/PrivateChatTabController.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,27 @@
33
import com.faforever.client.avatar.AvatarService;
44
import com.faforever.client.domain.server.PlayerInfo;
55
import com.faforever.client.fx.JavaFxUtil;
6+
import com.faforever.client.player.PlayerService;
67
import com.faforever.client.player.PrivatePlayerInfoController;
78
import javafx.beans.value.ObservableValue;
89
import javafx.scene.Node;
910
import javafx.scene.control.ScrollPane;
1011
import javafx.scene.control.Tab;
1112
import javafx.scene.image.ImageView;
1213
import javafx.scene.layout.Region;
14+
import lombok.extern.slf4j.Slf4j;
1315
import org.springframework.beans.factory.annotation.Autowired;
1416
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
1517
import org.springframework.context.annotation.Scope;
1618
import org.springframework.stereotype.Component;
1719

20+
@Slf4j
1821
@Component
1922
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
2023
public class PrivateChatTabController extends AbstractChatTabController {
2124

2225
private final AvatarService avatarService;
26+
private final PlayerService playerService;
2327

2428
public Tab privateChatTabRoot;
2529
public ImageView avatarImageView;
@@ -29,9 +33,10 @@ public class PrivateChatTabController extends AbstractChatTabController {
2933
public ScrollPane gameDetailScrollPane;
3034

3135
@Autowired
32-
public PrivateChatTabController(ChatService chatService, AvatarService avatarService) {
36+
public PrivateChatTabController(ChatService chatService, AvatarService avatarService, PlayerService playerService) {
3337
super(chatService);
3438
this.avatarService = avatarService;
39+
this.playerService = playerService;
3540
}
3641

3742
@Override
@@ -46,14 +51,10 @@ protected void onInitialize() {
4651

4752
privateChatTabRoot.textProperty().bind(channelName.when(attached));
4853

49-
ObservableValue<ChatChannelUser> chatUser = chatChannel.flatMap(
50-
channel -> channelName.map(chanName -> channel.getUser(chanName).orElse(null)));
51-
privatePlayerInfoController.chatUserProperty().bind(chatUser.when(showing));
54+
ObservableValue<PlayerInfo> playerProperty = channelName.map(playerName -> playerService.getPlayerByNameIfOnline(playerName).orElse(null));
55+
privatePlayerInfoController.getPlayerProperty().bind(playerProperty.when(showing));
5256

53-
avatarImageView.imageProperty().bind(chatUser
54-
.flatMap(ChatChannelUser::playerProperty)
55-
.flatMap(PlayerInfo::avatarProperty)
56-
.map(avatarService::loadAvatar).when(showing));
57+
avatarImageView.imageProperty().bind(playerProperty.flatMap(PlayerInfo::avatarProperty).map(avatarService::loadAvatar).when(showing));
5758
}
5859

5960
@Override

src/main/java/com/faforever/client/player/PrivatePlayerInfoController.java

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.faforever.client.player;
22

33
import com.faforever.client.achievements.AchievementService;
4-
import com.faforever.client.chat.ChatChannelUser;
54
import com.faforever.client.domain.api.Leaderboard;
65
import com.faforever.client.domain.server.GameInfo;
76
import com.faforever.client.domain.server.PlayerInfo;
@@ -25,6 +24,7 @@
2524
import javafx.scene.control.Separator;
2625
import javafx.scene.image.ImageView;
2726
import javafx.scene.layout.Pane;
27+
import lombok.Getter;
2828
import lombok.RequiredArgsConstructor;
2929
import lombok.extern.slf4j.Slf4j;
3030
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -63,7 +63,8 @@ public class PrivatePlayerInfoController extends NodeController<Node> {
6363
public Label unlockedAchievementsLabel;
6464
public Separator separator;
6565

66-
private final ObjectProperty<ChatChannelUser> chatUser = new SimpleObjectProperty<>();
66+
@Getter
67+
private final ObjectProperty<PlayerInfo> playerProperty = new SimpleObjectProperty<>();
6768

6869
private final ChangeListener<PlayerInfo> playerChangeListener = (observable, oldValue, newValue) -> {
6970
if (newValue != null && !Objects.equals(oldValue, newValue)) {
@@ -85,8 +86,7 @@ protected void onInitialize() {
8586
gameDetailController.setPlaytimeVisible(true);
8687
gameDetailWrapper.setVisible(false);
8788

88-
ObservableValue<Boolean> playerExistsProperty = chatUser.flatMap(user -> user.playerProperty().isNotNull())
89-
.when(showing);
89+
ObservableValue<Boolean> playerExistsProperty = playerProperty.isNotNull().when(showing);
9090
userImageView.visibleProperty().bind(playerExistsProperty);
9191
country.visibleProperty().bind(playerExistsProperty);
9292
ratingsLabels.visibleProperty().bind(playerExistsProperty);
@@ -96,36 +96,21 @@ protected void onInitialize() {
9696
unlockedAchievements.visibleProperty().bind(playerExistsProperty);
9797
unlockedAchievementsLabel.visibleProperty().bind(playerExistsProperty);
9898

99-
ObservableValue<PlayerInfo> playerObservable = chatUser.flatMap(ChatChannelUser::playerProperty);
100-
10199
gamesPlayed.textProperty()
102-
.bind(playerObservable.flatMap(PlayerInfo::numberOfGamesProperty).map(i18n::number).when(showing));
100+
.bind(playerProperty.flatMap(PlayerInfo::numberOfGamesProperty).map(i18n::number).when(showing));
103101

104-
username.textProperty().bind(chatUser.map(ChatChannelUser::getUsername).when(showing));
102+
username.textProperty().bind(playerProperty.map(PlayerInfo::getUsername).when(showing));
105103
country.textProperty()
106-
.bind(
107-
playerObservable.flatMap(PlayerInfo::countryProperty).map(i18n::getCountryNameLocalized).when(showing));
104+
.bind(playerProperty.flatMap(PlayerInfo::countryProperty).map(i18n::getCountryNameLocalized).when(showing));
108105
userImageView.imageProperty()
109-
.bind(playerObservable.map(PlayerInfo::getId).map(IdenticonUtil::createIdenticon).when(showing));
110-
ObservableValue<GameInfo> gameObservable = playerObservable.flatMap(PlayerInfo::gameProperty);
106+
.bind(playerProperty.map(PlayerInfo::getId).map(IdenticonUtil::createIdenticon).when(showing));
107+
ObservableValue<GameInfo> gameObservable = playerProperty.flatMap(PlayerInfo::gameProperty);
111108
gameDetailController.gameProperty().bind(gameObservable.when(showing));
112109
gameDetailWrapper.visibleProperty().bind(gameObservable.flatMap(GameInfo::statusProperty)
113110
.map(status -> status == GameStatus.OPEN || status == GameStatus.PLAYING)
114111
.orElse(false)
115112
.when(showing));
116-
chatUser.flatMap(ChatChannelUser::playerProperty).addListener(playerChangeListener);
117-
}
118-
119-
public void setChatUser(ChatChannelUser chatUser) {
120-
this.chatUser.set(chatUser);
121-
}
122-
123-
public ChatChannelUser getChatUser() {
124-
return chatUser.get();
125-
}
126-
127-
public ObjectProperty<ChatChannelUser> chatUserProperty() {
128-
return chatUser;
113+
playerProperty.addListener(playerChangeListener);
129114
}
130115

131116
private void populateUnlockedAchievementsLabel(PlayerInfo player) {

0 commit comments

Comments
 (0)