123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //
- // FLEXImageShortcuts.m
- // FLEX
- //
- // Created by Tanner Bennett on 8/29/19.
- // Copyright © 2020 FLEX Team. All rights reserved.
- //
- #import "FLEXImageShortcuts.h"
- #import "FLEXImagePreviewViewController.h"
- #import "FLEXShortcut.h"
- #import "FLEXAlert.h"
- @interface UIAlertController (FLEXImageShortcuts)
- - (void)flex_image:(UIImage *)image disSaveWithError:(NSError *)error :(void *)context;
- @end
- @implementation FLEXImageShortcuts
- #pragma mark - Overrides
- + (instancetype)forObject:(UIImage *)image {
- // These additional rows will appear at the beginning of the shortcuts section.
- // The methods below are written in such a way that they will not interfere
- // with properties/etc being registered alongside these
- return [self forObject:image additionalRows:@[
- [FLEXActionShortcut title:@"View Image" subtitle:nil
- viewer:^UIViewController *(id image) {
- return [FLEXImagePreviewViewController forImage:image];
- }
- accessoryType:^UITableViewCellAccessoryType(id image) {
- return UITableViewCellAccessoryDisclosureIndicator;
- }
- ],
- [FLEXActionShortcut title:@"Save Image" subtitle:nil
- selectionHandler:^(UIViewController *host, id image) {
- // Present modal alerting user about saving
- UIAlertController *alert = [FLEXAlert makeAlert:^(FLEXAlert *make) {
- make.title(@"Saving Image…");
- }];
- [host presentViewController:alert animated:YES completion:nil];
- #if !TARGET_OS_TV
- // Save the image
- UIImageWriteToSavedPhotosAlbum(
- image, alert, @selector(flex_image:disSaveWithError::), nil
- );
- #else
- //FIXME: do something else for tvOS
- NSLog(@"not saving image to photo album, tvOS!");
- #endif
- }
- accessoryType:^UITableViewCellAccessoryType(id image) {
- return UITableViewCellAccessoryDisclosureIndicator;
- }
- ]
- ]];
- }
- @end
- @implementation UIAlertController (FLEXImageShortcuts)
- - (void)flex_image:(UIImage *)image disSaveWithError:(NSError *)error :(void *)context {
- self.title = @"Image Saved";
- flex_dispatch_after(1, dispatch_get_main_queue(), ^{
- [self dismissViewControllerAnimated:YES completion:nil];
- });
- }
- @end
|