diff --git a/Podfile.lock b/Podfile.lock
index e0ae6e9..be4ddf5 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -71,7 +71,7 @@ CHECKOUT OPTIONS:
:git: https://github.com/Gkpsundar/SocketRocket.git
SPEC CHECKSUMS:
- AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
+ AFNetworking: cb604b1c2bded0871f5f61f5d53653739e841d6b
CocoaLumberjack: db7cc9e464771f12054c22ff6947c5a58d43a0fd
FFmpeg-static: f61924a6708db56927f6ed9e744848c1697301e3
GPUImage: 733a5f0fab92df9de1c37ba9df520a833ccb406d
@@ -79,6 +79,6 @@ SPEC CHECKSUMS:
Romo: 4fccb6b3e8e1af1b50cae0e7d1ce22a3c50c91c4
SocketRocket: dbb1554b8fc288ef8ef370d6285aeca7361be31e
-PODFILE CHECKSUM: dae751e0da5fc6282d858b88258c4a1dd421d705
+PODFILE CHECKSUM: 46d3e6fb245193dcbc67c2c80e4899133c984234
-COCOAPODS: 1.11.3
+COCOAPODS: 1.15.2
diff --git a/Romo Control/Supporting Files/RMControl-Info.plist b/Romo Control/Supporting Files/RMControl-Info.plist
index 39795ce..cdb126d 100644
--- a/Romo Control/Supporting Files/RMControl-Info.plist
+++ b/Romo Control/Supporting Files/RMControl-Info.plist
@@ -48,9 +48,9 @@
NSMicrophoneUsageDescription
For two-way communication between Romo and this app
NSPhotoLibraryAddUsageDescription
- Romo Control needs to store pictures taken with Romo
+ Allow saving photos to your library
NSPhotoLibraryUsageDescription
- Allow saving photos to library
+ Allow saving photos to your library
UIAppFonts
Brandon-Bold.otf
diff --git a/Romo Control/src/Controller/RMWiFiDriveRemoteVC.m b/Romo Control/src/Controller/RMWiFiDriveRemoteVC.m
index 7f9eaa5..1f04ab3 100644
--- a/Romo Control/src/Controller/RMWiFiDriveRemoteVC.m
+++ b/Romo Control/src/Controller/RMWiFiDriveRemoteVC.m
@@ -26,6 +26,7 @@
#import "RMControlInputMenu.h"
#import
#import "RMGameController.h"
+#import
@interface RMWiFiDriveRemoteVC () {
@@ -351,6 +352,10 @@ - (void)didTouchBackButton:(UIButton *)backButton
- (void)didTouchPhotosButton:(id)sender
{
[self dismissPopovers];
+
+ [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
+ [self handlePhotoAuthorizationStatus:status];
+ }];
RMRemotePhotoVC *photoVC = [[RMRemotePhotoVC alloc] init];
photoVC.photos = self.capturedPhotos;
@@ -359,6 +364,23 @@ - (void)didTouchPhotosButton:(id)sender
[self presentViewController:photoVC animated:YES completion:nil];
}
+- (void)handlePhotoAuthorizationStatus:(PHAuthorizationStatus)status {
+ switch (status) {
+ case PHAuthorizationStatusAuthorized:
+ // Access has been granted.
+ break;
+ case PHAuthorizationStatusDenied:
+ case PHAuthorizationStatusRestricted:
+ // Access has been denied or restricted.
+ break;
+ case PHAuthorizationStatusNotDetermined:
+ // The user hasn't decided yet; we could prompt again.
+ break;
+ default:
+ break;
+ }
+}
+
- (void)handlePhotoVCDismissButtonTouch:(UIButton *)button
{
[self dismissViewControllerAnimated:YES completion:nil];
diff --git a/Romo.xcodeproj/project.pbxproj b/Romo.xcodeproj/project.pbxproj
index 4a8c5f1..1d22479 100644
--- a/Romo.xcodeproj/project.pbxproj
+++ b/Romo.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 52;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -3416,7 +3416,6 @@
ORGANIZATIONNAME = Romotive;
TargetAttributes = {
7130FD2517C42BAD0025B605 = {
- DevelopmentTeam = 52RU2XXUH6;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.InAppPurchase = {
@@ -3426,7 +3425,6 @@
};
AF8EF18621CD649D0025F16B = {
CreatedOnToolsVersion = 10.1;
- DevelopmentTeam = 52RU2XXUH6;
ProvisioningStyle = Automatic;
};
};
@@ -4495,8 +4493,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
- CURRENT_PROJECT_VERSION = 2.3.4;
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ CURRENT_PROJECT_VERSION = 2.3.10;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Romo Control/Supporting Files/RMControl-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -4512,7 +4510,7 @@
"\"$SRCROOT/lib/Drive/RomoAV/AVCEncoder\"",
);
INFOPLIST_FILE = "$(SRCROOT)/Romo Control/Supporting Files/RMControl-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"@executable_path/Frameworks",
"$(inherited)",
@@ -4549,8 +4547,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
- CURRENT_PROJECT_VERSION = 2.3.4;
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ CURRENT_PROJECT_VERSION = 2.3.10;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
ENABLE_NS_ASSERTIONS = NO;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Romo Control/Supporting Files/RMControl-Prefix.pch";
@@ -4567,7 +4565,7 @@
"\"$SRCROOT/lib/Drive/RomoAV/AVCEncoder\"",
);
INFOPLIST_FILE = "$(SRCROOT)/Romo Control/Supporting Files/RMControl-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"@executable_path/Frameworks",
"$(inherited)",
@@ -4661,9 +4659,9 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2.3.4;
+ CURRENT_PROJECT_VERSION = 2.5.1;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Supporting Files/Romo-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -4687,6 +4685,7 @@
"\"$(SRCROOT)/lib/ext/h264bitstream\"",
);
INFOPLIST_FILE = "Supporting Files/Romo-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -4696,7 +4695,7 @@
"$(PROJECT_DIR)/lib/ext/libav",
"$(PROJECT_DIR)/lib/ext/mobile-ffmpeg/lib",
);
- MARKETING_VERSION = 2.3;
+ MARKETING_VERSION = 2.5;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.navideck.romoSimulated;
@@ -4720,8 +4719,8 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
- CURRENT_PROJECT_VERSION = 2.3.4;
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ CURRENT_PROJECT_VERSION = 2.3.10;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Romo Control/Supporting Files/RMControl-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -4737,7 +4736,7 @@
"\"$SRCROOT/lib/Drive/RomoAV/AVCEncoder\"",
);
INFOPLIST_FILE = "$(SRCROOT)/Romo Control/Supporting Files/RMControl-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"@executable_path/Frameworks",
"$(inherited)",
@@ -4775,9 +4774,9 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = Romo.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 2.3.4;
+ CURRENT_PROJECT_VERSION = 2.5.1;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Supporting Files/Romo-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -4801,6 +4800,7 @@
"\"$(SRCROOT)/lib/ext/h264bitstream\"",
);
INFOPLIST_FILE = "Supporting Files/Romo-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -4810,7 +4810,7 @@
"$(PROJECT_DIR)/lib/ext/libav",
"$(PROJECT_DIR)/lib/ext/mobile-ffmpeg/lib",
);
- MARKETING_VERSION = 2.3;
+ MARKETING_VERSION = 2.5;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.romotive.romo;
@@ -4837,9 +4837,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2.3.4;
+ CURRENT_PROJECT_VERSION = 2.5.1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = 52RU2XXUH6;
+ DEVELOPMENT_TEAM = QQAZR43YM7;
ENABLE_NS_ASSERTIONS = NO;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREFIX_HEADER = "Supporting Files/Romo-Prefix.pch";
@@ -4860,6 +4860,7 @@
"\"$(SRCROOT)/lib/ext/h264bitstream\"",
);
INFOPLIST_FILE = "Supporting Files/Romo-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -4869,7 +4870,7 @@
"$(PROJECT_DIR)/lib/ext/libav",
"$(PROJECT_DIR)/lib/ext/mobile-ffmpeg/lib",
);
- MARKETING_VERSION = 2.3;
+ MARKETING_VERSION = 2.5;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.navideck.RomoX;
diff --git a/Supporting Files/Romo-Info.plist b/Supporting Files/Romo-Info.plist
index c8972c4..9d2694a 100644
--- a/Supporting Files/Romo-Info.plist
+++ b/Supporting Files/Romo-Info.plist
@@ -46,6 +46,8 @@
Make your Romo discoverable on your network
NSMicrophoneUsageDescription
For two-way communication between Romo and the Romo Control App
+ NSPhotoLibraryAddUsageDescription
+ Allow saving photos to your library
NSPhotoLibraryUsageDescription
Allow saving photos to your library
UIAppFonts
diff --git a/src/Missions/Editor/Compiling/RMCompilingVC.m b/src/Missions/Editor/Compiling/RMCompilingVC.m
index fa3c46e..076ca58 100644
--- a/src/Missions/Editor/Compiling/RMCompilingVC.m
+++ b/src/Missions/Editor/Compiling/RMCompilingVC.m
@@ -16,7 +16,7 @@
#import "RMParameter.h"
#import "RMSoundEffect.h"
#import "RMAlertView.h"
-#import
+//#import
#define compileStepCount 3
#define kNumCompilingSounds 8
@@ -94,15 +94,6 @@ - (void)compile
case 1: {
self.progress = 0.55 + (float)(arc4random() % 15)/100.0;
self.titleLabel.text = NSLocalizedString(@"Compile-Stage-2", @"Compiling...");
-
- if (self.missionNeedsToSavePhotos) {
- if (!self.hasPermissionToSavePhotos) {
- [[[RMAlertView alloc] initWithTitle:NSLocalizedString(@"Compile-PhotoPerms-Alert-Title", @"Photo Permission Needed")
- message:NSLocalizedString(@"Compile-PhotoPerms-Alert-Message", @"For Romo to take photos and videos, allow access to your Photo Library.\n\nOpen the Settings app > Privacy > Photos.\n\nThen enable access for Romo.")
- delegate:self] show];
- return;
- }
- }
break;
}
@@ -148,22 +139,22 @@ - (void)alertViewDidDismiss:(RMAlertView *)alertView
[self.delegate compilingVCDidFailToCompile:self];
}
-#pragma mark - Private Properties
-
-- (BOOL)missionNeedsToSavePhotos
-{
- __block BOOL hasCameraAction = NO;
- [self.mission.inputScripts enumerateObjectsUsingBlock:^(NSArray *script, NSUInteger idx, BOOL *stop) {
- [script enumerateObjectsUsingBlock:^(RMAction *action, NSUInteger idx, BOOL *scriptStop) {
- if ([action.library isEqualToString:@"Camera"]) {
- hasCameraAction = YES;
- *stop = YES;
- *scriptStop = YES;
- }
- }];
- }];
- return hasCameraAction;
-}
+//#pragma mark - Private Properties
+
+//- (BOOL)missionNeedsToSavePhotos
+//{
+// __block BOOL hasCameraAction = NO;
+// [self.mission.inputScripts enumerateObjectsUsingBlock:^(NSArray *script, NSUInteger idx, BOOL *stop) {
+// [script enumerateObjectsUsingBlock:^(RMAction *action, NSUInteger idx, BOOL *scriptStop) {
+// if ([action.library isEqualToString:@"Camera"]) {
+// hasCameraAction = YES;
+// *stop = YES;
+// *scriptStop = YES;
+// }
+// }];
+// }];
+// return hasCameraAction;
+//}
- (BOOL)missionNeedsMicrophone
{
@@ -177,16 +168,6 @@ - (BOOL)missionNeedsMicrophone
return hasLoudSoundEvent;
}
-- (BOOL)hasPermissionToSavePhotos
-{
- if (@available(iOS 8, *)) {
- return [PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusAuthorized;
- } else {
- return [ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusAuthorized;
- }
-
-}
-
- (BOOL)hasMicrophonePermission
{
// Older versions of iOS don't require permission to access the microphone