feature: refresh list & save to gallery

This commit is contained in:
2020-05-06 02:21:24 +08:00
parent 190615ab03
commit 8746d311d2
14 changed files with 335 additions and 45 deletions

View File

@@ -44,5 +44,7 @@
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleDefault</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问您的图片库</string>
</dict>
</plist>

View File

@@ -76,6 +76,7 @@
<Compile Include="Renderers\RoundImageRenderer.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Renderers\AdaptedNavigationPageRenderer.cs" />
<Compile Include="Services\FileStore.cs" />
</ItemGroup>
<ItemGroup>
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />

View File

@@ -0,0 +1,45 @@
using System.Threading.Tasks;
using Pixiview.iOS.Services;
using Pixiview.Utils;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: Dependency(typeof(FileStore))]
namespace Pixiview.iOS.Services
{
public class FileStore : IFileStore
{
public Task<string> SaveImageToGalleryAsync(ImageSource image)
{
IImageSourceHandler renderer;
if (image is UriImageSource)
{
renderer = new ImageLoaderSourceHandler();
}
else if (image is FileImageSource)
{
renderer = new FileImageSourceHandler();
}
else
{
renderer = new StreamImagesourceHandler();
}
var photo = renderer.LoadImageAsync(image).Result;
var task = new TaskCompletionSource<string>();
if (photo == null)
{
task.SetResult(null);
}
else
{
photo.SaveToPhotosAlbum((img, error) =>
{
task.SetResult(error?.ToString());
});
}
return task.Task;
}
}
}