(
String parent,
String name,
String mimeType,
CallbackContext callback
)
| 649 | } |
| 650 | |
| 651 | private void create( |
| 652 | String parent, |
| 653 | String name, |
| 654 | String mimeType, |
| 655 | CallbackContext callback |
| 656 | ) { |
| 657 | cordova |
| 658 | .getThreadPool() |
| 659 | .execute( |
| 660 | new Runnable() { |
| 661 | public void run() { |
| 662 | try { |
| 663 | String srcUri = null, docId = null; |
| 664 | Uri parentUri = null; |
| 665 | |
| 666 | if (parent.contains(SEPARATOR)) { |
| 667 | String splittedStr[] = parent.split(SEPARATOR, 2); |
| 668 | srcUri = splittedStr[0]; |
| 669 | docId = splittedStr[1]; |
| 670 | parentUri = getUri(srcUri, docId); |
| 671 | } else { |
| 672 | srcUri = parent; |
| 673 | parentUri = Uri.parse(srcUri); |
| 674 | docId = DocumentsContract.getTreeDocumentId(parentUri); |
| 675 | parentUri = DocumentsContract.buildDocumentUriUsingTree( |
| 676 | parentUri, |
| 677 | docId |
| 678 | ); |
| 679 | } |
| 680 | |
| 681 | ContentResolver contentResolver = context.getContentResolver(); |
| 682 | Uri newDocumentUri = DocumentsContract.createDocument( |
| 683 | contentResolver, |
| 684 | parentUri, |
| 685 | mimeType, |
| 686 | name |
| 687 | ); |
| 688 | DocumentFile file = DocumentFile.fromTreeUri( |
| 689 | context, |
| 690 | newDocumentUri |
| 691 | ); |
| 692 | Log.i("SDcard", "Uri: " + newDocumentUri.toString()); |
| 693 | if (!name.equals(file.getName()) && file.renameTo(name)) { |
| 694 | newDocumentUri = file.getUri(); |
| 695 | } |
| 696 | |
| 697 | docId = DocumentsContract.getDocumentId(newDocumentUri); |
| 698 | if (newDocumentUri != null) { |
| 699 | callback.success(srcUri + SEPARATOR + docId); |
| 700 | } else { |
| 701 | callback.error("Unable to create " + parent); |
| 702 | } |
| 703 | } catch (Exception e) { |
| 704 | Log.e("CREATE_FILE", "Unable to create file", e); |
| 705 | callback.error(e.toString()); |
| 706 | } |
| 707 | } |
| 708 | } |
no test coverage detected