Browse Source

Move presence init server to user list

Arnaud Vergnet 3 years ago
parent
commit
7a36ef2c60

+ 0
- 1
src/main/java/fr/insa/clavardator/server/Presence.java View File

@@ -2,7 +2,6 @@ package fr.insa.clavardator.server;
2 2
 
3 3
 import fr.insa.clavardator.network.PeerConnection;
4 4
 
5
-import java.net.InetAddress;
6 5
 import java.util.ArrayList;
7 6
 
8 7
 public interface Presence {

+ 8
- 32
src/main/java/fr/insa/clavardator/ui/MainController.java View File

@@ -249,38 +249,14 @@ public class MainController implements Initializable {
249 249
 	 * then init current user, and finally load user list.
250 250
 	 */
251 251
 	private void initBackend() {
252
-		ConfigLoader.load((Config config) -> {
253
-			initPresenceServer(config);
254
-			new DatabaseController().initTables(
255
-					() -> userList.retrievedPreviousUsers(
256
-							() -> currentUser.init(this::onInitError),
257
-							this::onInitError
258
-					), this::onInitError);
259
-		});
260
-	}
261
-
262
-	/**
263
-	 * Initializes the presence server based on user config
264
-	 *
265
-	 * @param config The user config
266
-	 */
267
-	private void initPresenceServer(Config config) {
268
-		final Config.ServerConfig serverConfig = config.getServerConfig();
269
-		if (serverConfig.isEnabled()) {
270
-			try {
271
-				final PresenceType type = serverConfig.getType();
272
-				final String uri = serverConfig.getUri();
273
-				final int presencePort = serverConfig.getPresencePort();
274
-				final int proxyPort = serverConfig.getProxyPort();
275
-				presenceServer = PresenceFactory.create(type, uri, presencePort, proxyPort);
276
-				Log.v("INIT", "Presence server support enabled: " + type + "@" + uri + ':' + presencePort + " / proxy:" + proxyPort);
277
-			} catch (UnknownPresenceException e) {
278
-				Log.e("INIT", "Presence server type not found", e);
279
-				presenceServer = null;
280
-			}
281
-		} else {
282
-			Log.v("INIT", "Presence server support disabled.");
283
-		}
252
+		ConfigLoader.load(
253
+				(Config config) -> new DatabaseController().initTables(
254
+				() -> userList.retrievedPreviousUsers(
255
+						() -> currentUser.init(
256
+								() ->  userList.initPresenceServer(config),
257
+								this::onInitError),
258
+						this::onInitError
259
+				), this::onInitError));
284 260
 	}
285 261
 
286 262
 	/**

+ 6
- 2
src/main/java/fr/insa/clavardator/users/CurrentUser.java View File

@@ -29,7 +29,7 @@ public class CurrentUser extends User {
29 29
 		return UUID.randomUUID().toString();
30 30
 	}
31 31
 
32
-	public void init(ErrorCallback errorCallback) {
32
+	public void init(InitCallback callback, ErrorCallback errorCallback) {
33 33
 		final DatabaseController db = new DatabaseController();
34 34
 		db.getCurrentUser((user) -> {
35 35
 			if (user == null) {
@@ -37,7 +37,10 @@ public class CurrentUser extends User {
37 37
 				Log.v(getClass().getSimpleName(), "No previous user found, generating id: " + id);
38 38
 				db.addCurrentUser(
39 39
 						new UserInformation(this),
40
-						() -> setState(State.NONE),
40
+						() -> {
41
+							setState(State.NONE);
42
+							callback.onFinish();
43
+						},
41 44
 						errorCallback);
42 45
 			} else {
43 46
 				id = user.id;
@@ -48,6 +51,7 @@ public class CurrentUser extends User {
48 51
 					Log.v(getClass().getSimpleName(), "No username found, asking user");
49 52
 					setState(State.NONE);
50 53
 				}
54
+				callback.onFinish();
51 55
 			}
52 56
 		}, errorCallback);
53 57
 	}

+ 31
- 0
src/main/java/fr/insa/clavardator/users/UserList.java View File

@@ -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
 	 */

Loading…
Cancel
Save