mirror of
https://github.com/Relintai/mtg-forge-ios.git
synced 2025-02-23 12:34:19 +01:00
git-svn-id: http://svn.slightlymagic.net/forge/trunk@35700 269b9781-a132-4a9b-9d4e-f004f1b56b58
98 lines
2.9 KiB
Java
98 lines
2.9 KiB
Java
package forge.ios;
|
|
|
|
import com.badlogic.gdx.ApplicationListener;
|
|
import com.badlogic.gdx.Gdx;
|
|
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
|
|
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
|
|
import com.badlogic.gdx.backends.iosrobovm.IOSFiles;
|
|
import forge.Forge;
|
|
import forge.assets.AssetsDownloader;
|
|
import forge.interfaces.IDeviceAdapter;
|
|
import forge.util.FileUtil;
|
|
import org.robovm.apple.foundation.NSAutoreleasePool;
|
|
import org.robovm.apple.uikit.UIApplication;
|
|
import org.robovm.apple.uikit.UIPasteboard;
|
|
|
|
public class Main extends IOSApplication.Delegate {
|
|
|
|
@Override
|
|
protected IOSApplication createApplication() {
|
|
final String assetsDir = new IOSFiles().getLocalStoragePath() + "/../../forge.ios.Main.app/";
|
|
if (!AssetsDownloader.SHARE_DESKTOP_ASSETS) {
|
|
FileUtil.ensureDirectoryExists(assetsDir);
|
|
}
|
|
|
|
final IOSApplicationConfiguration config = new IOSApplicationConfiguration();
|
|
config.useAccelerometer = false;
|
|
config.useCompass = false;
|
|
final ApplicationListener app = Forge.getApp(new IOSClipboard(), new IOSAdapter(), assetsDir);
|
|
final IOSApplication iosApp = new IOSApplication(app, config);
|
|
return iosApp;
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
final NSAutoreleasePool pool = new NSAutoreleasePool();
|
|
UIApplication.main(args, null, Main.class);
|
|
pool.close();
|
|
}
|
|
|
|
//special clipboard that works on iOS
|
|
private static final class IOSClipboard implements com.badlogic.gdx.utils.Clipboard {
|
|
@Override
|
|
public String getContents() {
|
|
return UIPasteboard.getGeneralPasteboard().getString();
|
|
}
|
|
|
|
@Override
|
|
public void setContents(final String contents0) {
|
|
UIPasteboard.getGeneralPasteboard().setString(contents0);
|
|
}
|
|
}
|
|
|
|
private static final class IOSAdapter implements IDeviceAdapter {
|
|
@Override
|
|
public boolean isConnectedToInternet() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean isConnectedToWifi() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public String getDownloadsDir() {
|
|
return new IOSFiles().getExternalStoragePath();
|
|
}
|
|
|
|
@Override
|
|
public boolean openFile(final String filename) {
|
|
return new IOSFiles().local(filename).exists();
|
|
}
|
|
|
|
@Override
|
|
public void setLandscapeMode(final boolean landscapeMode) {
|
|
// TODO implement this
|
|
}
|
|
|
|
@Override
|
|
public void preventSystemSleep(boolean preventSleep) {
|
|
// TODO implement this
|
|
}
|
|
|
|
@Override
|
|
public boolean isTablet() {
|
|
return Gdx.graphics.getWidth() > Gdx.graphics.getHeight();
|
|
}
|
|
|
|
@Override
|
|
public void restart() {
|
|
// Not possible on iOS
|
|
}
|
|
|
|
@Override
|
|
public void exit() {
|
|
// Not possible on iOS
|
|
}
|
|
}
|
|
} |