Commit edce21d5b933dd65855110801afbcabf9cfcc354

Authored by caio.marcelo
1 parent eb8200fd
Exists in IosBuild

Finish IOS Build

.DS_Store
No preview for this file type
Assets/.DS_Store
No preview for this file type
Assets/Plugins/.DS_Store
No preview for this file type
Assets/Plugins/IOS/.DS_Store
No preview for this file type
Assets/Plugins/IOS/iOSNativeShare.h
1 -#import "UnityAppController.h"  
2 -  
3 -@interface iOSNativeShare : UIViewController  
4 -{  
5 - UINavigationController *navController;  
6 -}  
7 -  
8 -  
9 -struct ConfigStruct {  
10 - char* title;  
11 - char* message;  
12 -};  
13 -  
14 -struct SocialSharingStruct {  
15 - char* text;  
16 - char* url;  
17 - char* image;  
18 - char* subject;  
19 -};  
20 -  
21 -  
22 -#ifdef __cplusplus  
23 -extern "C" {  
24 -#endif  
25 -  
26 - void showAlertMessage(struct ConfigStruct *confStruct);  
27 - void showSocialSharing(struct SocialSharingStruct *confStruct);  
28 - void sendToGallery(struct ConfigStruct *confStruct);  
29 -  
30 -#ifdef __cplusplus  
31 -}  
32 -#endif  
33 -  
34 -  
35 -@end 1 +#import "UnityAppController.h"
  2 +
  3 +
  4 +@interface iOSNativeShare : UIViewController
  5 +{
  6 + UINavigationController *navController;
  7 +}
  8 +
  9 +
  10 +struct ConfigStruct {
  11 + char* title;
  12 + char* message;
  13 +};
  14 +
  15 +struct SocialSharingStruct {
  16 + char* text;
  17 + char* url;
  18 + char* image;
  19 + char* subject;
  20 +};
  21 +
  22 +
  23 +#ifdef __cplusplus
  24 +extern "C" {
  25 +#endif
  26 +
  27 + void showAlertMessage(struct ConfigStruct *confStruct);
  28 + void showSocialSharing(struct SocialSharingStruct *confStruct);
  29 + void sendToGallery(struct ConfigStruct *confStruct);
  30 + void askForPermission(struct ConfigStruct *confStruct);
  31 +
  32 +#ifdef __cplusplus
  33 +}
  34 +#endif
  35 +
  36 +
  37 +@end
