mirror of
https://github.com/magefree/mage.git
synced 2025-12-28 06:22:01 -08:00
* UI: fixed wrong server reconnect on multiple apps runs (#5495);
This commit is contained in:
parent
978f35a6ca
commit
f81142459d
5 changed files with 43 additions and 15 deletions
|
|
@ -246,8 +246,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
||||||
SessionHandler.startSession(this);
|
SessionHandler.startSession(this);
|
||||||
callbackClient = new CallbackClientImpl(this);
|
callbackClient = new CallbackClientImpl(this);
|
||||||
connectDialog = new ConnectDialog();
|
connectDialog = new ConnectDialog();
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
whatsNewDialog = new WhatsNewDialog();
|
whatsNewDialog = new WhatsNewDialog();
|
||||||
} catch (NoClassDefFoundError e) {
|
} catch (NoClassDefFoundError e) {
|
||||||
// JavaFX is not supported on old MacOS with OpenJDK
|
// JavaFX is not supported on old MacOS with OpenJDK
|
||||||
|
|
@ -760,10 +759,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
||||||
|
|
||||||
private boolean performConnect(boolean reconnect) {
|
private boolean performConnect(boolean reconnect) {
|
||||||
if (currentConnection == null || !reconnect) {
|
if (currentConnection == null || !reconnect) {
|
||||||
String server = MagePreferences.getServerAddress();
|
String server = MagePreferences.getLastServerAddress();
|
||||||
int port = MagePreferences.getServerPort();
|
int port = MagePreferences.getLastServerPort();
|
||||||
String userName = MagePreferences.getUserName(server);
|
String userName = MagePreferences.getLastServerUser();
|
||||||
String password = MagePreferences.getPassword(server);
|
String password = MagePreferences.getLastServerPassword();
|
||||||
String proxyServer = PREFS.get("proxyAddress", "");
|
String proxyServer = PREFS.get("proxyAddress", "");
|
||||||
int proxyPort = Integer.parseInt(PREFS.get("proxyPort", "0"));
|
int proxyPort = Integer.parseInt(PREFS.get("proxyPort", "0"));
|
||||||
ProxyType proxyType = ProxyType.valueByText(PREFS.get("proxyType", "None"));
|
ProxyType proxyType = ProxyType.valueByText(PREFS.get("proxyType", "None"));
|
||||||
|
|
@ -1423,7 +1422,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
||||||
hideTables();
|
hideTables();
|
||||||
SessionHandler.disconnect(false);
|
SessionHandler.disconnect(false);
|
||||||
if (askToReconnect) {
|
if (askToReconnect) {
|
||||||
UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect?");
|
UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect to " + MagePreferences.getLastServerAddress() + "?");
|
||||||
message.setButton1("No", null);
|
message.setButton1("No", null);
|
||||||
message.setButton2("Yes", PlayerAction.CLIENT_RECONNECT);
|
message.setButton2("Yes", PlayerAction.CLIENT_RECONNECT);
|
||||||
showUserRequestDialog(message);
|
showUserRequestDialog(message);
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,9 @@ public class ConnectDialog extends MageDialog {
|
||||||
MagePreferences.setUserName(serverAddress, txtUserName.getText().trim());
|
MagePreferences.setUserName(serverAddress, txtUserName.getText().trim());
|
||||||
MagePreferences.setPassword(serverAddress, String.valueOf(txtPassword.getPassword()).trim());
|
MagePreferences.setPassword(serverAddress, String.valueOf(txtPassword.getPassword()).trim());
|
||||||
MageFrame.getPreferences().put(KEY_CONNECT_AUTO_CONNECT, Boolean.toString(chkAutoConnect.isSelected()));
|
MageFrame.getPreferences().put(KEY_CONNECT_AUTO_CONNECT, Boolean.toString(chkAutoConnect.isSelected()));
|
||||||
|
|
||||||
|
// last settings for reconnect
|
||||||
|
MagePreferences.saveLastServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package mage.client.preference;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import mage.client.MageFrame;
|
import mage.client.MageFrame;
|
||||||
|
import mage.client.util.Config;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.prefs.BackingStoreException;
|
import java.util.prefs.BackingStoreException;
|
||||||
|
|
@ -16,9 +17,13 @@ public final class MagePreferences {
|
||||||
private static final String KEY_PASSWORD = "password";
|
private static final String KEY_PASSWORD = "password";
|
||||||
private static final String KEY_EMAIL = "email";
|
private static final String KEY_EMAIL = "email";
|
||||||
private static final String KEY_AUTO_CONNECT = "autoConnect";
|
private static final String KEY_AUTO_CONNECT = "autoConnect";
|
||||||
|
|
||||||
private static final String NODE_KEY_IGNORE_LIST = "ignoreListString";
|
private static final String NODE_KEY_IGNORE_LIST = "ignoreListString";
|
||||||
|
|
||||||
|
private static String lastServerAddress = "";
|
||||||
|
private static int lastServerPort = 0;
|
||||||
|
private static String lastServerUser = "";
|
||||||
|
private static String lastServerPassword = "";
|
||||||
|
|
||||||
private static Preferences prefs() {
|
private static Preferences prefs() {
|
||||||
// TODO: Move MageFrame.prefs to this class.
|
// TODO: Move MageFrame.prefs to this class.
|
||||||
return MageFrame.getPreferences();
|
return MageFrame.getPreferences();
|
||||||
|
|
@ -138,4 +143,26 @@ public final class MagePreferences {
|
||||||
return prefs().node(NODE_KEY_IGNORE_LIST).node(serverAddress);
|
return prefs().node(NODE_KEY_IGNORE_LIST).node(serverAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void saveLastServer() {
|
||||||
|
lastServerAddress = getServerAddressWithDefault(Config.serverName);
|
||||||
|
lastServerPort = getServerPortWithDefault(Config.port);
|
||||||
|
lastServerUser = getUserName(lastServerAddress);
|
||||||
|
lastServerPassword = getPassword(lastServerAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getLastServerAddress() {
|
||||||
|
return lastServerAddress.isEmpty() ? getServerAddress() : lastServerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getLastServerPort() {
|
||||||
|
return lastServerPort == 0 ? getServerPort() : lastServerPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getLastServerUser() {
|
||||||
|
return lastServerUser.isEmpty() ? getUserName(getLastServerAddress()) : lastServerUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getLastServerPassword() {
|
||||||
|
return lastServerPassword.isEmpty() ? getPassword(getLastServerAddress()) : lastServerPassword;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
|
|
||||||
package mage.interfaces;
|
package mage.interfaces;
|
||||||
|
|
||||||
import mage.interfaces.callback.CallbackClient;
|
import mage.interfaces.callback.CallbackClient;
|
||||||
import mage.utils.MageVersion;
|
import mage.utils.MageVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
public interface MageClient extends CallbackClient {
|
public interface MageClient extends CallbackClient {
|
||||||
|
|
@ -14,7 +12,7 @@ public interface MageClient extends CallbackClient {
|
||||||
|
|
||||||
void connected(String message);
|
void connected(String message);
|
||||||
|
|
||||||
void disconnected(boolean errorCall);
|
void disconnected(boolean askToReconnect);
|
||||||
|
|
||||||
void showMessage(String message);
|
void showMessage(String message);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package org.mage.test.load;
|
package org.mage.test.load;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.interfaces.MageClient;
|
import mage.interfaces.MageClient;
|
||||||
import mage.interfaces.callback.ClientCallback;
|
import mage.interfaces.callback.ClientCallback;
|
||||||
import mage.remote.Session;
|
import mage.remote.Session;
|
||||||
|
|
@ -8,6 +7,8 @@ import mage.utils.MageVersion;
|
||||||
import mage.view.GameView;
|
import mage.view.GameView;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For tests only
|
* For tests only
|
||||||
*
|
*
|
||||||
|
|
@ -38,7 +39,7 @@ public class SimpleMageClient implements MageClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnected(boolean errorCall) {
|
public void disconnected(boolean askToReconnect) {
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,11 +63,11 @@ public class SimpleMageClient implements MageClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSession(Session session) {
|
public void setSession(Session session) {
|
||||||
((LoadCallbackClient) callbackClient).setSession(session);
|
callbackClient.setSession(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGameOver() {
|
public boolean isGameOver() {
|
||||||
return ((LoadCallbackClient) callbackClient).isGameOver();
|
return callbackClient.isGameOver();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConcede(boolean needToConcede) {
|
public void setConcede(boolean needToConcede) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue