Browse Source

Fix crash when creating documents in an opened folder on android (#18651)

* fix crash when creating documents in an opened folder

* fix crash on folder delete on android
release/11.3.0-rc1
Emmanuel Hansen 10 months ago
committed by Julien Lebosquain
parent
commit
7527bc52ff
  1. 9
      src/Android/Avalonia.Android/Platform/Storage/AndroidStorageItem.cs

9
src/Android/Avalonia.Android/Platform/Storage/AndroidStorageItem.cs

@ -159,7 +159,8 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
public Task<IStorageFile?> CreateFileAsync(string name)
{
var mimeType = MimeTypeMap.Singleton?.GetMimeTypeFromExtension(MimeTypeMap.GetFileExtensionFromUrl(name)) ?? "application/octet-stream";
var newFile = DocumentsContract.CreateDocument(Activity.ContentResolver!, Uri, mimeType, name);
var treeUri = DocumentsContract.BuildDocumentUriUsingTree(Uri, DocumentsContract.GetTreeDocumentId(Uri));
var newFile = DocumentsContract.CreateDocument(Activity.ContentResolver!, treeUri!, mimeType, name);
if(newFile == null)
{
return Task.FromResult<IStorageFile?>(null);
@ -170,7 +171,8 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
public Task<IStorageFolder?> CreateFolderAsync(string name)
{
var newFolder = DocumentsContract.CreateDocument(Activity.ContentResolver!, Uri, DocumentsContract.Document.MimeTypeDir, name);
var treeUri = DocumentsContract.BuildDocumentUriUsingTree(Uri, DocumentsContract.GetTreeDocumentId(Uri));
var newFolder = DocumentsContract.CreateDocument(Activity.ContentResolver!, treeUri!, DocumentsContract.Document.MimeTypeDir, name);
if (newFolder == null)
{
return Task.FromResult<IStorageFolder?>(null);
@ -205,7 +207,8 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
}
}
DocumentsContract.DeleteDocument(Activity.ContentResolver!, storageFolder.Uri);
var treeUri = DocumentsContract.BuildDocumentUriUsingTree(storageFolder.Uri, DocumentsContract.GetTreeDocumentId(storageFolder.Uri));
DocumentsContract.DeleteDocument(Activity.ContentResolver!, treeUri!);
}
}

Loading…
Cancel
Save