Assets/Plugins/IOS/iOSNativeShare.m
1 -#import "iOSNativeShare.h"  
2 -  
3 -@implementation iOSNativeShare{  
4 -}  
5 -  
6 -#ifdef UNITY_4_0 || UNITY_5_0  
7 -  
8 -#import "iPhone_View.h"  
9 -  
10 -#else  
11 -  
12 -extern UIViewController* UnityGetGLViewController();  
13 -  
14 -#endif  
15 -  
16 -+(id) withTitle:(char*)title withMessage:(char*)message{  
17 -  
18 - return [[iOSNativeShare alloc] initWithTitle:title withMessage:message];  
19 -}  
20 -  
21 --(id) initWithTitle:(char*)title withMessage:(char*)message{  
22 -  
23 - self = [super init];  
24 -  
25 - if( !self ) return self;  
26 -  
27 - ShowAlertMessage([[NSString alloc] initWithUTF8String:title], [[NSString alloc] initWithUTF8String:message]);  
28 -  
29 - return self;  
30 -  
31 -}  
32 -  
33 -+(id) withTitle:(char*)path{  
34 -  
35 - return [[iOSNativeShare alloc] initWithTitle:path];  
36 -}  
37 -  
38 --(id) initWithTitle:(char*)path {  
39 -  
40 - self = [super init];  
41 -  
42 - if( !self ) return self;  
43 -  
44 - SendToGallery([[NSString alloc] initWithUTF8String:path]);  
45 -  
46 - return self;  
47 -  
48 -}  
49 -  
50 -void SendToGallery(NSString *path){  
51 - if(UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(path)){  
52 - //UISaveVideoAtPathToSavedPhotosAlbum (path,self, nil, nil);  
53 - UISaveVideoAtPathToSavedPhotosAlbum (path,nil, nil, nil);  
54 - //ShowAlertMessage(@"Vlibras Vídeo",@"Video salvo na galeria.");  
55 - }  
56 -}  
57 -  
58 -  
59 -void ShowAlertMessage (NSString *title, NSString *message){  
60 -  
61 - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title  
62 -  
63 - message:message  
64 -  
65 - delegate:nil  
66 -  
67 - cancelButtonTitle:@"OK"  
68 -  
69 - otherButtonTitles: nil];  
70 -  
71 - [alert show];  
72 -  
73 -}  
74 -  
75 -+(id) withText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{  
76 -  
77 - return [[iOSNativeShare alloc] initWithText:text withURL:url withImage:image withSubject:subject];  
78 -}  
79 -  
80 --(id) initWithText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{  
81 -  
82 - self = [super init];  
83 -  
84 - if( !self ) return self;  
85 -  
86 -  
87 -  
88 - NSString *mText = text ? [[NSString alloc] initWithUTF8String:text] : nil;  
89 -  
90 - NSString *mUrl = url ? [[NSString alloc] initWithUTF8String:url] : nil;  
91 -  
92 - NSString *mImage = image ? [[NSString alloc] initWithUTF8String:image] : nil;  
93 -  
94 - NSString *mSubject = subject ? [[NSString alloc] initWithUTF8String:subject] : nil;  
95 -  
96 -  
97 - //NSMutableArray *items = [NSMutableArray new];  
98 - NSArray *postItems = [NSArray new];  
99 -  
100 - if(mImage != NULL && mImage.length > 0){  
101 -  
102 - NSFileManager *fileMgr = [NSFileManager defaultManager];  
103 - if([fileMgr fileExistsAtPath:mImage]){  
104 -  
105 - //NSData *dataImage = [NSData dataWithContentsOfFile:mImage];  
106 -  
107 - // UIImage *imageFromUrl = [UIImage imageWithData:dataImage];  
108 - NSData *data = [[NSData alloc] initWithContentsOfFile:mImage];  
109 - NSURL *videoURL = [NSURL fileURLWithPath:mImage];  
110 -  
111 - // [items addObject:videoURL];  
112 - postItems = @[videoURL];  
113 - //NSArray *postItems = @[videoURL];  
114 - }else{  
115 - ShowAlertMessage(@"Error", @"Cannot find image");  
116 - }  
117 -  
118 - }  
119 -  
120 - // UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:Nil];  
121 - //  
122 - // if(mSubject != NULL) {  
123 - // [activity setValue:mSubject forKey:@"subject"];  
124 - // } else {  
125 - // [activity setValue:@"" forKey:@"subject"];  
126 - // }  
127 - //  
128 - // UIViewController *rootViewController = UnityGetGLViewController();  
129 - // //if iPhone  
130 - // if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {  
131 - // [rootViewController presentViewController:activity animated:YES completion:Nil];  
132 - // }  
133 - // //if iPad  
134 - // else {  
135 - // // Change Rect to position Popover  
136 - // UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activity];  
137 - // [popup presentPopoverFromRect:CGRectMake(rootViewController.view.frame.size.width/2, rootViewController.view.frame.size.height/4, 0, 0)inView:rootViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  
138 - // }  
139 -  
140 - UIActivityViewController *activityVc = [[UIActivityViewController alloc]initWithActivityItems:postItems applicationActivities:nil];  
141 - if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [activityVc respondsToSelector:@selector(popoverPresentationController)] ) {  
142 - UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVc];  
143 - [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)  
144 - inView:[UIApplication sharedApplication].keyWindow.rootViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  
145 - }  
146 - else  
147 - [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activityVc animated:YES completion:nil];  
148 -  
149 -  
150 - return self;  
151 -}  
152 -  
153 -# pragma mark - C API  
154 -iOSNativeShare* instance;  
155 -  
156 -void showAlertMessage(struct ConfigStruct *confStruct) {  
157 - instance = [iOSNativeShare withTitle:confStruct->title withMessage:confStruct->message];  
158 -}  
159 -void sendToGallery(struct ConfigStruct *confStruct) {  
160 - instance = [iOSNativeShare withTitle:confStruct->title];  
161 -}  
162 -  
163 -void showSocialSharing(struct SocialSharingStruct *confStruct) {  
164 - instance = [iOSNativeShare withText:confStruct->text withURL:confStruct->url withImage:confStruct->image withSubject:confStruct->subject];  
165 -}  
166 -  
167 -@end 1 +#import "iOSNativeShare.h"
  2 +#import <AssetsLibrary/ALAssetsLibrary.h>
  3 +#import <Photos/Photos.h>
  4 +
  5 +
  6 +
  7 +@implementation iOSNativeShare{
  8 +}
  9 +
  10 +#ifdef UNITY_4_0 || UNITY_5_0
  11 +
  12 +#import "iPhone_View.h"
  13 +
  14 +#else
  15 +
  16 +extern UIViewController* UnityGetGLViewController();
  17 +
  18 +#endif
  19 +
  20 +static NSURL *video;
  21 +
  22 +
  23 +
  24 +ALAssetsLibrary* defaultAssetsLibrary() {
  25 + static dispatch_once_t pred = 0;
  26 + static ALAssetsLibrary *library = nil;
  27 + dispatch_once(&pred, ^{
  28 + library = [[ALAssetsLibrary alloc] init];
  29 + });
  30 + return library;
  31 +}
  32 +
  33 +
  34 ++(id) withTitle:(char*)title withMessage:(char*)message{
  35 +
  36 + return [[iOSNativeShare alloc] initWithTitle:title withMessage:message];
  37 +}
  38 +
  39 +-(id) initWithTitle:(char*)title withMessage:(char*)message{
  40 +
  41 + self = [super init];
  42 +
  43 + if( !self ) return self;
  44 +
  45 + ShowAlertMessage([[NSString alloc] initWithUTF8String:title], [[NSString alloc] initWithUTF8String:message]);
  46 +
  47 + return self;
  48 +
  49 +}
  50 +
  51 ++(id) withTitle:(char*)path{
  52 +
  53 + return [[iOSNativeShare alloc] initWithTitle:path];
  54 +}
  55 +
  56 +-(id) initWithTitle:(char*)path {
  57 +
  58 + self = [super init];
  59 +
  60 + if( !self ) return self;
  61 +
  62 + SendToGallery([[NSString alloc] initWithUTF8String:path]);
  63 +
  64 + return self;
  65 +
  66 +}
  67 +
  68 ++(id) withTitleSubtitle:(char*)title withSubtitle:(char*)message{
  69 +
  70 + return [[iOSNativeShare alloc] initWithTitleSubtitle: title withSubtitle:message];
  71 +
  72 +
  73 +}
  74 +
  75 +-(id) initWithTitleSubtitle: (char*)object withSubtitle:(char*)methodName{
  76 + self = [super init];
  77 +
  78 + if( !self ) return self;
  79 +
  80 + AskForPermission( object,methodName);
  81 +
  82 + return self;
  83 +}
  84 +
  85 +void AskForPermission( char *object, char *method){
  86 +
  87 +
  88 + PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
  89 +
  90 + if (status == PHAuthorizationStatusAuthorized) {
  91 + UnitySendMessage(object, method, "PERMITIDO");
  92 + }
  93 +
  94 + else if (status == PHAuthorizationStatusDenied) {
  95 + UnitySendMessage(object, method, "NAOPERMITIDO");
  96 + }
  97 +
  98 + else if (status == PHAuthorizationStatusNotDetermined) {
  99 +
  100 + // Access has not been determined.
  101 + [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
  102 +
  103 + if (status == PHAuthorizationStatusAuthorized) {
  104 + UnitySendMessage(object, method, "PERMITIDO");
  105 + }
  106 +
  107 + else {
  108 + UnitySendMessage(object, method, "NAOPERMITIDO");
  109 + }
  110 + }];
  111 + }
  112 +
  113 + else if (status == PHAuthorizationStatusRestricted) {
  114 + UnitySendMessage(object, method, "NAOPERMITIDO");
  115 + }
  116 +
  117 +
  118 +}
  119 +
  120 +void SendToGallery(NSString *path){
  121 +
  122 +
  123 + // if(UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(path)){
  124 + //UISaveVideoAtPathToSavedPhotosAlbum (path,self, nil, nil);
  125 + // UISaveVideoAtPathToSavedPhotosAlbum (path,nil, nil, nil);
  126 + //ShowAlertMessage(@"Vlibras Vídeo",@"Video salvo na galeria.");
  127 + //}
  128 + NSURL *videoURL = [NSURL fileURLWithPath:path];
  129 + ALAssetsLibrary *assetLibrary = defaultAssetsLibrary();
  130 +
  131 + [assetLibrary writeVideoAtPathToSavedPhotosAlbum:videoURL completionBlock:^(NSURL *assetURL, NSError *error){
  132 + if(error) {
  133 + NSLog(@"error while saving to camera roll %@",[error localizedDescription]);
  134 + UnitySendMessage("ShareIOS", "SaveGalleryResponse", "ERROR");
  135 + } else {
  136 + //For removing the back up copy from the documents directory
  137 + NSError *removeError = nil;
  138 + video = assetURL;
  139 + NSLog(@"Path: %@",assetURL);
  140 +
  141 + // [[NSFileManager defaultManager] removeItemAtURL:videoURL error:&removeError];
  142 + UnitySendMessage("ShareIOS", "SaveGalleryResponse", "SUCESS");
  143 +
  144 + }
  145 + }];
  146 +}
  147 +
  148 +
  149 +void ShowAlertMessage (NSString *title, NSString *message){
  150 +
  151 + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
  152 +
  153 + message:message
  154 +
  155 + delegate:nil
  156 +
  157 + cancelButtonTitle:@"OK"
  158 +
  159 + otherButtonTitles: nil];
  160 +
  161 + [alert show];
  162 +
  163 +}
  164 +
  165 ++(id) withText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{
  166 +
  167 + return [[iOSNativeShare alloc] initWithText:text withURL:url withImage:image withSubject:subject];
  168 +}
  169 +
  170 +-(id) initWithText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{
  171 +
  172 + self = [super init];
  173 +
  174 + if( !self ) return self;
  175 +
  176 + //NSMutableArray *items = [NSMutableArray new];
  177 + NSArray *postItems = [NSArray new];
  178 +
  179 + postItems = @[video];
  180 + UIActivityViewController *activityVc = [[UIActivityViewController alloc]initWithActivityItems:postItems applicationActivities:nil];
  181 + if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [activityVc respondsToSelector:@selector(popoverPresentationController)] ) {
  182 + UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVc];
  183 + [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)
  184 + inView:[UIApplication sharedApplication].keyWindow.rootViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  185 + }
  186 + else
  187 + [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activityVc animated:YES completion:nil];
  188 +
  189 +
  190 + return self;
  191 +}
  192 +
  193 +# pragma mark - C API
  194 +iOSNativeShare* instance;
  195 +
  196 +void showAlertMessage(struct ConfigStruct *confStruct) {
  197 + instance = [iOSNativeShare withTitle:confStruct->title withMessage:confStruct->message];
  198 +}
  199 +void sendToGallery(struct ConfigStruct *confStruct) {
  200 + instance = [iOSNativeShare withTitle:confStruct->title];
  201 +}
  202 +
  203 +void showSocialSharing(struct SocialSharingStruct *confStruct) {
  204 + instance = [iOSNativeShare withText:confStruct->text withURL:confStruct->url withImage:confStruct->image withSubject:confStruct->subject];
  205 +}
  206 +
  207 +void askForPermission(struct ConfigStruct *confStruct){
  208 + instance = [iOSNativeShare withTitleSubtitle:confStruct->title withSubtitle:confStruct->message];
  209 +
  210 +}
  211 +@end
