diff --git a/ios/src/mindustry/ios/IOSLauncher.java b/ios/src/mindustry/ios/IOSLauncher.java index 5e0102db79..b3668330ec 100644 --- a/ios/src/mindustry/ios/IOSLauncher.java +++ b/ios/src/mindustry/ios/IOSLauncher.java @@ -1,12 +1,13 @@ package mindustry.ios; import arc.*; -import com.badlogic.gdx.backends.iosrobovm.*; +import arc.Input.*; import arc.files.*; import arc.func.*; import arc.scene.ui.layout.*; import arc.util.*; import arc.util.io.*; +import com.badlogic.gdx.backends.iosrobovm.*; import mindustry.*; import mindustry.game.EventType.*; import mindustry.game.Saves.*; @@ -42,7 +43,6 @@ public class IOSLauncher extends IOSApplication.Delegate{ public void showFileChooser(boolean open, String extension, Cons cons){ UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray)null); - NSArray arr = new NSArray<>(new UIBarButtonItem(Core.bundle.get("cancel"), UIBarButtonItemStyle.Plain, uiBarButtonItem -> cont.dismissViewController(true, () -> {}))); @@ -88,16 +88,37 @@ public class IOSLauncher extends IOSApplication.Delegate{ @Override public void didRequestDocumentCreationWithHandler(UIDocumentBrowserViewController controller, VoidBlock2 importHandler){ + Core.app.post(() -> { + //ask for name + Core.input.getTextInput(new TextInput(){{ + title = Core.bundle.get("name"); + accepted = name -> { + try{ + //write result + Fi result = tmpDirectory.child(name + "." + extension); + cons.get(result); + //import the document + importHandler.invoke(new NSURL(result.absolutePath()), UIDocumentBrowserImportMode.Move); + }catch(Throwable t){ + ui.showException(t); + } + }; + }}); + }); } @Override public void didImportDocument(UIDocumentBrowserViewController controller, NSURL sourceURL, NSURL destinationURL){ + //hide it, done with export + cont.dismissViewController(true, () -> {}); } @Override public void failedToImportDocument(UIDocumentBrowserViewController controller, NSURL documentURL, NSError error){ - + //failed, still hide it but show error message + Core.app.post(() -> ui.showErrorMessage(error.getLocalizedDescription() + "\n" + error.getLocalizedFailureReason())); + cont.dismissViewController(true, () -> {}); } @Override