From da54db1fca19ba464979f6c2ef69d8d11e33b6d3 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 16 Jan 2021 10:00:27 +0800 Subject: [PATCH] LibGDX Update -Update to 1.9.13 -Add additional info on Forge.log --- forge-gui-android/pom.xml | 2 +- forge-gui-android/src/forge/app/Main.java | 43 +++++++++++++++++-- forge-gui-ios/pom.xml | 2 +- forge-gui-ios/src/forge/ios/Main.java | 7 ++- forge-gui-mobile-dev/pom.xml | 6 +-- forge-gui-mobile-dev/src/forge/app/Main.java | 2 +- forge-gui-mobile/pom.xml | 4 +- forge-gui-mobile/src/forge/Forge.java | 13 +++--- .../src/forge/assets/AssetsDownloader.java | 3 +- .../src/forge/toolbox/FGestureAdapter.java | 1 + forge-gui/src/main/java/forge/GuiBase.java | 8 ++++ .../src/main/java/forge/model/FModel.java | 8 ++++ 12 files changed, 78 insertions(+), 21 deletions(-) diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index f581ef4fd60..b90e075ae91 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -102,7 +102,7 @@ com.badlogicgames.gdx gdx-backend-android - 1.9.10 + 1.9.13 diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java index 0ef2368a6a6..295d4e72c22 100644 --- a/forge-gui-android/src/forge/app/Main.java +++ b/forge-gui-android/src/forge/app/Main.java @@ -68,7 +68,7 @@ public class Main extends AndroidApplication { boolean permissiongranted = checkPermission(); Gadapter = new AndroidAdapter(this.getContext()); - initForge(Gadapter, permissiongranted, totalMemory, isTabletDevice(this.getContext()), android.os.Build.VERSION.SDK_INT); + initForge(Gadapter, permissiongranted, totalMemory, isTabletDevice(this.getContext()), Build.VERSION.SDK_INT, Build.VERSION.RELEASE); //permission if(!permissiongranted){ @@ -207,7 +207,7 @@ public class Main extends AndroidApplication { builder.show(); } - private void initForge(AndroidAdapter adapter, boolean permissiongranted, int totalRAM, boolean isTabletDevice, int AndroidVersion){ + private void initForge(AndroidAdapter adapter, boolean permissiongranted, int totalRAM, boolean isTabletDevice, int AndroidAPI, String AndroidRelease){ boolean isPortrait; if (permissiongranted){ //establish assets directory @@ -247,12 +247,12 @@ public class Main extends AndroidApplication { Main.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } - initialize(Forge.getApp(new AndroidClipboard(), adapter, assetsDir, propertyConfig, isPortrait, totalRAM, isTabletDevice, AndroidVersion)); + initialize(Forge.getApp(new AndroidClipboard(), adapter, assetsDir, propertyConfig, isPortrait, totalRAM, isTabletDevice, AndroidAPI, AndroidRelease, getDeviceName())); } else { isPortrait = true; //set current orientation Main.this.setRequestedOrientation(Main.this.getResources().getConfiguration().orientation); - initialize(Forge.getApp(new AndroidClipboard(), adapter, "", false, isPortrait, totalRAM, isTabletDevice, AndroidVersion)); + initialize(Forge.getApp(new AndroidClipboard(), adapter, "", false, isPortrait, totalRAM, isTabletDevice, AndroidAPI, AndroidRelease, getDeviceName())); } } @@ -291,6 +291,19 @@ public class Main extends AndroidApplication { private class AndroidClipboard implements com.badlogic.gdx.utils.Clipboard { private final ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + @Override + public boolean hasContents() { + if (cm.getPrimaryClip().getItemCount() > 0) { + try { + return cm.getPrimaryClip().getItemAt(0).coerceToText(getContext()).length() > 0; + } + catch (Exception ex) { + return false; + } + } + return false; + } + @Override public String getContents() { if (cm.getPrimaryClip().getItemCount() > 0) { @@ -440,4 +453,26 @@ public class Main extends AndroidApplication { bmp.compress(Bitmap.CompressFormat.JPEG, 100, output); } } + + public String getDeviceName() { + String manufacturer = Build.MANUFACTURER; + String model = Build.MODEL; + if (model.toLowerCase().startsWith(manufacturer.toLowerCase())) { + return capitalize(model); + } else { + return capitalize(manufacturer) + " " + model; + } + } + + private String capitalize(String s) { + if (s == null || s.length() == 0) { + return ""; + } + char first = s.charAt(0); + if (Character.isUpperCase(first)) { + return s; + } else { + return Character.toUpperCase(first) + s.substring(1); + } + } } diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index a34a6d9e8fd..7860157367f 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -73,7 +73,7 @@ com.badlogicgames.gdx gdx-backend-robovm - 1.9.10 + 1.9.13 diff --git a/forge-gui-ios/src/forge/ios/Main.java b/forge-gui-ios/src/forge/ios/Main.java index 1e9562f2ecb..05ac5e1197d 100644 --- a/forge-gui-ios/src/forge/ios/Main.java +++ b/forge-gui-ios/src/forge/ios/Main.java @@ -33,7 +33,7 @@ public class Main extends IOSApplication.Delegate { config.useCompass = false; ForgePreferences prefs = FModel.getPreferences(); boolean propertyConfig = prefs != null && prefs.getPrefBoolean(ForgePreferences.FPref.UI_NETPLAY_COMPAT);//todo get totalRAM && isTabletDevice - final ApplicationListener app = Forge.getApp(new IOSClipboard(), new IOSAdapter(), assetsDir, propertyConfig, false, 0, false, 0); + final ApplicationListener app = Forge.getApp(new IOSClipboard(), new IOSAdapter(), assetsDir, propertyConfig, false, 0, false, 0, "", ""); final IOSApplication iosApp = new IOSApplication(app, config); return iosApp; } @@ -46,6 +46,11 @@ public class Main extends IOSApplication.Delegate { //special clipboard that works on iOS private static final class IOSClipboard implements com.badlogic.gdx.utils.Clipboard { + @Override + public boolean hasContents() { + return UIPasteboard.getGeneralPasteboard().toString().length() > 0; + } + @Override public String getContents() { return UIPasteboard.getGeneralPasteboard().getString(); diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 14aacfe4a26..c8047b833ab 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -60,18 +60,18 @@ com.badlogicgames.gdx gdx-backend-lwjgl - 1.9.10 + 1.9.13 com.badlogicgames.gdx gdx-platform - 1.9.10 + 1.9.13 natives-desktop com.badlogicgames.gdx gdx-freetype-platform - 1.9.10 + 1.9.13 natives-desktop diff --git a/forge-gui-mobile-dev/src/forge/app/Main.java b/forge-gui-mobile-dev/src/forge/app/Main.java index ce513cb5f5c..fb86479e7c3 100644 --- a/forge-gui-mobile-dev/src/forge/app/Main.java +++ b/forge-gui-mobile-dev/src/forge/app/Main.java @@ -97,7 +97,7 @@ public class Main { ForgePreferences prefs = FModel.getPreferences(); boolean propertyConfig = prefs != null && prefs.getPrefBoolean(ForgePreferences.FPref.UI_NETPLAY_COMPAT); new LwjglApplication(Forge.getApp(new LwjglClipboard(), new DesktopAdapter(switchOrientationFile),//todo get totalRAM && isTabletDevice - desktopMode ? desktopModeAssetsDir : assetsDir, propertyConfig, false, 0, false, 0), config); + desktopMode ? desktopModeAssetsDir : assetsDir, propertyConfig, false, 0, false, 0, "", ""), config); } private static class DesktopAdapter implements IDeviceAdapter { diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 339886fa293..a769695db45 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -63,12 +63,12 @@ com.badlogicgames.gdx gdx - 1.9.10 + 1.9.13 com.badlogicgames.gdx gdx-freetype - 1.9.10 + 1.9.13 diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 4dd2ed5771d..50ee87a5e33 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -75,10 +75,9 @@ public class Forge implements ApplicationListener { public static boolean gameInProgress = false; public static int cacheSize = 400; public static int totalDeviceRAM = 0; - public static int androidVersion = 0; public static boolean autoCache = false; - public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value, boolean androidOrientation, int totalRAM, boolean isTablet, int AndroidVersion) { + public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value, boolean androidOrientation, int totalRAM, boolean isTablet, int AndroidAPI, String AndroidRelease, String deviceName) { if (GuiBase.getInterface() == null) { clipboard = clipboard0; deviceAdapter = deviceAdapter0; @@ -87,8 +86,8 @@ public class Forge implements ApplicationListener { isPortraitMode = androidOrientation; totalDeviceRAM = totalRAM; isTabletDevice = isTablet; - androidVersion = AndroidVersion; } + GuiBase.setDeviceInfo(deviceName, AndroidRelease, AndroidAPI); return app; } @@ -877,19 +876,19 @@ public class Forge implements ApplicationListener { } @Override - public boolean scrolled(int amount) { + public boolean scrolled(float amountX, float amountY) { updatePotentialListeners(mouseMovedX, mouseMovedY); if (KeyInputAdapter.isCtrlKeyDown()) { //zoom in or out based on amount - return zoom(mouseMovedX, mouseMovedY, -Utils.AVG_FINGER_WIDTH * amount); + return zoom(mouseMovedX, mouseMovedY, -Utils.AVG_FINGER_WIDTH * amountY); } boolean handled; if (KeyInputAdapter.isShiftKeyDown()) { - handled = pan(mouseMovedX, mouseMovedY, -Utils.AVG_FINGER_WIDTH * amount, 0, false); + handled = pan(mouseMovedX, mouseMovedY, -Utils.AVG_FINGER_WIDTH * amountX, 0, false); } else { - handled = pan(mouseMovedX, mouseMovedY, 0, -Utils.AVG_FINGER_HEIGHT * amount, true); + handled = pan(mouseMovedX, mouseMovedY, 0, -Utils.AVG_FINGER_HEIGHT * amountY, true); } if (panStop(mouseMovedX, mouseMovedY)) { handled = true; diff --git a/forge-gui-mobile/src/forge/assets/AssetsDownloader.java b/forge-gui-mobile/src/forge/assets/AssetsDownloader.java index 5d60a50690f..5cfeec369e3 100644 --- a/forge-gui-mobile/src/forge/assets/AssetsDownloader.java +++ b/forge-gui-mobile/src/forge/assets/AssetsDownloader.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.Gdx; import com.google.common.collect.ImmutableList; import forge.FThreads; import forge.Forge; +import forge.GuiBase; import forge.download.GuiDownloadZipService; import forge.properties.ForgeConstants; import forge.screens.SplashScreen; @@ -50,7 +51,7 @@ public class AssetsDownloader { "https://releases.cardforge.org/forge/forge-gui-android/" + version + "/" + filename, Forge.getDeviceAdapter().getDownloadsDir(), null, splashScreen.getProgressBar()).download(filename); if (apkFile != null) { - if (Forge.androidVersion < 29) { //Android 9 and below... + if (GuiBase.getAndroidAPILevel() < 29) { //Android 9 and below... Forge.getDeviceAdapter().openFile(apkFile); Forge.exit(true); return; diff --git a/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java b/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java index 3f443f7188d..ec4d73f8cb5 100644 --- a/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java +++ b/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java @@ -20,6 +20,7 @@ public abstract class FGestureAdapter extends InputAdapter { public abstract boolean pan(float x, float y, float deltaX, float deltaY, boolean moreVertical); public abstract boolean panStop(float x, float y); public abstract boolean zoom(float x, float y, float amount); + public abstract boolean scrolled(float amountX, float amountY); private float tapSquareSize, longPressDelay, lastTapX, lastTapY, tapSquareCenterX, tapSquareCenterY; private long tapCountInterval, flingDelay, lastTapTime; diff --git a/forge-gui/src/main/java/forge/GuiBase.java b/forge-gui/src/main/java/forge/GuiBase.java index 52d487a467c..56fc0ead768 100644 --- a/forge-gui/src/main/java/forge/GuiBase.java +++ b/forge-gui/src/main/java/forge/GuiBase.java @@ -8,6 +8,9 @@ public class GuiBase { private static boolean networkplay = false; private static boolean isAndroidport = false; private static boolean interrupted = false; + private static String deviceName = ""; + private static String androidRelease = ""; + private static int androidAPI = 0; public static IGuiBase getInterface() { return guiInterface; } public static void setInterface(IGuiBase i0) { guiInterface = i0; } @@ -15,6 +18,11 @@ public class GuiBase { public static void setIsAndroid(boolean value) { isAndroidport = value; } public static boolean isAndroid() { return isAndroidport; } + public static void setDeviceInfo(String device, String androidName, int androidAPI) { deviceName = device; androidRelease = androidName; androidAPI = androidAPI; } + public static String getDeviceName() { return deviceName; } + public static String getAndroidRelease() { return androidRelease; } + public static int getAndroidAPILevel() { return androidAPI; } + public static boolean isNetworkplay() { return networkplay; } public static void setNetworkplay(boolean value) { networkplay = value; } diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java index 1c1a621b8c1..34314141577 100644 --- a/forge-gui/src/main/java/forge/model/FModel.java +++ b/forge-gui/src/main/java/forge/model/FModel.java @@ -98,6 +98,14 @@ public final class FModel { private static GameFormat.Collection formats; public static void initialize(final IProgressBar progressBar, Function adjustPrefs) { + //init version to log + System.out.println("Forge v." + GuiBase.getInterface().getCurrentVersion() + " (" + GuiBase.getInterface() + ")"); + //Device + if (GuiBase.isAndroid()) //todo get device on other mobile platforms + System.out.println(GuiBase.getDeviceName() + " (Android " + GuiBase.getAndroidRelease() + " API Level " + GuiBase.getAndroidAPILevel() + ")"); + else + System.out.println(System.getProperty("os.name") + " (" + System.getProperty("os.version") + " " + System.getProperty("os.arch") + ")"); + ImageKeys.initializeDirs( ForgeConstants.CACHE_CARD_PICS_DIR, ForgeConstants.CACHE_CARD_PICS_SUBDIR, ForgeConstants.CACHE_TOKEN_PICS_DIR, ForgeConstants.CACHE_ICON_PICS_DIR,