|
@@ -1,9 +1,14 @@
|
1
|
1
|
package fr.insa.clavardator.users;
|
2
|
2
|
|
|
3
|
+import fr.insa.clavardator.config.Config;
|
3
|
4
|
import fr.insa.clavardator.db.DatabaseController;
|
4
|
5
|
import fr.insa.clavardator.network.ConnectionListener;
|
5
|
6
|
import fr.insa.clavardator.network.NetDiscoverer;
|
6
|
7
|
import fr.insa.clavardator.network.PeerHandshake;
|
|
8
|
+import fr.insa.clavardator.server.Presence;
|
|
9
|
+import fr.insa.clavardator.server.PresenceFactory;
|
|
10
|
+import fr.insa.clavardator.server.PresenceType;
|
|
11
|
+import fr.insa.clavardator.server.UnknownPresenceException;
|
7
|
12
|
import fr.insa.clavardator.util.ErrorCallback;
|
8
|
13
|
import fr.insa.clavardator.util.Log;
|
9
|
14
|
import javafx.application.Platform;
|
|
@@ -24,6 +29,8 @@ public class UserList {
|
24
|
29
|
private final NetDiscoverer netDiscoverer = new NetDiscoverer();
|
25
|
30
|
private final ConnectionListener connectionListener = new ConnectionListener();
|
26
|
31
|
|
|
32
|
+ private Presence presenceServer;
|
|
33
|
+
|
27
|
34
|
public UserList() {
|
28
|
35
|
}
|
29
|
36
|
|
|
@@ -126,6 +133,30 @@ public class UserList {
|
126
|
133
|
}
|
127
|
134
|
|
128
|
135
|
/**
|
|
136
|
+ * Initializes the presence server based on user config
|
|
137
|
+ *
|
|
138
|
+ * @param config The user config
|
|
139
|
+ */
|
|
140
|
+ public void initPresenceServer(Config config) {
|
|
141
|
+ final Config.ServerConfig serverConfig = config.getServerConfig();
|
|
142
|
+ if (serverConfig.isEnabled()) {
|
|
143
|
+ try {
|
|
144
|
+ final PresenceType type = serverConfig.getType();
|
|
145
|
+ final String uri = serverConfig.getUri();
|
|
146
|
+ final int presencePort = serverConfig.getPresencePort();
|
|
147
|
+ final int proxyPort = serverConfig.getProxyPort();
|
|
148
|
+ presenceServer = PresenceFactory.create(type, uri, presencePort, proxyPort);
|
|
149
|
+ Log.v(getClass().getSimpleName(), "Presence server support enabled: " + type + "@" + uri + ':' + presencePort + " / proxy:" + proxyPort);
|
|
150
|
+ } catch (UnknownPresenceException e) {
|
|
151
|
+ Log.e(getClass().getSimpleName(), "Presence server type not found", e);
|
|
152
|
+ presenceServer = null;
|
|
153
|
+ }
|
|
154
|
+ } else {
|
|
155
|
+ Log.v(getClass().getSimpleName(), "Presence server support disabled.");
|
|
156
|
+ }
|
|
157
|
+ }
|
|
158
|
+
|
|
159
|
+ /**
|
129
|
160
|
* Closes all running threads, sockets and db connection.
|
130
|
161
|
* Must be called before exiting the app.
|
131
|
162
|
*/
|