Skip to content

Commit

Permalink
Merge pull request frispgames#3 from frispgames/fix-ipad-issue
Browse files Browse the repository at this point in the history
Update the social code to run async and support iOS 7, 8 and 9
  • Loading branch information
treacher committed May 23, 2016
2 parents 5857fbc + 52c6d81 commit d2e7a0c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions Assets/Plugins/iOS/FrispGames/Social/FGSocial.mm
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
#import "FGSocial.h"
#define IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

@implementation FGSocial

- (void) share:(NSString *)text media:(NSString *) media {
UIActivityViewController *socialViewController;

// Create image from image data
NSData *imageData = [[NSData alloc] initWithBase64EncodedString:media options: 0];
UIImage *image = [[UIImage alloc] initWithData:imageData];

socialViewController = [[UIActivityViewController alloc] initWithActivityItems:@[text, image] applicationActivities:nil];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIActivityViewController *socialViewController = [[UIActivityViewController alloc] initWithActivityItems:@[text, image] applicationActivities:nil];

UIViewController *viewController = UnityGetGLViewController();

// required by iOS 8.
if([socialViewController respondsToSelector:@selector(popoverPresentationController)]) {
socialViewController.popoverPresentationController.sourceView = viewController.view;
}

UIViewController *rootViewController = [[[[UIApplication sharedApplication]delegate] window] rootViewController];
if (IPAD) {
CGRect midScreen = CGRectMake(rootViewController.view.frame.size.width/2, rootViewController.view.frame.size.height/4, 0, 0);
UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:socialViewController];
[popup presentPopoverFromRect:midScreen inView:rootViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
} else {
[rootViewController presentViewController:socialViewController animated:YES completion:nil];
}
dispatch_async(dispatch_get_main_queue(), ^{
[viewController presentViewController:socialViewController animated:YES completion:nil];
});
});
}

extern "C" {
Expand Down
Binary file modified package/frisp-social.unitypackage
Binary file not shown.

0 comments on commit d2e7a0c

Please sign in to comment.