internal static AndroidUri GetShareableFileUri(FileBase file) { Java.IO.File sharedFile; if (FileProvider.IsFileInPublicLocation(file.FullPath)) { // we are sharing a file in a "shared/public" location sharedFile = new Java.IO.File(file.FullPath); } else { var root = FileProvider.GetTemporaryRootDirectory(); var tmpFile = FileSystem.GetEssentialsTemporaryFile(root, file.FileName); System.IO.File.Copy(file.FullPath, tmpFile.CanonicalPath); sharedFile = tmpFile; } // create the uri, if N use file provider if (HasApiLevelN) { return(FileProvider.GetUriForFile(sharedFile)); } // use the shared file path created return(AndroidUri.FromFile(sharedFile)); }
public FileBase(FileBase file) { FullPath = file.FullPath; ContentType = file.ContentType; FileName = file.FileName; PlatformInit(file); }
internal static AndroidUri GetShareableFileUri(FileBase file) { Java.IO.File sharedFile; if (FileProvider.IsFileInPublicLocation(file.FullPath)) { // we are sharing a file in a "shared/public" location sharedFile = new Java.IO.File(file.FullPath); } else { var rootDir = FileProvider.GetTemporaryDirectory(); // create a unique directory just in case there are multiple file with the same name var tmpDir = new Java.IO.File(rootDir, Guid.NewGuid().ToString("N")); tmpDir.Mkdirs(); tmpDir.DeleteOnExit(); // create the new temprary file var tmpFile = new Java.IO.File(tmpDir, file.FileName); tmpFile.DeleteOnExit(); var fileUri = AndroidUri.Parse(file.FullPath); if (fileUri.Scheme == "content") { using var stream = Application.Context.ContentResolver.OpenInputStream(fileUri); using var destStream = System.IO.File.Create(tmpFile.CanonicalPath); stream.CopyTo(destStream); } else { System.IO.File.Copy(file.FullPath, tmpFile.CanonicalPath); } sharedFile = tmpFile; } // create the uri, if N use file provider if (HasApiLevelN) { var providerAuthority = AppContext.PackageName + ".fileProvider"; return(FileProvider.GetUriForFile( AppContext.ApplicationContext, providerAuthority, sharedFile)); } // use the shared file path created return(AndroidUri.FromFile(sharedFile)); }
internal void PlatformInit(FileBase file) { }
internal void PlatformInit(FileBase file) => throw new NotImplementedInReferenceAssemblyException();
public EmailAttachment(FileBase file) : base(file) { }
internal void PlatformInit(FileBase file) => throw ExceptionUtils.NotSupportedOrImplementedException;
public EmailAttachment(FileBase file) : base(file) { ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.EmailAttachments); }
internal void PlatformInit(FileBase file) { File = file.File; }
public OpenFileRequest(string title, FileBase file) { Title = title; File = new ReadOnlyFile(file); }
public OpenFileRequest(string title, FileBase file) { ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.OpenFileRequest); Title = title; File = new ReadOnlyFile(file); }
internal void PlatformInit(FileBase file) { ContentType = PlatformGetContentType(file.FullPath); }