Production logging & sign up error handling
This commit is contained in:
parent
6c2f33a6d5
commit
c69747e48b
1
Podfile
1
Podfile
|
@ -6,3 +6,4 @@ pod 'UICKeyChainStore', '~> 1.0.5'
|
|||
pod 'OpenSSL', '~> 1.0.108'
|
||||
pod 'MMDrawerController', '~> 0.5.0'
|
||||
pod 'libPhoneNumber-iOS', '~> 0.7'
|
||||
pod 'CocoaLumberjack'
|
||||
|
|
|
@ -3426,6 +3426,174 @@
|
|||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
B6B9EB4D196190F5009024F0 /* Ad-Hoc Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
|
||||
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
|
||||
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_RECEIVER_WEAK = YES;
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
||||
CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
|
||||
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES;
|
||||
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
|
||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||
GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
|
||||
GCC_WARN_SHADOW = YES;
|
||||
GCC_WARN_SIGN_COMPARE = YES;
|
||||
GCC_WARN_STRICT_SELECTOR_MATCH = YES;
|
||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_LABEL = YES;
|
||||
GCC_WARN_UNUSED_VALUE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
HEADER_SEARCH_PATHS = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
OTHER_CFLAGS = "-fobjc-arc-exceptions";
|
||||
PROVISIONING_PROFILE = "";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = "Ad-Hoc Distribution";
|
||||
};
|
||||
B6B9EB4E196190F5009024F0 /* Ad-Hoc Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C71793B33D9C45079F74487E /* Pods.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "Signal/Signal-Prefix.pch";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
HAVE_CONFIG_H,
|
||||
);
|
||||
GCC_STRICT_ALIASING = NO;
|
||||
GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO;
|
||||
GCC_WARN_STRICT_SELECTOR_MATCH = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"${SRCROOT}/RedPhone/lib/speex/include\"",
|
||||
"\"${SRCROOT}/RedPhone/lib/ogg/include\"",
|
||||
"\"${SRCROOT}/RedPhone/lib/debug/include\"",
|
||||
"\"$(SRCROOT)/libtommath\"",
|
||||
"\"$(SRCROOT)/libtomcrypt/headers\"",
|
||||
"\"$(SRCROOT)/spandsp/spandsp/spandsp\"",
|
||||
"\"$(SRCROOT)/MMDrawerController\"",
|
||||
"\"$(SRCROOT)/Libraries\"/**",
|
||||
);
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Signal/Signal-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)",
|
||||
);
|
||||
LLVM_LTO = NO;
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
PRODUCT_NAME = Signal;
|
||||
PROVISIONING_PROFILE = "B26CF658-AD7F-4F4C-B94F-74884941DF87";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TEST_AFTER_BUILD = YES;
|
||||
VALID_ARCHS = "arm64 armv7 armv7s i386";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = "Ad-Hoc Distribution";
|
||||
};
|
||||
B6B9EB4F196190F5009024F0 /* Ad-Hoc Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C71793B33D9C45079F74487E /* Pods.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Signal.app/Signal";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"\"$(SDKROOT)/Developer/Library/Frameworks\"",
|
||||
"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
|
||||
);
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "Signal/Signal-Prefix.pch";
|
||||
GCC_VERSION = "";
|
||||
GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO;
|
||||
GCC_WARN_STRICT_SELECTOR_MATCH = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"${PODS_HEADERS_SEARCH_PATHS}",
|
||||
"$(inherited)",
|
||||
"\"${SRCROOT}/Signal/lib/speex/include\"",
|
||||
"\"${SRCROOT}/Signal/lib/ogg/include\"",
|
||||
"\"${SRCROOT}/Signal/lib/debug/include\"",
|
||||
"\"$(SRCROOT)/libtommath\"",
|
||||
"\"$(SRCROOT)/libtomcrypt/headers\"",
|
||||
"\"$(SRCROOT)/spandsp/spandsp/spandsp\"",
|
||||
"\"$(SRCROOT)/Libraries\"/**",
|
||||
);
|
||||
INFOPLIST_FILE = "Signal/test/Supporting Files/SignalTests-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"$(inherited)",
|
||||
);
|
||||
PRODUCT_NAME = SignalTests;
|
||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||
VALID_ARCHS = "arm64 armv7s armv7 i386";
|
||||
WRAPPER_EXTENSION = octest;
|
||||
};
|
||||
name = "Ad-Hoc Distribution";
|
||||
};
|
||||
D221A0BA169C9E5F00537ABF /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
|
@ -3446,14 +3614,14 @@
|
|||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
||||
CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
|
@ -3489,14 +3657,14 @@
|
|||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_CFLAGS = "-fobjc-arc-exceptions";
|
||||
PROVISIONING_PROFILE = "25E52683-9ADD-415E-A1E0-63A1C7ECF872";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "25E52683-9ADD-415E-A1E0-63A1C7ECF872";
|
||||
PROVISIONING_PROFILE = "";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
D221A0BB169C9E5F00537ABF /* Release */ = {
|
||||
D221A0BB169C9E5F00537ABF /* App Store Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
@ -3516,12 +3684,13 @@
|
|||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
||||
CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_GENERATE_TEST_COVERAGE_FILES = NO;
|
||||
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
|
||||
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
|
@ -3555,25 +3724,25 @@
|
|||
"-DNS_BLOCK_ASSERTIONS=1",
|
||||
"-fobjc-arc-exceptions",
|
||||
);
|
||||
PROVISIONING_PROFILE = "25E52683-9ADD-415E-A1E0-63A1C7ECF872";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "25E52683-9ADD-415E-A1E0-63A1C7ECF872";
|
||||
PROVISIONING_PROFILE = "";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
name = "App Store Release";
|
||||
};
|
||||
D221A0BD169C9E5F00537ABF /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C71793B33D9C45079F74487E /* Pods.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "Signal/Signal-Prefix.pch";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
|
@ -3614,11 +3783,11 @@
|
|||
};
|
||||
name = Debug;
|
||||
};
|
||||
D221A0BE169C9E5F00537ABF /* Release */ = {
|
||||
D221A0BE169C9E5F00537ABF /* App Store Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C71793B33D9C45079F74487E /* Pods.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
|
@ -3653,14 +3822,14 @@
|
|||
LLVM_LTO = NO;
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
PRODUCT_NAME = Signal;
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE = "7214A823-1F7A-4460-82D8-D89CA511CEA6";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TEST_AFTER_BUILD = YES;
|
||||
VALID_ARCHS = "arm64 armv7 armv7s i386";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
name = "App Store Release";
|
||||
};
|
||||
D221A0C0169C9E5F00537ABF /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
|
@ -3708,7 +3877,7 @@
|
|||
};
|
||||
name = Debug;
|
||||
};
|
||||
D221A0C1169C9E5F00537ABF /* Release */ = {
|
||||
D221A0C1169C9E5F00537ABF /* App Store Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C71793B33D9C45079F74487E /* Pods.xcconfig */;
|
||||
buildSettings = {
|
||||
|
@ -3752,7 +3921,7 @@
|
|||
VALID_ARCHS = "arm64 armv7s armv7 i386";
|
||||
WRAPPER_EXTENSION = octest;
|
||||
};
|
||||
name = Release;
|
||||
name = "App Store Release";
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
|
@ -3761,28 +3930,31 @@
|
|||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D221A0BA169C9E5F00537ABF /* Debug */,
|
||||
D221A0BB169C9E5F00537ABF /* Release */,
|
||||
B6B9EB4D196190F5009024F0 /* Ad-Hoc Distribution */,
|
||||
D221A0BB169C9E5F00537ABF /* App Store Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
defaultConfigurationName = "App Store Release";
|
||||
};
|
||||
D221A0BC169C9E5F00537ABF /* Build configuration list for PBXNativeTarget "Signal" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D221A0BD169C9E5F00537ABF /* Debug */,
|
||||
D221A0BE169C9E5F00537ABF /* Release */,
|
||||
B6B9EB4E196190F5009024F0 /* Ad-Hoc Distribution */,
|
||||
D221A0BE169C9E5F00537ABF /* App Store Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
defaultConfigurationName = "App Store Release";
|
||||
};
|
||||
D221A0BF169C9E5F00537ABF /* Build configuration list for PBXNativeTarget "SignalTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D221A0C0169C9E5F00537ABF /* Debug */,
|
||||
D221A0C1169C9E5F00537ABF /* Release */,
|
||||
B6B9EB4F196190F5009024F0 /* Ad-Hoc Distribution */,
|
||||
D221A0C1169C9E5F00537ABF /* App Store Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
defaultConfigurationName = "App Store Release";
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
|
|
|
@ -7,4 +7,12 @@
|
|||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CocoaLumberjack/DDLog.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
|
||||
#else
|
||||
static const int ddLogLevel = LOG_LEVEL_WARN;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
#import "Util.h"
|
||||
#import <UICKeyChainStore/UICKeyChainStore.h>
|
||||
|
||||
#pragma mark Logging - Production logging wants us to write some logs to a file in case we need it for debugging.
|
||||
|
||||
#import <CocoaLumberjack/DDTTYLogger.h>
|
||||
#import <CocoaLumberjack/DDFileLogger.h>
|
||||
|
||||
#define kSignalVersionKey @"SignalUpdateVersionKey"
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
@ -68,6 +73,13 @@
|
|||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
|
||||
[DDLog addLogger:[DDTTYLogger sharedInstance]];
|
||||
DDFileLogger *fileLogger = [[DDFileLogger alloc] init];
|
||||
fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling.
|
||||
fileLogger.logFileManager.maximumNumberOfLogFiles = 3; // Keep three days of logs.
|
||||
[DDLog addLogger:fileLogger];
|
||||
|
||||
[self performUpdateCheck];
|
||||
[self disableCallLogBackup];
|
||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
|
|
|
@ -116,6 +116,10 @@
|
|||
#define ANSWER_CALL_BUTTON_TITLE NSLocalizedString(@"ANSWER_CALL_BUTTON_TITLE", @"")
|
||||
#define REJECT_CALL_BUTTON_TITLE NSLocalizedString(@"REJECT_CALL_BUTTON_TITLE", @"")
|
||||
|
||||
#define REGISTER_ERROR_ALERT_VIEW_TITLE NSLocalizedString(@"REGISTRATION_ERROR", @"")
|
||||
#define REGISTER_ERROR_ALERT_VIEW_BODY NSLocalizedString(@"REGISTRATION_BODY", @"")
|
||||
#define REGISTER_ERROR_ALERT_VIEW_DISMISS NSLocalizedString(@"OK", @"")
|
||||
|
||||
#pragma mark - Invite Users
|
||||
|
||||
#define INVITE_USERS_ACTION_SHEET_TITLE NSLocalizedString(@"INVITE_USERS_ACTION_SHEET_TITLE", @"");
|
||||
|
@ -133,7 +137,6 @@
|
|||
#define TIMEOUT NSLocalizedString(@"TIMEOUT",@"")
|
||||
#define TIMEOUT_CONTACTS_DETAIL NSLocalizedString(@"TIMEOUT_CONTACTS_DETAIL", @"")
|
||||
|
||||
|
||||
NSDictionary* makeCallProgressLocalizedTextDictionary(void);
|
||||
NSDictionary* makeCallTerminationLocalizedTextDictionary(void);
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
@property (nonatomic, strong) IBOutlet UILabel *countryCodeLabel;
|
||||
@property (nonatomic, strong) IBOutlet UILabel *countryNameLabel;
|
||||
@property (nonatomic, strong) IBOutlet UITextField *challengeTextField;
|
||||
@property (nonatomic, strong) IBOutlet UILabel *registerErrorLabel;
|
||||
@property (nonatomic, strong) IBOutlet UILabel *challengeErrorLabel;
|
||||
@property (nonatomic, strong) IBOutlet UIActivityIndicatorView *registerActivityIndicator;
|
||||
@property (nonatomic, strong) IBOutlet UIActivityIndicatorView *challengeActivityIndicator;
|
||||
@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#import "ThreadManager.h"
|
||||
#import "Util.h"
|
||||
|
||||
|
||||
|
||||
#define REGISTER_VIEW_NUMBER 0
|
||||
#define CHALLENGE_VIEW_NUMBER 1
|
||||
|
||||
|
@ -36,11 +38,6 @@
|
|||
[super viewDidLoad];
|
||||
|
||||
[self populateDefaultCountryNameAndCode];
|
||||
|
||||
[futureApnId catchDo:^(id error) {
|
||||
// todo: remove this; just here for testing purposes to catch apn not being set
|
||||
_registerErrorLabel.text = [error description];
|
||||
}];
|
||||
|
||||
_scrollView.contentSize = _containerView.bounds.size;
|
||||
|
||||
|
@ -172,12 +169,17 @@
|
|||
Future* futureFinished = [self asyncRegister:localNumber untilCancelled:[life getToken]];
|
||||
[_registerActivityIndicator startAnimating];
|
||||
_registerButton.enabled = NO;
|
||||
_registerErrorLabel.text = @"";
|
||||
|
||||
[futureFinished catchDo:^(id error) {
|
||||
[_challengeActivityIndicator stopAnimating];
|
||||
NSError *err = ((NSError*)error);
|
||||
[_registerActivityIndicator stopAnimating];
|
||||
_registerButton.enabled = YES;
|
||||
// todo: localize
|
||||
_registerErrorLabel.text = [error description];
|
||||
|
||||
DDLogError(@"Registration failed with information %@", err.description);
|
||||
|
||||
UIAlertView *registrationErrorAV = [[UIAlertView alloc]initWithTitle:REGISTER_ERROR_ALERT_VIEW_TITLE message:REGISTER_ERROR_ALERT_VIEW_BODY delegate:nil cancelButtonTitle:REGISTER_ERROR_ALERT_VIEW_DISMISS otherButtonTitles:nil, nil];
|
||||
|
||||
[registrationErrorAV show];
|
||||
}];
|
||||
}
|
||||
|
||||
|
@ -194,20 +196,18 @@
|
|||
Future *futureDone = [HttpManager asyncOkResponseFromMasterServer:verifyRequest
|
||||
unlessCancelled:nil
|
||||
andErrorHandler:[Environment errorNoter]];
|
||||
|
||||
_challengeErrorLabel.text = @"";
|
||||
|
||||
[futureDone catchDo:^(id error) {
|
||||
if ([error isKindOfClass:[HttpResponse class]]) {
|
||||
HttpResponse* badResponse = error;
|
||||
if ([badResponse getStatusCode] == 401) {
|
||||
// @todo: human readable, localizable
|
||||
_challengeErrorLabel.text = @"Incorrect Challenge Code";
|
||||
UIAlertView *incorrectChallengeCodeAV = [[UIAlertView alloc]initWithTitle:@"Registration error" message:@"The challenge code you entered is incorrect." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
|
||||
[incorrectChallengeCodeAV show];
|
||||
return;
|
||||
}
|
||||
}
|
||||
[Environment errorNoter](error, @"While Verifying Challenge.", NO);
|
||||
// @todo: human readable, localizable
|
||||
_challengeErrorLabel.text = [NSString stringWithFormat:@"Unexpected failure: %@", error];
|
||||
#warning add implementation
|
||||
}];
|
||||
|
||||
[futureDone thenDo:^(id result) {
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13C64" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13D65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RegisterViewController">
|
||||
<connections>
|
||||
<outlet property="challengeActivityIndicator" destination="19" id="RXt-hH-5kD"/>
|
||||
<outlet property="challengeButton" destination="zIb-7d-0em" id="G2W-Ef-bev"/>
|
||||
<outlet property="challengeErrorLabel" destination="LBW-Ui-MrN" id="beu-jd-o47"/>
|
||||
<outlet property="challengeNumberLabel" destination="deD-LF-4RO" id="RrX-TJ-m8K"/>
|
||||
<outlet property="challengeTextField" destination="zgO-84-8qR" id="5uc-Fy-5Jr"/>
|
||||
<outlet property="containerView" destination="6at-WU-Rlw" id="mLe-aM-qhl"/>
|
||||
|
@ -19,7 +18,6 @@
|
|||
<outlet property="registerActivityIndicator" destination="ZuN-a5-tVs" id="0ut-nh-AIV"/>
|
||||
<outlet property="registerButton" destination="14" id="18"/>
|
||||
<outlet property="registerCancelButton" destination="yuJ-T0-mV0" id="5No-Ec-CHs"/>
|
||||
<outlet property="registerErrorLabel" destination="39" id="rl3-7n-oJN"/>
|
||||
<outlet property="scrollView" destination="Hwy-85-hms" id="ssk-dZ-0cs"/>
|
||||
<outlet property="view" destination="1" id="3"/>
|
||||
<outlet property="voiceChallengeTextLabel" destination="Ofy-FZ-zZt" id="pBC-GW-Z8H"/>
|
||||
|
@ -94,13 +92,6 @@
|
|||
<userDefinedRuntimeAttribute type="string" keyPath="localizationKey" value="REGISTER_TEXTBLOCK"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="" textAlignment="right" lineBreakMode="wordWrap" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="39" userLabel="Register Error Label">
|
||||
<rect key="frame" x="20" y="65" width="281" height="61"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="13"/>
|
||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="3vF-HK-Qbz" userLabel="Phone Number Underline View">
|
||||
<rect key="frame" x="43" y="367" width="225" height="1"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
|
@ -185,13 +176,6 @@
|
|||
<action selector="verifyChallengeTapped" destination="-1" eventType="touchUpInside" id="eMN-6x-T0q"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="LBW-Ui-MrN" userLabel="Challenge Error Label">
|
||||
<rect key="frame" x="36" y="52" width="263" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="13"/>
|
||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="XOE-ev-Vjj" userLabel="Country Code Underline View">
|
||||
<rect key="frame" x="43" y="366" width="225" height="1"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
|
|
|
@ -101,6 +101,8 @@
|
|||
"REGISTER_VALIDATION_ENTER_CODE" = "Validation Code";
|
||||
"REGISTER_VALIDATION_SENT" = "We sent your validation code";
|
||||
"REGISTER_WELCOME_TEXT" = "Welcome to Signal";
|
||||
"REGISTRATION_ERROR" = "Registration Error";
|
||||
"REGISTRATION_BODY" = "We couldn't reach the Signal server. Please try again.";
|
||||
"REJECT_CALL_BUTTON_TITLE" = "Reject";
|
||||
"SETTINGS_ANONYMOUS_FEEDBACK" = "Send Anonymous Feedback";
|
||||
"SETTINGS_CALL_QUALITY" = "Call Quality";
|
||||
|
|
Loading…
Reference in New Issue