Assets/Scenes/Main.unity
@@ -3592,53 +3592,53 @@ Animation: @@ -3592,53 +3592,53 @@ Animation:
3592 m_GameObject: {fileID: 535548070} 3592 m_GameObject: {fileID: 535548070}
3593 m_Enabled: 1 3593 m_Enabled: 1
3594 serializedVersion: 3 3594 serializedVersion: 3
3595 - m_Animation: {fileID: 7400000, guid: f30af7c2c0e25834596c036ffc483e8d, type: 2} 3595 + m_Animation: {fileID: 7400000, guid: e0b82ea10d92c45a49236639d7e127a7, type: 2}
3596 m_Animations: 3596 m_Animations:
3597 - - {fileID: 7400000, guid: 024715f83bda3a24e845e4380e74b282, type: 2}  
3598 - - {fileID: 7400000, guid: 0b1faa650ee11974bb7b2688b8f77d9e, type: 2}  
3599 - - {fileID: 7400000, guid: 192e5450bc9b51249a4695055efa808e, type: 2}  
3600 - - {fileID: 7400000, guid: 1962fa434eeeb6f4289ee601a7d750e9, type: 2}  
3601 - - {fileID: 7400000, guid: 1e76a7ed8eda9e3418938f9f4bade52a, type: 2}  
3602 - - {fileID: 7400000, guid: 307a3165c8fa5ec4e9e1dbd14c938201, type: 2}  
3603 - - {fileID: 7400000, guid: 3ae51d5645a3e844aa539b198f435fb7, type: 2}  
3604 - - {fileID: 7400000, guid: 3bcf756871574ae4f8098ecde067d0c5, type: 2}  
3605 - - {fileID: 7400000, guid: 3bf1eb146bbc3df488121950abe1b8cf, type: 2}  
3606 - - {fileID: 7400000, guid: 43e3f3c6f22a59f4b9a9fe7c7eaa2e60, type: 2}  
3607 - - {fileID: 7400000, guid: 47abf9561f7dc544fbd158a753c48030, type: 2}  
3608 - - {fileID: 7400000, guid: 4f5d38ce9a4791a45a65a6d5cf651942, type: 2}  
3609 - - {fileID: 7400000, guid: 6157701b991b24d46903d222e5733a65, type: 2}  
3610 - - {fileID: 7400000, guid: 6738b13e2a5c77b419d466a9b07b93da, type: 2}  
3611 - - {fileID: 7400000, guid: 6c071acda0226cc4682dd95a24ba34c7, type: 2}  
3612 - - {fileID: 7400000, guid: 70717780c0ae91c4fa79d0230c07e877, type: 2}  
3613 - - {fileID: 7400000, guid: 71670a3ee1d3fd84d881cdcbe35aac33, type: 2}  
3614 - - {fileID: 7400000, guid: 75124670012910744b6b20baa43f6773, type: 2}  
3615 - - {fileID: 7400000, guid: 78643954b61e2af40855b1d7edb59e68, type: 2}  
3616 - - {fileID: 7400000, guid: 8105d762612034947a4e8aa08e6e743a, type: 2}  
3617 - - {fileID: 7400000, guid: 83b94fb00e13b6441b62d3c50f8fc057, type: 2}  
3618 - - {fileID: 7400000, guid: 8486f353c66ec3747ac807d5254ab572, type: 2}  
3619 - - {fileID: 7400000, guid: 865af1e6ffb998e4391c1f5a4fa963f4, type: 2}  
3620 - - {fileID: 7400000, guid: 89844a05f01e2884db62dfc23e3bb020, type: 2}  
3621 - - {fileID: 7400000, guid: 8d329b13dcec31a43a5a846e2e002e08, type: 2}  
3622 - - {fileID: 7400000, guid: 9c285cd93505250428536521f358b998, type: 2}  
3623 - - {fileID: 7400000, guid: a70ed1e393ddc29418dd2055d0fa69ea, type: 2}  
3624 - - {fileID: 7400000, guid: b3c940c8bb0a40d4197bab5861c5f147, type: 2}  
3625 - - {fileID: 7400000, guid: b557ac09196b9c245b4bf0aa00511bcf, type: 2}  
3626 - - {fileID: 7400000, guid: b55e4eebb1540b24f9dee194b2621df3, type: 2}  
3627 - - {fileID: 7400000, guid: b8ec32612eba3c94c8b9e075a2b84cd5, type: 2}  
3628 - - {fileID: 7400000, guid: bb38a59cd20338341ae0bc9c73cd88b6, type: 2}  
3629 - - {fileID: 7400000, guid: c67e687da6409ef48b294fb4b0a48d5c, type: 2}  
3630 - - {fileID: 7400000, guid: cce493d72e67b4c49859605a34148c59, type: 2}  
3631 - - {fileID: 7400000, guid: d2fd3606f0e661044aee19011e22f191, type: 2}  
3632 - - {fileID: 7400000, guid: d50be78006beb2945a10f60a10832a15, type: 2}  
3633 - - {fileID: 7400000, guid: d5a9e2c65d62b07478c2a9c546209722, type: 2}  
3634 - - {fileID: 7400000, guid: d9d8762439eb57e43b4fd6cc957fd2bb, type: 2}  
3635 - - {fileID: 7400000, guid: e559c6348bb5e304aa4eccc562e061bb, type: 2}  
3636 - - {fileID: 7400000, guid: ea652f2c75fa62844afdcd1b896aa400, type: 2}  
3637 - - {fileID: 7400000, guid: ed250cdb586bb4b46b964189a7ce2788, type: 2}  
3638 - - {fileID: 7400000, guid: f30af7c2c0e25834596c036ffc483e8d, type: 2}  
3639 - - {fileID: 7400000, guid: f674d89e422b07a4384b425e639d0901, type: 2}  
3640 - - {fileID: 7400000, guid: f7f9e787f918e0f4a975903fc0866f68, type: 2}  
3641 - - {fileID: 7400000, guid: f9e186c4e38b30b458eb71901806aa4f, type: 2} 3597 + - {fileID: 7400000, guid: edc0fe305be934cfdaf262b2372efc9f, type: 2}
  3598 + - {fileID: 7400000, guid: 9f404de03117c44fcbf5c4bebbdebc39, type: 2}
  3599 + - {fileID: 7400000, guid: e0b82ea10d92c45a49236639d7e127a7, type: 2}
  3600 + - {fileID: 7400000, guid: b90260b13c6b043008a3231f0e325d8b, type: 2}
  3601 + - {fileID: 7400000, guid: daceeb12c57434b03ab14733724787b0, type: 2}
  3602 + - {fileID: 7400000, guid: 094c9782dfd1a4419b4300050525a196, type: 2}
  3603 + - {fileID: 7400000, guid: 3ff67392ee17d46e8b75e23614754596, type: 2}
  3604 + - {fileID: 7400000, guid: 8c3b08031b41a4af6a38cddd30b6b711, type: 2}
  3605 + - {fileID: 7400000, guid: 9a03fa44cc4e74406a490fa7a601eb2d, type: 2}
  3606 + - {fileID: 7400000, guid: 38aa20a48a06548d9946da7f3491fd79, type: 2}
  3607 + - {fileID: 7400000, guid: 6867e7a4c4a93433b85dd978831a5789, type: 2}
  3608 + - {fileID: 7400000, guid: d3a14cd4d3aef472f81d58456286f1da, type: 2}
  3609 + - {fileID: 7400000, guid: 87310cd5c3519409081aad5bc7d001f4, type: 2}
  3610 + - {fileID: 7400000, guid: e5df376619b5547418da0a4bb053a736, type: 2}
  3611 + - {fileID: 7400000, guid: a55f62e68785e4f16b38373c27770c2c, type: 2}
  3612 + - {fileID: 7400000, guid: 773b86077b0a9459eb0d40f9c6147238, type: 2}
  3613 + - {fileID: 7400000, guid: 723477075e06c43dca279006c68f629a, type: 2}
  3614 + - {fileID: 7400000, guid: 922333c7fb2f24607a2b6bc7eddc0c92, type: 2}
  3615 + - {fileID: 7400000, guid: bd4784c7f8ccc4dd6b9c0d3bca313258, type: 2}
  3616 + - {fileID: 7400000, guid: 93c97cf7199d14c8a85c6a47dfe96fdd, type: 2}
  3617 + - {fileID: 7400000, guid: 9fac8b289e9c34268bade7f7dc070255, type: 2}
  3618 + - {fileID: 7400000, guid: 2fdb4638c75f24f0aabd6cc76fb610c4, type: 2}
  3619 + - {fileID: 7400000, guid: 7f65fa3885c054b49ae6e5271be81d3f, type: 2}
  3620 + - {fileID: 7400000, guid: 75289ce9809d340a39e5d2d9896ef14e, type: 2}
  3621 + - {fileID: 7400000, guid: 46db7a3a687d6491c87b272ba4a3af9b, type: 2}
  3622 + - {fileID: 7400000, guid: b0298c4a0832c4567a80f0293805f766, type: 2}
  3623 + - {fileID: 7400000, guid: 7ccd4c6ab0ec54ceaa2946562f1a9498, type: 2}
  3624 + - {fileID: 7400000, guid: 99e6d1fa06bef4cffb3985c33858ab7f, type: 2}
  3625 + - {fileID: 7400000, guid: 353f223b7116a4871a1ed9cb10953fec, type: 2}
  3626 + - {fileID: 7400000, guid: 48640d5b0a6804e8a892d7e3f9878338, type: 2}
  3627 + - {fileID: 7400000, guid: d9a3268b5233b489489a6b406f5b560d, type: 2}
  3628 + - {fileID: 7400000, guid: 255d4ddbbcdac46d9917908e6dc83fbf, type: 2}
  3629 + - {fileID: 7400000, guid: 0a25b7eb696464a9ba3fedba28052f44, type: 2}
  3630 + - {fileID: 7400000, guid: 3953996c14ada434e8bece627ea272fb, type: 2}
  3631 + - {fileID: 7400000, guid: 24ccfe8cc110546aab2e9ea1edab0997, type: 2}
  3632 + - {fileID: 7400000, guid: d902aa4db6b5e44fe9153e04e901b357, type: 2}
  3633 + - {fileID: 7400000, guid: 8b46d8bdc57654882b802d8a424bbc64, type: 2}
  3634 + - {fileID: 7400000, guid: e0e4fafd1c404477a9330c24fad5c5d5, type: 2}
  3635 + - {fileID: 7400000, guid: 3b02e44ef03c5471c873718351272938, type: 2}
  3636 + - {fileID: 7400000, guid: 9d20ba4e0319344f29101e050835449a, type: 2}
  3637 + - {fileID: 7400000, guid: a2f710de3a93149d981cfd3643c29f5d, type: 2}
  3638 + - {fileID: 7400000, guid: 212a470f4d8764d3aab828715dcceadd, type: 2}
  3639 + - {fileID: 7400000, guid: ad8d4c5f8f40746fb809287d36da0da4, type: 2}
  3640 + - {fileID: 7400000, guid: 8043026f4179c4e36bf9c52857439067, type: 2}
  3641 + - {fileID: 7400000, guid: 829700cfb4bf84f01a308423418d482d, type: 2}
