Add support for testing network connection

This commit is contained in:
drdev
2014-08-23 01:45:24 +00:00
parent afff639130
commit bef9d66ffe
6 changed files with 55 additions and 5 deletions

1
.gitattributes vendored
View File

@@ -16674,6 +16674,7 @@ forge-gui/src/main/java/forge/interfaces/IButton.java -text
forge-gui/src/main/java/forge/interfaces/ICheckBox.java -text
forge-gui/src/main/java/forge/interfaces/IComboBox.java -text
forge-gui/src/main/java/forge/interfaces/IGuiBase.java -text
forge-gui/src/main/java/forge/interfaces/INetworkConnection.java -text
forge-gui/src/main/java/forge/interfaces/IProgressBar.java -text
forge-gui/src/main/java/forge/interfaces/ITextField.java -text
forge-gui/src/main/java/forge/interfaces/IWinLoseView.java -text

View File

@@ -10,6 +10,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"

View File

@@ -2,7 +2,10 @@ package forge.app;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
@@ -11,6 +14,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import forge.Forge;
import forge.interfaces.INetworkConnection;
import forge.util.FileUtil;
public class Main extends AndroidApplication {
@@ -37,7 +41,8 @@ public class Main extends AndroidApplication {
return;
}
initialize(Forge.getApp(new AndroidClipboard(), assetsDir, new Runnable() {
initialize(Forge.getApp(new AndroidClipboard(), new AndroidNetworkConnection(),
assetsDir, new Runnable() {
@Override
public void run() {
//ensure process doesn't stick around after exiting
@@ -68,4 +73,20 @@ public class Main extends AndroidApplication {
cm.setPrimaryClip(ClipData.newPlainText("Forge", contents0));
}
}
private class AndroidNetworkConnection implements INetworkConnection {
private final ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
@Override
public boolean isConnected() {
NetworkInfo activeNetworkInfo = connManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
@Override
public boolean isConnectedToWifi() {
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return wifi.isConnected();
}
}
}

View File

@@ -4,11 +4,25 @@ import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglClipboard;
import forge.Forge;
import forge.interfaces.INetworkConnection;
import forge.util.Utils;
public class Main {
public static void main(String[] args) {
new LwjglApplication(Forge.getApp(new LwjglClipboard(), "../forge-gui/", null),
"Forge", Utils.DEV_SCREEN_WIDTH, Utils.DEV_SCREEN_HEIGHT);
new LwjglApplication(Forge.getApp(new LwjglClipboard(), new DesktopNetworkConnection(),
"../forge-gui/", null), "Forge", Utils.DEV_SCREEN_WIDTH, Utils.DEV_SCREEN_HEIGHT);
}
private static class DesktopNetworkConnection implements INetworkConnection {
//just assume desktop always connected to wifi
@Override
public boolean isConnected() {
return true;
}
@Override
public boolean isConnectedToWifi() {
return true;
}
}
}

View File

@@ -16,6 +16,7 @@ import forge.assets.FSkinFont;
import forge.assets.ImageCache;
import forge.error.BugReporter;
import forge.error.ExceptionHandler;
import forge.interfaces.INetworkConnection;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences;
@@ -40,6 +41,7 @@ public class Forge implements ApplicationListener {
private static final ApplicationListener app = new Forge();
private static Clipboard clipboard;
private static INetworkConnection networkConnection;
private static Runnable onExit;
private static int screenWidth;
private static int screenHeight;
@@ -50,9 +52,10 @@ public class Forge implements ApplicationListener {
private static final SoundSystem soundSystem = new SoundSystem();
private static final Stack<FScreen> screens = new Stack<FScreen>();
public static ApplicationListener getApp(Clipboard clipboard0, String assetDir0, Runnable onExit0) {
public static ApplicationListener getApp(Clipboard clipboard0, INetworkConnection networkConnection0, String assetDir0, Runnable onExit0) {
if (GuiBase.getInterface() == null) {
clipboard = clipboard0;
networkConnection = networkConnection0;
onExit = onExit0;
GuiBase.setInterface(new GuiMobile(assetDir0));
}
@@ -121,6 +124,10 @@ public class Forge implements ApplicationListener {
return clipboard;
}
public static INetworkConnection getNetworkConnection() {
return networkConnection;
}
public static void showMenu() {
if (currentScreen == null) { return; }
endKeyInput(); //end key input before menu shown

View File

@@ -0,0 +1,6 @@
package forge.interfaces;
public interface INetworkConnection {
boolean isConnected();
boolean isConnectedToWifi();
}