mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Fix issue with saving data.xml file for conquests with a space in the name on Android device
This commit is contained in:
@@ -45,7 +45,7 @@ import java.util.Map.Entry;
|
||||
import com.google.common.base.Function;
|
||||
|
||||
public final class ConquestData {
|
||||
private static final String XML_FILE = "data.xml";
|
||||
private static final String XML_FILENAME = "data.xml";
|
||||
|
||||
private String name;
|
||||
private PaperCard planeswalker;
|
||||
@@ -55,8 +55,7 @@ public final class ConquestData {
|
||||
private int aetherShards;
|
||||
private int planeswalkEmblems;
|
||||
|
||||
private final File directory;
|
||||
private final String xmlFilename;
|
||||
private final File directory, xmlFile;
|
||||
private final ConquestRecord chaosBattleRecord;
|
||||
private final Map<String, ConquestPlaneData> planeDataMap = new HashMap<String, ConquestPlaneData>();
|
||||
private final HashSet<PaperCard> unlockedCards = new HashSet<PaperCard>();
|
||||
@@ -67,7 +66,7 @@ public final class ConquestData {
|
||||
public ConquestData(String name0, ConquestPlane startingPlane0, PaperCard startingPlaneswalker0, PaperCard startingCommander0) {
|
||||
name = name0;
|
||||
directory = new File(ForgeConstants.CONQUEST_SAVE_DIR, name);
|
||||
xmlFilename = directory.getPath() + ForgeConstants.PATH_SEPARATOR + XML_FILE;
|
||||
xmlFile = new File(directory, XML_FILENAME);
|
||||
aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS);
|
||||
currentLocation = new ConquestLocation(startingPlane0, 0, 0, 0);
|
||||
unlockPlane(startingPlane0);
|
||||
@@ -89,11 +88,11 @@ public final class ConquestData {
|
||||
public ConquestData(File directory0) {
|
||||
name = directory0.getName();
|
||||
directory = directory0;
|
||||
xmlFilename = directory.getPath() + ForgeConstants.PATH_SEPARATOR + XML_FILE;
|
||||
xmlFile = new File(directory, XML_FILENAME);
|
||||
|
||||
ConquestRecord chaosBattleRecord0 = null;
|
||||
try {
|
||||
XmlReader xml = new XmlReader(xmlFilename);
|
||||
XmlReader xml = new XmlReader(xmlFile);
|
||||
CardDb cardDb = FModel.getMagicDb().getCommonCards();
|
||||
setPlaneswalker(xml.read("planeswalker", cardDb));
|
||||
aetherShards = xml.read("aetherShards", aetherShards);
|
||||
@@ -120,7 +119,7 @@ public final class ConquestData {
|
||||
FileUtil.ensureDirectoryExists(directory);
|
||||
|
||||
try {
|
||||
XmlWriter xml = new XmlWriter(xmlFilename, "data");
|
||||
XmlWriter xml = new XmlWriter(xmlFile, "data");
|
||||
xml.write("planeswalker", planeswalker);
|
||||
xml.write("aetherShards", aetherShards);
|
||||
xml.write("planeswalkEmblems", planeswalkEmblems);
|
||||
|
||||
@@ -20,9 +20,9 @@ import forge.util.XmlWriter.IXmlWritable;
|
||||
public class XmlReader {
|
||||
private Element currentElement;
|
||||
|
||||
public XmlReader(String filename0) throws Exception {
|
||||
public XmlReader(File file0) throws Exception {
|
||||
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
|
||||
final Document document = builder.parse(new File(filename0));
|
||||
final Document document = builder.parse(file0);
|
||||
currentElement = (Element)document.getFirstChild();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,13 +47,16 @@ public class XmlUtil {
|
||||
return sw.toString();
|
||||
}
|
||||
|
||||
public static void saveDocument(final Document document, String filename) throws TransformerException {
|
||||
public static void saveDocument(final Document document, final String filename) throws TransformerException {
|
||||
saveDocument(document, new File(filename));
|
||||
}
|
||||
public static void saveDocument(final Document document, final File file) throws TransformerException {
|
||||
Transformer t = TransformerFactory.newInstance().newTransformer();
|
||||
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
|
||||
t.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
|
||||
DOMSource source = new DOMSource(document);
|
||||
StreamResult result = new StreamResult(new File(filename));
|
||||
StreamResult result = new StreamResult(file);
|
||||
t.transform(source, result);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package forge.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
@@ -16,17 +17,17 @@ import forge.item.PaperCard;
|
||||
|
||||
public class XmlWriter {
|
||||
private final Document document;
|
||||
private final String filename;
|
||||
private final File file;
|
||||
private final Stack<Element> parentElements = new Stack<Element>();
|
||||
|
||||
private Element currentElement;
|
||||
|
||||
public XmlWriter(String filename0, String rootName0) throws Exception {
|
||||
public XmlWriter(File file0, String rootName0) throws Exception {
|
||||
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
|
||||
document = builder.newDocument();
|
||||
currentElement = document.createElement(rootName0);
|
||||
document.appendChild(currentElement);
|
||||
filename = filename0;
|
||||
file = file0;
|
||||
}
|
||||
|
||||
public void startElement(String name0) {
|
||||
@@ -109,7 +110,7 @@ public class XmlWriter {
|
||||
}
|
||||
|
||||
public void close() throws Exception {
|
||||
XmlUtil.saveDocument(document, filename);
|
||||
XmlUtil.saveDocument(document, file);
|
||||
}
|
||||
|
||||
public interface IXmlWritable {
|
||||
|
||||
Reference in New Issue
Block a user