Commit edce21d5b933dd65855110801afbcabf9cfcc354
1 parent
eb8200fd
Exists in
IosBuild
Finish IOS Build
Showing
11 changed files
with
333 additions
and
273 deletions
Show diff stats
.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 |