Relocate android specific dependency (#7387)

This commit is contained in:
tool4ever
2025-04-12 07:47:07 +02:00
committed by GitHub
parent 2a4ea4cb5d
commit e2e3c658a0
10 changed files with 51 additions and 15 deletions

View File

@@ -225,6 +225,11 @@
<version>26.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jupnp</groupId>
<artifactId>org.jupnp.android</artifactId>
<version>3.0.2</version>
</dependency>
</dependencies>
<profiles>

View File

@@ -64,6 +64,8 @@ import forge.interfaces.IDeviceAdapter;
import forge.util.FileUtil;
import forge.util.ThreadUtil;
import org.apache.commons.lang3.tuple.Pair;
import org.jupnp.DefaultUpnpServiceConfiguration;
import org.jupnp.android.AndroidUpnpServiceConfiguration;
import java.io.BufferedReader;
import java.io.File;
@@ -618,6 +620,11 @@ public class Main extends AndroidApplication {
return result;
}
@Override
public DefaultUpnpServiceConfiguration getUpnpPlatformService() {
return new AndroidUpnpServiceConfiguration();
}
@Override
public boolean isConnectedToInternet() {
//if it can't determine Internet connection within two seconds, assume not connected

View File

@@ -22,6 +22,8 @@ import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.StringUtils;
import org.jupnp.DefaultUpnpServiceConfiguration;
import org.jupnp.UpnpServiceConfiguration;
import forge.download.GuiDownloader;
import forge.error.BugReportDialog;
@@ -60,6 +62,11 @@ import forge.util.SwingImageFetcher;
public class GuiDesktop implements IGuiBase {
private ImageFetcher imageFetcher = new SwingImageFetcher();
@Override
public UpnpServiceConfiguration getUpnpPlatformService() {
return new DefaultUpnpServiceConfiguration();
}
@Override
public boolean isRunningOnDesktop() {
return true;

View File

@@ -7,6 +7,7 @@ import java.util.ArrayList;
import java.util.Date;
import org.apache.commons.lang3.tuple.Pair;
import org.jupnp.UpnpServiceConfiguration;
import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.uikit.UIApplication;
import org.robovm.apple.uikit.UIPasteboard;
@@ -138,5 +139,11 @@ public class Main extends IOSApplication.Delegate {
public ArrayList<String> getGamepads() {
return new ArrayList<>();
}
@Override
public UpnpServiceConfiguration getUpnpPlatformService() {
// not used
return null;
}
}
}

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
import forge.interfaces.IDeviceAdapter;
import forge.util.*;
import org.apache.commons.lang3.tuple.Pair;
import org.jupnp.UpnpServiceConfiguration;
import javax.imageio.ImageIO;
import java.awt.Desktop;
@@ -146,5 +147,11 @@ public class Main {
public ArrayList<String> getGamepads() {
return new ArrayList<>();
}
@Override
public UpnpServiceConfiguration getUpnpPlatformService() {
// shouldn't be reached
return null;
}
}
}

View File

@@ -11,6 +11,7 @@ import forge.deck.FDeckViewer;
import forge.error.BugReportDialog;
import forge.gamemodes.match.HostedMatch;
import forge.gui.FThreads;
import forge.gui.GuiBase;
import forge.gui.download.GuiDownloadService;
import forge.gui.interfaces.IGuiBase;
import forge.gui.interfaces.IGuiGame;
@@ -33,6 +34,9 @@ import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import org.jupnp.DefaultUpnpServiceConfiguration;
import org.jupnp.UpnpServiceConfiguration;
public class GuiMobile implements IGuiBase {
private final String assetsDir;
private final ImageFetcher imageFetcher = new LibGDXImageFetcher();
@@ -42,6 +46,14 @@ public class GuiMobile implements IGuiBase {
assetsDir = assetsDir0;
}
@Override
public UpnpServiceConfiguration getUpnpPlatformService() {
if (GuiBase.isAndroid()) {
return Forge.getDeviceAdapter().getUpnpPlatformService();
}
return new DefaultUpnpServiceConfiguration();
}
@Override
public boolean isRunningOnDesktop() {
return Gdx.app == null || Gdx.app.getType() == ApplicationType.Desktop;

View File

@@ -62,11 +62,6 @@
<artifactId>org.jupnp.support</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.jupnp</groupId>
<artifactId>org.jupnp.android</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.lz4</groupId>
<artifactId>lz4-java</artifactId>

View File

@@ -20,11 +20,8 @@ import io.netty.handler.codec.serialization.ClassResolvers;
import io.netty.handler.logging.LogLevel;
import io.netty.handler.logging.LoggingHandler;
import org.jupnp.DefaultUpnpServiceConfiguration;
import org.jupnp.UpnpService;
import org.jupnp.UpnpServiceConfiguration;
import org.jupnp.UpnpServiceImpl;
import org.jupnp.android.AndroidUpnpServiceConfiguration;
import org.jupnp.support.igd.PortMappingListener;
import org.jupnp.support.model.PortMapping;
@@ -281,13 +278,7 @@ public final class FServerManager {
try {
// Create a new UPnP service instance
UpnpServiceConfiguration service;
if (GuiBase.isAndroid()) {
service = new AndroidUpnpServiceConfiguration();
} else {
service = new DefaultUpnpServiceConfiguration();
}
upnpService = new UpnpServiceImpl(service);
upnpService = new UpnpServiceImpl(GuiBase.getInterface().getUpnpPlatformService());
upnpService.startup();
// Add a PortMappingListener

View File

@@ -17,6 +17,8 @@ import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import org.jupnp.UpnpServiceConfiguration;
public interface IGuiBase {
boolean isRunningOnDesktop();
boolean isLibgdxPort();
@@ -61,4 +63,5 @@ public interface IGuiBase {
String encodeSymbols(String str, boolean formatReminderText);
void preventSystemSleep(boolean preventSleep);
float getScreenScale();
UpnpServiceConfiguration getUpnpPlatformService();
}

View File

@@ -1,6 +1,7 @@
package forge.interfaces;
import org.apache.commons.lang3.tuple.Pair;
import org.jupnp.UpnpServiceConfiguration;
import java.io.IOException;
import java.io.InputStream;
@@ -25,4 +26,5 @@ public interface IDeviceAdapter {
void convertToJPEG(InputStream input, OutputStream output) throws IOException;
Pair<Integer, Integer> getRealScreenSize(boolean real);
ArrayList<String> getGamepads();
UpnpServiceConfiguration getUpnpPlatformService();
}