Respond to CR.

pull/1/head
Matthew Chen 6 years ago
parent 95387dd220
commit 39f1be65f3

@ -13,17 +13,13 @@ import SignalServiceKit
@objc
public class AccountManager: NSObject {
let textSecureAccountManager: TSAccountManager
var pushManager: PushManager {
// dependency injection hack since PushManager has *alot* of dependencies, and would induce a cycle.
return PushManager.shared()
}
@objc
public required init(textSecureAccountManager: TSAccountManager) {
self.textSecureAccountManager = textSecureAccountManager
public required override init() {
super.init()
SwiftSingletons.register(self)
@ -39,6 +35,10 @@ public class AccountManager: NSObject {
return Environment.shared.preferences
}
private var tsAccountManager: TSAccountManager {
return TSAccountManager.sharedInstance()
}
// MARK: registration
@objc func register(verificationCode: String,
@ -83,7 +83,7 @@ public class AccountManager: NSObject {
private func registerForTextSecure(verificationCode: String,
pin: String?) -> Promise<Void> {
return Promise { fulfill, reject in
self.textSecureAccountManager.verifyAccount(withCode: verificationCode,
tsAccountManager.verifyAccount(withCode: verificationCode,
pin: pin,
success: fulfill,
failure: reject)
@ -99,14 +99,14 @@ public class AccountManager: NSObject {
private func completeRegistration() {
Logger.info("")
self.textSecureAccountManager.didRegister()
tsAccountManager.didRegister()
}
// MARK: Message Delivery
func updatePushTokens(pushToken: String, voipToken: String) -> Promise<Void> {
return Promise { fulfill, reject in
self.textSecureAccountManager.registerForPushNotifications(pushToken: pushToken,
tsAccountManager.registerForPushNotifications(pushToken: pushToken,
voipToken: voipToken,
success: fulfill,
failure: reject)
@ -114,7 +114,7 @@ public class AccountManager: NSObject {
}
func enableManualMessageFetching() -> Promise<Void> {
TSAccountManager.sharedInstance().setIsManualMessageFetchEnabled(true)
tsAccountManager.setIsManualMessageFetchEnabled(true)
// Try to update the account attributes to reflect this change.
let request = OWSRequestFactory.updateAttributesRequest()

@ -63,7 +63,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSAssertDebug(SSKEnvironment.shared.networkManager);
OWSAssertDebug(SSKEnvironment.shared.contactsUpdater);
_accountManager = [[AccountManager alloc] initWithTextSecureAccountManager:[TSAccountManager sharedInstance]];
_accountManager = [[AccountManager alloc] init];
_notificationsManager = [NotificationsManager new];
SSKEnvironment.shared.notificationsManager = self.notificationsManager;

@ -72,8 +72,9 @@ extern NSString *const kNSNotificationName_LocalNumberDidChange;
* @return registrationID;
*/
+ (uint32_t)getOrGenerateRegistrationId;
+ (uint32_t)getOrGenerateRegistrationId:(YapDatabaseReadWriteTransaction *)transaction;
- (uint32_t)getOrGenerateRegistrationId;
- (uint32_t)getOrGenerateRegistrationId:(YapDatabaseReadWriteTransaction *)transaction;
#pragma mark - Register with phone number

@ -192,11 +192,6 @@ NSString *const TSAccountManager_ManualMessageFetchKey = @"TSAccountManager_Manu
}
}
+ (uint32_t)getOrGenerateRegistrationId
{
return [[self sharedInstance] getOrGenerateRegistrationId];
}
+ (uint32_t)getOrGenerateRegistrationId:(YapDatabaseReadWriteTransaction *)transaction
{
return [[self sharedInstance] getOrGenerateRegistrationId:transaction];

@ -35,9 +35,9 @@ public enum OWSUDError: Error {
// MARK: - Unrestricted Access
@objc func allowUnrestrictedAccess() -> Bool
@objc func shouldAllowUnrestrictedAccess() -> Bool
@objc func setAllowUnrestrictedAccess(_ value: Bool)
@objc func setShouldAllowUnrestrictedAccess(_ value: Bool)
}
// MARK: -
@ -179,12 +179,12 @@ public class OWSUDManagerImpl: NSObject, OWSUDManager {
// MARK: - Unrestricted Access
@objc
public func allowUnrestrictedAccess() -> Bool {
public func shouldAllowUnrestrictedAccess() -> Bool {
return dbConnection.bool(forKey: kUDUnrestrictedAccessKey, inCollection: kUDRecipientModeCollection, defaultValue: false)
}
@objc
public func setAllowUnrestrictedAccess(_ value: Bool) {
public func setShouldAllowUnrestrictedAccess(_ value: Bool) {
dbConnection.setBool(value, forKey: kUDUnrestrictedAccessKey, inCollection: kUDRecipientModeCollection)
}
}

@ -22,6 +22,30 @@ NS_ASSUME_NONNULL_BEGIN
@implementation OWSRequestFactory
#pragma mark - Dependencies
+ (TSAccountManager *)tsAccountManager
{
return TSAccountManager.sharedInstance;
}
+ (OWS2FAManager *)ows2FAManager
{
return OWS2FAManager.sharedManager;
}
+ (id<ProfileManagerProtocol>)profileManager
{
return SSKEnvironment.shared.profileManager;
}
+ (id<OWSUDManager>)udManager
{
return SSKEnvironment.shared.udManager;
}
#pragma mark -
+ (TSRequest *)enable2FARequestWithPin:(NSString *)pin
{
OWSAssertDebug(pin.length > 0);
@ -174,11 +198,11 @@ NS_ASSUME_NONNULL_BEGIN
{
NSString *path = [textSecureAccountsAPI stringByAppendingString:textSecureAttributesAPI];
NSString *signalingKey = TSAccountManager.signalingKey;
NSString *signalingKey = self.tsAccountManager.signalingKey;
OWSAssertDebug(signalingKey.length > 0);
NSString *authKey = TSAccountManager.serverAuthToken;
NSString *authKey = self.tsAccountManager.serverAuthToken;
OWSAssertDebug(authKey.length > 0);
NSString *_Nullable pin = [OWS2FAManager.sharedManager pinCode];
NSString *_Nullable pin = [self.ows2FAManager pinCode];
NSDictionary<NSString *, id> *accountAttributes =
[self accountAttributesWithPin:pin signalingKey:signalingKey authKey:authKey];
@ -246,17 +270,18 @@ NS_ASSUME_NONNULL_BEGIN
{
OWSAssertDebug(signalingKey.length > 0);
OWSAssertDebug(authKey.length > 0);
uint32_t registrationId = [TSAccountManager getOrGenerateRegistrationId];
uint32_t registrationId = [self.tsAccountManager getOrGenerateRegistrationId];
BOOL isManualMessageFetchEnabled = TSAccountManager.sharedInstance.isManualMessageFetchEnabled;
BOOL isManualMessageFetchEnabled = self.tsAccountManager.isManualMessageFetchEnabled;
OWSAES256Key *profileKey = [SSKEnvironment.shared.profileManager localProfileKey];
OWSAES256Key *profileKey = [self.profileManager localProfileKey];
NSError *error;
SMKUDAccessKey *_Nullable udAccessKey = [[SMKUDAccessKey alloc] initWithProfileKey:profileKey.keyData error:&error];
if (error || !udAccessKey) {
OWSLogError(@"Could not determine UD access key: %@.", error);
if (error || udAccessKey.keyData.length < 1) {
// Crash app if UD cannot be enabled.
OWSFail(@"Could not determine UD access key: %@.", error);
}
BOOL allowUnrestrictedUD = [SSKEnvironment.shared.udManager allowUnrestrictedAccess] && udAccessKey != nil;
BOOL allowUnrestrictedUD = [self.udManager shouldAllowUnrestrictedAccess] && udAccessKey != nil;
NSMutableDictionary *accountAttributes = [@{
@"signalingKey" : signalingKey,
@ -266,14 +291,14 @@ NS_ASSUME_NONNULL_BEGIN
@"fetchesMessages" : @(isManualMessageFetchEnabled), // devices that don't support push must tell the server
// they fetch messages manually
@"registrationId" : [NSString stringWithFormat:@"%i", registrationId],
@"unidentifiedAccessKey" : udAccessKey.keyData.base64EncodedString,
@"unrestrictedUnidentifiedAccess" : @(allowUnrestrictedUD),
} mutableCopy];
if (pin.length > 0) {
accountAttributes[@"pin"] = pin;
}
if (udAccessKey.keyData.length > 0) {
accountAttributes[@"unidentifiedAccessKey"] = udAccessKey.keyData.base64EncodedString;
accountAttributes[@"unrestrictedUnidentifiedAccess"] = @(allowUnrestrictedUD);
}
return [accountAttributes copy];
}

@ -46,16 +46,16 @@ public class OWSFakeUDManager: NSObject, OWSUDManager {
// MARK: - Unrestricted Access
private var _allowUnrestrictedAccess = false
private var _shouldAllowUnrestrictedAccess = false
@objc
public func allowUnrestrictedAccess() -> Bool {
return _allowUnrestrictedAccess
public func shouldAllowUnrestrictedAccess() -> Bool {
return _shouldAllowUnrestrictedAccess
}
@objc
public func setAllowUnrestrictedAccess(_ value: Bool) {
_allowUnrestrictedAccess = value
public func setShouldAllowUnrestrictedAccess(_ value: Bool) {
_shouldAllowUnrestrictedAccess = value
}
}

Loading…
Cancel
Save