mirror of
https://github.com/Relintai/mtg-forge-ios.git
synced 2025-02-23 12:34:19 +01:00
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
|
||
|
}
|
||
|
}
|
||
|
}
|