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/ICheckBox.java -text
forge-gui/src/main/java/forge/interfaces/IComboBox.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/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/IProgressBar.java -text
forge-gui/src/main/java/forge/interfaces/ITextField.java -text forge-gui/src/main/java/forge/interfaces/ITextField.java -text
forge-gui/src/main/java/forge/interfaces/IWinLoseView.java -text forge-gui/src/main/java/forge/interfaces/IWinLoseView.java -text

View File

@@ -9,7 +9,8 @@
android:targetSdkVersion="19" /> android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application <application
android:allowBackup="true" android:allowBackup="true"

View File

@@ -2,7 +2,10 @@ package forge.app;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
@@ -11,6 +14,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplication;
import forge.Forge; import forge.Forge;
import forge.interfaces.INetworkConnection;
import forge.util.FileUtil; import forge.util.FileUtil;
public class Main extends AndroidApplication { public class Main extends AndroidApplication {
@@ -37,7 +41,8 @@ public class Main extends AndroidApplication {
return; return;
} }
initialize(Forge.getApp(new AndroidClipboard(), assetsDir, new Runnable() { initialize(Forge.getApp(new AndroidClipboard(), new AndroidNetworkConnection(),
assetsDir, new Runnable() {
@Override @Override
public void run() { public void run() {
//ensure process doesn't stick around after exiting //ensure process doesn't stick around after exiting
@@ -68,4 +73,20 @@ public class Main extends AndroidApplication {
cm.setPrimaryClip(ClipData.newPlainText("Forge", contents0)); 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 com.badlogic.gdx.backends.lwjgl.LwjglClipboard;
import forge.Forge; import forge.Forge;
import forge.interfaces.INetworkConnection;
import forge.util.Utils; import forge.util.Utils;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
new LwjglApplication(Forge.getApp(new LwjglClipboard(), "../forge-gui/", null), new LwjglApplication(Forge.getApp(new LwjglClipboard(), new DesktopNetworkConnection(),
"Forge", Utils.DEV_SCREEN_WIDTH, Utils.DEV_SCREEN_HEIGHT); "../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.assets.ImageCache;
import forge.error.BugReporter; import forge.error.BugReporter;
import forge.error.ExceptionHandler; import forge.error.ExceptionHandler;
import forge.interfaces.INetworkConnection;
import forge.model.FModel; import forge.model.FModel;
import forge.properties.ForgeConstants; import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
@@ -40,6 +41,7 @@ public class Forge implements ApplicationListener {
private static final ApplicationListener app = new Forge(); private static final ApplicationListener app = new Forge();
private static Clipboard clipboard; private static Clipboard clipboard;
private static INetworkConnection networkConnection;
private static Runnable onExit; private static Runnable onExit;
private static int screenWidth; private static int screenWidth;
private static int screenHeight; private static int screenHeight;
@@ -50,9 +52,10 @@ public class Forge implements ApplicationListener {
private static final SoundSystem soundSystem = new SoundSystem(); private static final SoundSystem soundSystem = new SoundSystem();
private static final Stack<FScreen> screens = new Stack<FScreen>(); 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) { if (GuiBase.getInterface() == null) {
clipboard = clipboard0; clipboard = clipboard0;
networkConnection = networkConnection0;
onExit = onExit0; onExit = onExit0;
GuiBase.setInterface(new GuiMobile(assetDir0)); GuiBase.setInterface(new GuiMobile(assetDir0));
} }
@@ -121,6 +124,10 @@ public class Forge implements ApplicationListener {
return clipboard; return clipboard;
} }
public static INetworkConnection getNetworkConnection() {
return networkConnection;
}
public static void showMenu() { public static void showMenu() {
if (currentScreen == null) { return; } if (currentScreen == null) { return; }
endKeyInput(); //end key input before menu shown endKeyInput(); //end key input before menu shown

View File

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