Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import <MobileCoreServices/MobileCoreServices.h>
- #import <UIKit/UIKit.h>
- #import <AssetsLibrary/ALAssetsLibrary.h>
- #import <ImageIO/ImageIO.h>
- #import <MessageUI/MessageUI.h>
- #include "Utils.h"
- @interface platools : UIViewController <MFMessageComposeViewControllerDelegate>
- @end
- namespace platools {
- //COPY DATA FUNCTIONS
- bool copyText(const char *text)
- {
- NSLog(@"PLATools copyText");
- UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard];
- appPasteBoard.persistent = YES;
- [appPasteBoard setString:[NSString stringWithFormat:@"%s",text]];
- return true;
- }
- bool copyURL(const char *url)
- {
- NSLog(@"PLATools copyURL");
- UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard];
- appPasteBoard.persistent = YES;
- appPasteBoard.URL = [NSURL URLWithString:[NSString stringWithFormat:@"%s",url]];
- return true;
- }
- bool copyImage(const char *url)
- {
- NSLog(@"PLATools copyImage");
- UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard];
- appPasteBoard.persistent = YES;
- NSString *ImageStrUrl = [NSString stringWithFormat:@"%s",url];
- NSString *extension = [ImageStrUrl pathExtension];
- NSURL *ImageURL = [NSURL URLWithString:ImageStrUrl];
- NSData *imageData = [NSData dataWithContentsOfURL:ImageURL];
- if ([extension isEqualToString:@"jpg"] || [extension isEqualToString:@"png"])
- {
- NSLog(@"CopySuccess JPG/PNG");
- [appPasteBoard setData:imageData forPasteboardType:@"public.jpeg"];
- return true;
- }
- else if ([extension isEqualToString:@"gif"])
- {
- NSLog(@"CopySuccess GIF");
- [appPasteBoard setData:imageData forPasteboardType:@"com.compuserve.gif"];
- return true;
- }
- return false;
- }
- //SAVE DATA FUNCTIONS
- bool saveImage(const char *url,const char *filename)
- {
- NSLog(@"SaveImage start");
- NSString *strImageUrl = [NSString stringWithFormat:@"%s",url];
- NSString *strFilename = [NSString stringWithFormat:@"%s",filename];
- NSString *strExtension = [strImageUrl pathExtension];
- strFilename = [strFilename stringByAppendingString:@"."];
- strFilename = [strFilename stringByAppendingString:strExtension ];
- NSURL *urlToImage = [NSURL URLWithString:strImageUrl];
- NSData * dataImage = [NSData dataWithContentsOfURL:urlToImage];
- NSLog(@"%@",strExtension);
- NSURL *urlAddress = [[NSURL alloc] initWithString:strImageUrl];
- // Create path.
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- //check authorization
- ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
- if(status != ALAuthorizationStatusAuthorized)
- {
- NSLog(@"L'application n'est pas autorise a acceder au camera roll");
- return false;
- }
- if ([strExtension isEqualToString:@"jpg"] || [strExtension isEqualToString:@"png"])
- {
- NSLog(@"SaveImage start JPG/PNG");
- NSLog(@"%@",strFilename);
- //NSData *jpgData = UIImageJPEGRepresentation(image,1);
- NSString *strFilePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:strFilename];
- [dataImage writeToFile:strFilePath atomically:YES]; //Write the file
- //Ajoute l'image dans le Camera Roll
- UIImage *image = [[UIImage alloc] initWithContentsOfFile:strFilePath];
- UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
- NSLog(@"SaveSuccess JPG/PNG");
- NSLog(@"%@",strFilePath);
- return true;
- }
- else if ([strExtension isEqualToString:@"gif"])
- {
- NSLog(@"SaveImage start GIF");
- NSLog(@"%@",strFilename);
- ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
- [assetsLibrary writeImageDataToSavedPhotosAlbum:dataImage metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
- NSLog(@"Success aat %@", [assetURL path] );
- }];
- return true;
- }
- return false;
- }
- bool launchSandbox(const char *url)
- {
- NSLog(@"launchSandbox");
- NSURL *urlImage = [NSURL URLWithString:[NSString stringWithFormat:@"%s",url]];
- CGImageRef myImage = NULL;
- CGImageSourceRef myImageSource;
- CFDictionaryRef myOptions = NULL;
- CFStringRef myKeys[2];
- CFTypeRef myValues[2];
- // Set up options if you want them. The options here are for
- // caching the image in a decoded form and for using floating-point
- // values if the image format supports them.
- myKeys[0] = kCGImageSourceShouldCache;
- myValues[0] = (CFTypeRef)kCFBooleanTrue;
- myKeys[1] = kCGImageSourceShouldAllowFloat;
- myValues[1] = (CFTypeRef)kCFBooleanTrue;
- // Create the dictionary
- myOptions = CFDictionaryCreate(NULL, (const void **) myKeys,
- (const void **) myValues, 2,
- &kCFTypeDictionaryKeyCallBacks,
- & kCFTypeDictionaryValueCallBacks);
- myImageSource = CGImageSourceCreateWithURL((CFURLRef)urlImage, myOptions);
- myImage = CGImageSourceCreateImageAtIndex(myImageSource,0,NULL);
- CFRelease(myImageSource);
- UIImage *image = [UIImage imageWithCGImage:myImage];
- NSArray *itemsToShare = @[image];
- UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController];
- UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
- // Required for iPad on iOS >=8
- if ([activityVC respondsToSelector:@selector(popoverPresentationController)]) {
- if(NULL != activityVC.popoverPresentationController) {
- activityVC.popoverPresentationController.sourceView = [[UIApplication sharedApplication] keyWindow];
- [activityVC.popoverPresentationController setPermittedArrowDirections:0]; // Remove arrow from action sheet.
- activityVC.popoverPresentationController.sourceRect = [[UIApplication sharedApplication] keyWindow].frame; // Set action sheet to middle of view.
- }
- }
- activityVC.excludedActivityTypes = @[UIActivityTypeAddToReadingList,
- UIActivityTypeCopyToPasteboard,
- UIActivityTypePrint,
- UIActivityTypeAssignToContact,
- UIActivityTypeSaveToCameraRoll,
- UIActivityTypeAddToReadingList,
- //UIActivityTypeMail,
- UIActivityTypeAirDrop];
- [root presentViewController:activityVC animated:YES completion:nil];
- return true;
- }
- bool shareIMessage(const char *url)
- {
- if(![MFMessageComposeViewController canSendText])
- {
- UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device doesn't support SMS!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
- [warningAlert show];
- return false;
- }
- NSLog(@"shareIMessage");
- NSString *ImageStrUrl = [NSString stringWithFormat:@"%s",url];
- NSLog(@"%@",ImageStrUrl);
- NSURL *ImageURL = [NSURL URLWithString:ImageStrUrl];
- NSData *imageData = [NSData dataWithContentsOfURL:ImageURL];
- UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController];
- //NSString *message = [NSString stringWithFormat:@"LNS test"];
- MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
- messageController.messageComposeDelegate = (id<MFMessageComposeViewControllerDelegate>)[[UIApplication sharedApplication]delegate];
- //[messageController setBody:message];
- if ([MFMessageComposeViewController canSendAttachments])
- {
- NSLog(@"Attachments Can Be Sent.");
- BOOL didAttachImage = [messageController addAttachmentData:imageData typeIdentifier:@"public.data" filename:@"image.gif"];
- if (didAttachImage)
- {
- NSLog(@"Image Attached.");
- }
- else
- {
- NSLog(@"Image Could Not Be Attached.");
- }
- }
- [root presentViewController:messageController animated:YES completion:nil];
- return true;
- }
- bool shareImage(const char *url)
- {
- NSLog(@"shareImage");
- NSString *ImageStrUrl = [NSString stringWithFormat:@"%s",url];
- NSLog(@"%@",ImageStrUrl);
- NSURL *ImageURL = [NSURL URLWithString:ImageStrUrl];
- NSData *imageData = [NSData dataWithContentsOfURL:ImageURL];
- //UIImage *image = [UIImage imageWithData:imageData];
- NSArray *itemsToShare = @[imageData];
- UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController];
- UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
- // Required for iPad on iOS >=8
- if ([activityVC respondsToSelector:@selector(popoverPresentationController)]) {
- if(NULL != activityVC.popoverPresentationController) {
- activityVC.popoverPresentationController.sourceView = [[UIApplication sharedApplication] keyWindow];
- [activityVC.popoverPresentationController setPermittedArrowDirections:0]; // Remove arrow from action sheet.
- activityVC.popoverPresentationController.sourceRect = [[UIApplication sharedApplication] keyWindow].frame; // Set action sheet to middle of view.
- }
- }
- activityVC.excludedActivityTypes = @[UIActivityTypeAddToReadingList,
- UIActivityTypeCopyToPasteboard,
- UIActivityTypePrint,
- UIActivityTypeAssignToContact,
- UIActivityTypeSaveToCameraRoll,
- UIActivityTypeAddToReadingList,
- //UIActivityTypeMail,
- UIActivityTypeAirDrop];
- [root presentViewController:activityVC animated:YES completion:nil];
- return true;
- }
- void messageComposeViewController(MFMessageComposeViewController* controller)
- {
- NSLog(@"messageComposeViewController");
- UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController];
- // Close the Mail Interface
- [root dismissViewControllerAnimated:YES completion:nil];
- }
- void didFinishWithResult(MessageComposeResult result)
- {
- NSLog(@"didFinishWithResult");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement