iOS fixes
This commit is contained in:
@@ -41,12 +41,32 @@ public class IOSLauncher extends IOSApplication.Delegate{
|
||||
|
||||
@Override
|
||||
public void showFileChooser(boolean open, String extension, Cons<Fi> cons){
|
||||
if(!open){ //when exporting, just share it.
|
||||
//ask for export name
|
||||
Core.input.getTextInput(new TextInput(){{
|
||||
title = Core.bundle.get("filename");
|
||||
accepted = name -> {
|
||||
try{
|
||||
//write result
|
||||
Fi result = tmpDirectory.child(name + "." + extension);
|
||||
cons.get(result);
|
||||
|
||||
//import the document
|
||||
shareFile(result);
|
||||
}catch(Throwable t){
|
||||
ui.showException(t);
|
||||
}
|
||||
};
|
||||
}});
|
||||
return;
|
||||
}
|
||||
|
||||
UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray<NSString>)null);
|
||||
|
||||
NSArray<UIBarButtonItem> arr = new NSArray<>(new UIBarButtonItem(Core.bundle.get("cancel"), UIBarButtonItemStyle.Plain,
|
||||
uiBarButtonItem -> cont.dismissViewController(true, () -> {})));
|
||||
|
||||
cont.setAllowsDocumentCreation(!open);
|
||||
cont.setAllowsDocumentCreation(false);
|
||||
cont.setAdditionalLeadingNavigationBarButtonItems(arr);
|
||||
|
||||
class ChooserDelegate extends NSObject implements UIDocumentBrowserViewControllerDelegate{
|
||||
@@ -88,37 +108,15 @@ public class IOSLauncher extends IOSApplication.Delegate{
|
||||
|
||||
@Override
|
||||
public void didRequestDocumentCreationWithHandler(UIDocumentBrowserViewController controller, VoidBlock2<NSURL, UIDocumentBrowserImportMode> 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
|
||||
|
||||
Reference in New Issue
Block a user