ServerConnectedMessage.addListener(appClient, this, (e) -> { Optional<ServerConnectionState> op = getAppStateFor(e.getServerConfig()); if (!op.isPresent()) { return; state.userOffline = false; if (e.isLoggedIn()) { state.needsLogin = false; state.badLogin = false; state.pendingActionsRequireResend = false; for (ClientConfig clientConfig : clientConfigs.values()) { if (clientConfig.isIn(e.getServerConfig())) { sendCachedPendingRequests(clientConfig);
if (e.isLoggedIn()) { forgetLoginProblem(e.getServerConfig());
@NotNull @Override protected ActionAnswer<LoginResult> login(ServerConfig config, LoginAction action) { ServerConnectionState state = getProjectStateFor(config); // Login has special state checking, because all it cares about is online vs. offline, not login // status. if (state.badLogin && !state.userOffline && !state.badConnection) { return server.perform(config, action) .whenCompleted((resp) -> { // Login was good. ServerConnectedMessage.send().serverConnected( new ServerConnectedMessage.ServerConnectedEvent(config, true)); state.needsLogin = false; state.badConnection = false; }); } return new OfflineActionAnswerImpl<>(); }
@Override public void serverConnected(@NotNull ServerConnectedMessage.ServerConnectedEvent e) { // This can be spammy. //simpleInfo("Connected to " + serverConfig.getServerName() + // (loggedIn ? " and logged in." : ", but not logged in."), // "Perforce Server Connected"); if (LOG.isDebugEnabled()) { LOG.debug("Connected to " + e.getServerConfig().getServerName() + ". Logged in? " + e.isLoggedIn()); } } });
@Override protected void onServerConnected(@NotNull ServerConnectedMessage.ServerConnectedEvent e) { // Note: does not check disposed state. getServersFor(e.getServerConfig().getServerName()).forEach((state) -> { state.setServerHostProblem(false); // If the connectivity and login all lines up, then the login works. if (e.isLoggedIn() && e.getServerConfig().getServerId().equals(state.getServerConfig().getServerId())) { state.setServerLoginProblem(false); } }); }
public void goOnline(ClientConfigRoot root) { ClientConfigAddedMessage.sendClientConfigurationAdded(idea.getMockProject(), root.getClientRootDir(), root.getClientConfig()); ServerConnectedMessage.send().serverConnected(new ServerConnectedMessage.ServerConnectedEvent(root.getServerConfig(), true)); }