3642 m_WrapMode: 0 3642 m_WrapMode: 0
3643 m_PlayAutomatically: 1 3643 m_PlayAutomatically: 1
3644 m_AnimatePhysics: 0 3644 m_AnimatePhysics: 0
Assets/Scripts/Export Video/ExportVideo.cs
@@ -78,7 +78,7 @@ public class ExportVideo : MonoBehaviour { @@ -78,7 +78,7 @@ public class ExportVideo : MonoBehaviour {
78 } 78 }
79 79
80 80
81 - /* RunTime Android Permission being asked*/ 81 + /* RunTime IOS Permission being asked*/
82 private void onClickExport() 82 private void onClickExport()
83 { 83 {
84 PlayerLogger.Log("ExportVideo", "OnClickExport", "Starting Export..."); 84 PlayerLogger.Log("ExportVideo", "OnClickExport", "Starting Export...");
@@ -90,7 +90,8 @@ public class ExportVideo : MonoBehaviour { @@ -90,7 +90,8 @@ public class ExportVideo : MonoBehaviour {
90 90
91 91
92 private void Permitted(bool PermissionGranted) 92 private void Permitted(bool PermissionGranted)
93 - { 93 + {
  94 + PlayerLogger.Log ("ExportVideo", "Permitted", "Permission granted.");
94 if (PermissionGranted) 95 if (PermissionGranted)
95 { 96 {
96 int fiveTimesCount; 97 int fiveTimesCount;
Assets/Scripts/Export Video/MediaShareIOS.cs
@@ -26,7 +26,6 @@ using System.IO; @@ -26,7 +26,6 @@ using System.IO;
26 26
27 public class MediaShareIOS : MonoBehaviour { 27 public class MediaShareIOS : MonoBehaviour {
28 private static string path; 28 private static string path;
29 - private string VlibrasFolder = "VLibras";  
30 private string Filen = "VLibrasVideo_"; 29 private string Filen = "VLibrasVideo_";
31 private static string FilePath = ""; 30 private static string FilePath = "";
32 31
@@ -37,7 +36,6 @@ public class MediaShareIOS : MonoBehaviour { @@ -37,7 +36,6 @@ public class MediaShareIOS : MonoBehaviour {
37 { 36 {
38 path = Application.persistentDataPath; 37 path = Application.persistentDataPath;
39 PlayerLogger.Log("ExportVideo", "VideoDownload", "Writing at: " + path); 38 PlayerLogger.Log("ExportVideo", "VideoDownload", "Writing at: " + path);
40 - /*FilePath se refere ao nome que o arquivo será salvo. Este deve ser mantido como está.*/  
41 FilePath = Filen + CurrentTime + ".mp4"; 39 FilePath = Filen + CurrentTime + ".mp4";
42 /* Checking if folder Vlibras exists*/ 40 /* Checking if folder Vlibras exists*/
43 DirectoryInfo dir = new DirectoryInfo(path); 41 DirectoryInfo dir = new DirectoryInfo(path);
@@ -53,18 +51,19 @@ public class MediaShareIOS : MonoBehaviour { @@ -53,18 +51,19 @@ public class MediaShareIOS : MonoBehaviour {
53 SourceStream.Write(videoContent, 0, bytes); 51 SourceStream.Write(videoContent, 0, bytes);
54 SourceStream.Close(); 52 SourceStream.Close();
55 #if UNITY_IOS 53 #if UNITY_IOS
56 - ShareIOS.CallSendToGallery(Path.Combine(path,FilePath)); 54 + Action<bool> callBack = (response) => {
  55 + if(response)
  56 + finishWriting();
  57 + else
  58 + errorWriting();
  59 + };
  60 + ShareIOS.CallSendToGallery(Path.Combine(path,FilePath),callBack);
57 #endif 61 #endif
58 - yield return new WaitForSeconds(1.0f);  
59 -  
60 - finishWriting();  
61 -  
62 - 62 + yield return new WaitForSeconds(1.0f);
63 63
64 } 64 }
65 else 65 else
66 { 66 {
67 -  
68 67
69 errorWriting(); 68 errorWriting();
70 } 69 }
@@ -73,6 +72,7 @@ public class MediaShareIOS : MonoBehaviour { @@ -73,6 +72,7 @@ public class MediaShareIOS : MonoBehaviour {
73 yield break; 72 yield break;
74 73
75 } 74 }
  75 +
76 76
77 public void showAlert(string title,string message){ 77 public void showAlert(string title,string message){
78 #if UNITY_IOS 78 #if UNITY_IOS
@@ -86,24 +86,16 @@ public class MediaShareIOS : MonoBehaviour { @@ -86,24 +86,16 @@ public class MediaShareIOS : MonoBehaviour {
86 public IEnumerator ShareIntent(Action errorAction) { 86 public IEnumerator ShareIntent(Action errorAction) {
87 87
88 #if UNITY_IOS 88 #if UNITY_IOS
89 - if(File.Exists(Path.Combine(path,FilePath))){ 89 +
90 ShareIOS share = new ShareIOS(); 90 ShareIOS share = new ShareIOS();
91 PlayerLogger.Log("MediaShareIOS","ShareIntent","Trying to share video."); 91 PlayerLogger.Log("MediaShareIOS","ShareIntent","Trying to share video.");
92 try{ 92 try{
93 - share.Share("Vlibras Video",Path.Combine(path,FilePath),"",""); 93 + share.Share("Vlibras Video","","","");
94 }catch(Exception e){ 94 }catch(Exception e){
95 PlayerLogger.Log("MediaShareIOS", "ShareIntent", "Message: " + e.Message); 95 PlayerLogger.Log("MediaShareIOS", "ShareIntent", "Message: " + e.Message);
96 PlayerLogger.Log("MediaShareIOS", "ShareIntent", "Message: " + e.StackTrace); 96 PlayerLogger.Log("MediaShareIOS", "ShareIntent", "Message: " + e.StackTrace);
97 errorAction(); 97 errorAction();
98 } 98 }
99 -  
100 - }else{  
101 - PlayerLogger.Log("MediaShareIOS","ShareIntent","File doesnt exist");  
102 - errorAction();  
103 - }  
104 -  
105 -  
106 - //GeneralSharingiOSBridge.ShareTextWithImage (Path.Combine(path, FilePath), "Vlibras video");  
107 #endif 99 #endif
108 100
109 yield break; 101 yield break;
Assets/Scripts/Export Video/ShareIOS.cs
@@ -13,8 +13,10 @@ public class ShareIOS : MonoBehaviour { @@ -13,8 +13,10 @@ public class ShareIOS : MonoBehaviour {
13 private static ShareIOS instance; 13 private static ShareIOS instance;
14 14
15 private static Action<bool> PermittedAction; 15 private static Action<bool> PermittedAction;
  16 + private static Action<bool> SaveGallerySucess;
16 private static bool initialized = false; 17 private static bool initialized = false;
17 18
  19 +
18 public void Awake() 20 public void Awake()
19 { 21 {
20 instance = this; 22 instance = this;
@@ -85,7 +87,8 @@ public class ShareIOS : MonoBehaviour { @@ -85,7 +87,8 @@ public class ShareIOS : MonoBehaviour {
85 } 87 }
86 [DllImport ("__Internal")] private static extern void sendToGallery(ref ConfigStruct conf); 88 [DllImport ("__Internal")] private static extern void sendToGallery(ref ConfigStruct conf);
87 89
88 - public static void CallSendToGallery(string path){ 90 + public static void CallSendToGallery(string path,Action<bool>CallBack){
  91 + SaveGallerySucess = CallBack;
89 ConfigStruct conf = new ConfigStruct (); 92 ConfigStruct conf = new ConfigStruct ();
90 conf.title = path; 93 conf.title = path;
91 conf.message = ""; 94 conf.message = "";
@@ -120,10 +123,28 @@ public class ShareIOS : MonoBehaviour { @@ -120,10 +123,28 @@ public class ShareIOS : MonoBehaviour {
120 } 123 }
121 124
122 } 125 }
123 - PermittedAction = null; 126 +
124 127
125 128
126 } 129 }
127 130
  131 + private void SaveGalleryResponse(string response){
  132 + if (!initialized)
  133 + initialize ();
  134 + if (SaveGallerySucess != null) {
  135 + if (response == "SUCESS") {
  136 + SaveGallerySucess (true);
  137 +
  138 + } else {
  139 + SaveGallerySucess (false);
  140 + }
  141 +
  142 +
  143 +
  144 + }
  145 +
  146 +
  147 + }
  148 +
128 #endif 149 #endif
129 } 150 }
Assets/Scripts/VoiceRecognition.cs
@@ -34,7 +34,7 @@ public class VoiceRecognition { @@ -34,7 +34,7 @@ public class VoiceRecognition {
34 34
35 public VoiceRecognition() 35 public VoiceRecognition()
36 { 36 {
37 -#if !UNITY_EDITOR 37 + #if !UNITY_EDITOR && !UNITY_IOS
38 unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 38 unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
39 currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); 39 currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
40 #endif 40 #endif
@@ -43,7 +43,7 @@ public class VoiceRecognition { @@ -43,7 +43,7 @@ public class VoiceRecognition {
43 // Calls Google Speech from plugin method and returns recognized text 43 // Calls Google Speech from plugin method and returns recognized text
44 public string callRecognition() 44 public string callRecognition()
45 { 45 {
46 -#if !UNITY_EDITOR 46 +#if !UNITY_EDITOR && !UNITY_IOS
47 voiceText = currentActivity.Call<string>("callGoogleSpeech"); 47 voiceText = currentActivity.Call<string>("callGoogleSpeech");
48 #endif 48 #endif
49 49