From ed9afa082a0756678b4b56ceb2b17bda9d35bad4 Mon Sep 17 00:00:00 2001 From: x0b Date: Thu, 6 Feb 2020 16:46:51 +0100 Subject: [PATCH] Fix #1350: Support createDocument(...) --- .../filepicker/TermuxDocumentsProvider.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/src/main/java/com/termux/filepicker/TermuxDocumentsProvider.java b/app/src/main/java/com/termux/filepicker/TermuxDocumentsProvider.java index ed13ee9d..16c697eb 100644 --- a/app/src/main/java/com/termux/filepicker/TermuxDocumentsProvider.java +++ b/app/src/main/java/com/termux/filepicker/TermuxDocumentsProvider.java @@ -117,6 +117,29 @@ public class TermuxDocumentsProvider extends DocumentsProvider { return true; } + @Override + public String createDocument(String parentDocumentId, String mimeType, String displayName) throws FileNotFoundException { + File newFile = new File(parentDocumentId, displayName); + int noConflictId = 2; + while (newFile.exists()) { + newFile = new File(parentDocumentId, displayName + " (" + noConflictId++ + ")"); + } + try { + boolean succeeded; + if (Document.MIME_TYPE_DIR.equals(mimeType)) { + succeeded = newFile.mkdir(); + } else { + succeeded = newFile.createNewFile(); + } + if (!succeeded) { + throw new FileNotFoundException("Failed to create document with id " + newFile.getPath()); + } + } catch (IOException e) { + throw new FileNotFoundException("Failed to create document with id " + newFile.getPath()); + } + return newFile.getPath(); + } + @Override public void deleteDocument(String documentId) throws FileNotFoundException { File file = getFileForDocId(documentId);