Create AppEnvironment.

pull/1/head
Matthew Chen 6 years ago
parent d7e52367ff
commit 0b4ed1175d

@ -623,7 +623,7 @@ static NSTimeInterval launchStartedAt;
// "Background App Refresh" will not be able to obtain an APN token. Enabling those settings does not
// restart the app, so we check every activation for users who haven't yet registered.
__unused AnyPromise *promise =
[OWSSyncPushTokensJob runWithAccountManager:SignalApp.sharedApp.accountManager
[OWSSyncPushTokensJob runWithAccountManager:AppEnvironment.shared.accountManager
preferences:Environment.shared.preferences];
}
@ -766,10 +766,10 @@ static NSTimeInterval launchStartedAt;
// * It can be received if the user taps the "video" button for a contact in the
// contacts app. If so, the correct response is to try to initiate a new call
// to that user - unless there already is another call in progress.
if (SignalApp.sharedApp.callService.call != nil) {
if ([phoneNumber isEqualToString:SignalApp.sharedApp.callService.call.remotePhoneNumber]) {
if (AppEnvironment.shared.callService.call != nil) {
if ([phoneNumber isEqualToString:AppEnvironment.shared.callService.call.remotePhoneNumber]) {
OWSLogWarn(@"trying to upgrade ongoing call to video.");
[SignalApp.sharedApp.callService handleCallKitStartVideo];
[AppEnvironment.shared.callService handleCallKitStartVideo];
return;
} else {
OWSLogWarn(@"ignoring INStartVideoCallIntent due to ongoing WebRTC call with another party.");
@ -777,7 +777,7 @@ static NSTimeInterval launchStartedAt;
}
}
OutboundCallInitiator *outboundCallInitiator = SignalApp.sharedApp.outboundCallInitiator;
OutboundCallInitiator *outboundCallInitiator = AppEnvironment.shared.outboundCallInitiator;
OWSAssertDebug(outboundCallInitiator);
[outboundCallInitiator initiateCallWithHandle:phoneNumber];
}];
@ -815,12 +815,12 @@ static NSTimeInterval launchStartedAt;
}
}
if (SignalApp.sharedApp.callService.call != nil) {
if (AppEnvironment.shared.callService.call != nil) {
OWSLogWarn(@"ignoring INStartAudioCallIntent due to ongoing WebRTC call.");
return;
}
OutboundCallInitiator *outboundCallInitiator = SignalApp.sharedApp.outboundCallInitiator;
OutboundCallInitiator *outboundCallInitiator = AppEnvironment.shared.outboundCallInitiator;
OWSAssertDebug(outboundCallInitiator);
[outboundCallInitiator initiateCallWithHandle:phoneNumber];
}];
@ -959,7 +959,7 @@ static NSTimeInterval launchStartedAt;
{
OWSLogInfo(@"performing background fetch");
[AppReadiness runNowOrWhenAppIsReady:^{
__block AnyPromise *job = [[SignalApp sharedApp].messageFetcherJob run].then(^{
__block AnyPromise *job = [AppEnvironment.shared.messageFetcherJob run].then(^{
// HACK: Call completion handler after n seconds.
//
// We don't currently have a convenient API to know when message fetching is *done* when
@ -1031,11 +1031,11 @@ static NSTimeInterval launchStartedAt;
// Fetch messages as soon as possible after launching. In particular, when
// launching from the background, without this, we end up waiting some extra
// seconds before receiving an actionable push notification.
__unused AnyPromise *messagePromise = [SignalApp.sharedApp.messageFetcherJob run];
__unused AnyPromise *messagePromise = [AppEnvironment.shared.messageFetcherJob run];
// This should happen at any launch, background or foreground.
__unused AnyPromise *pushTokenpromise =
[OWSSyncPushTokensJob runWithAccountManager:SignalApp.sharedApp.accountManager
[OWSSyncPushTokensJob runWithAccountManager:AppEnvironment.shared.accountManager
preferences:Environment.shared.preferences];
}

@ -9,16 +9,14 @@ import SignalServiceKit
@objc(OWSMessageFetcherJob)
public class MessageFetcherJob: NSObject {
private
var timer : Timer ?
@objc public override
init()
private var timer : Timer?
@objc
public override init()
{
super
.init()
SwiftSingletons.register(self)
super.init()
SwiftSingletons.register(self)
}
// MARK: Singletons

@ -18,7 +18,8 @@ public class AccountManager: NSObject {
return PushManager.shared()
}
@objc public override init()
@objc
public override init()
{
super.init()

@ -18,7 +18,7 @@ public class CallNotificationsAdapter: NSObject {
// We have to first port *all* the existing UINotification categories to UNNotifications
// which is a good thing to do, but in trying to limit the scope of changes that's been
// left out for now.
return SignalApp.shared().notificationsManager
return AppEnvironment.shared.notificationsManager
}
@objc public override init() {

@ -239,8 +239,9 @@ NS_ASSUME_NONNULL_BEGIN
- (void)syncPushTokens
{
OWSSyncPushTokensJob *job = [[OWSSyncPushTokensJob alloc] initWithAccountManager:SignalApp.sharedApp.accountManager
preferences:Environment.shared.preferences];
OWSSyncPushTokensJob *job =
[[OWSSyncPushTokensJob alloc] initWithAccountManager:AppEnvironment.shared.accountManager
preferences:Environment.shared.preferences];
job.uploadOnlyIfStale = NO;
[job run]
.then(^{

@ -56,7 +56,7 @@
[Environment.shared.preferences setNotificationPreviewType:notificationType];
// rebuild callUIAdapter since notification configuration changed.
[SignalApp.sharedApp.callService createCallUIAdapter];
[AppEnvironment.shared.callService createCallUIAdapter];
[self.navigationController popViewControllerAnimated:YES];
}

@ -298,7 +298,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.preferences setIsSystemCallLogEnabled:sender.isOn];
// rebuild callUIAdapter since CallKit configuration changed.
[SignalApp.sharedApp.callService createCallUIAdapter];
[AppEnvironment.shared.callService createCallUIAdapter];
}
- (void)didToggleEnableCallKitSwitch:(UISwitch *)sender
@ -307,7 +307,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.preferences setIsCallKitEnabled:sender.isOn];
// rebuild callUIAdapter since CallKit vs not changed.
[SignalApp.sharedApp.callService createCallUIAdapter];
[AppEnvironment.shared.callService createCallUIAdapter];
// Show/Hide dependent switch: CallKit privacy
[self updateTableContents];
@ -319,7 +319,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.preferences setIsCallKitPrivacyEnabled:!sender.isOn];
// rebuild callUIAdapter since CallKit configuration changed.
[SignalApp.sharedApp.callService createCallUIAdapter];
[AppEnvironment.shared.callService createCallUIAdapter];
}
- (void)didToggleUDUnrestrictedAccessSwitch:(UISwitch *)sender

@ -14,7 +14,7 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
// Dependencies
var callUIAdapter: CallUIAdapter {
return SignalApp.shared().callUIAdapter
return AppEnvironment.shared.callService.callUIAdapter
}
// Feature Flag
@ -208,7 +208,7 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
// Subscribe for future call updates
call.addObserverAndSyncState(observer: self)
SignalApp.shared().callService.addObserverAndSyncState(observer: self)
AppEnvironment.shared.callService.addObserverAndSyncState(observer: self)
assert(callUIAdapter.audioService.delegate == nil)
callUIAdapter.audioService.delegate = self

@ -277,7 +277,7 @@ typedef enum : NSUInteger {
_contactsManager = Environment.shared.contactsManager;
_contactsUpdater = SSKEnvironment.shared.contactsUpdater;
_messageSender = SSKEnvironment.shared.messageSender;
_outboundCallInitiator = SignalApp.sharedApp.outboundCallInitiator;
_outboundCallInitiator = AppEnvironment.shared.outboundCallInitiator;
_primaryStorage = [OWSPrimaryStorage sharedManager];
_networkManager = [TSNetworkManager sharedManager];
_blockingManager = [OWSBlockingManager sharedManager];

@ -11,7 +11,7 @@ class DebugUINotifications: DebugUIPage {
// MARK: Dependencies
var notificationsManager: NotificationsManager {
return SignalApp.shared().notificationsManager
return AppEnvironment.shared.notificationsManager
}
var notificationsAdapter: CallNotificationsAdapter {
return AppEnvironment.shared.callNotificationsAdapter

@ -146,7 +146,7 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
- (void)commonInit
{
_accountManager = SignalApp.sharedApp.accountManager;
_accountManager = AppEnvironment.shared.accountManager;
_contactsManager = Environment.shared.contactsManager;
_messageSender = SSKEnvironment.shared.messageSender;
_blocklistCache = [OWSBlockListCache new];
@ -939,7 +939,7 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
{
OWSAssertIsOnMainThread();
OWSLogInfo(@"beggining refreshing.");
[SignalApp.sharedApp.messageFetcherJob run].ensure(^{
[AppEnvironment.shared.messageFetcherJob run].ensure(^{
OWSLogInfo(@"ending refreshing.");
[refreshControl endRefreshing];
});

@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
_accountManager = SignalApp.sharedApp.accountManager;
_accountManager = AppEnvironment.shared.accountManager;
return self;
}
@ -43,7 +43,7 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
_accountManager = SignalApp.sharedApp.accountManager;
_accountManager = AppEnvironment.shared.accountManager;
return self;
}

@ -45,7 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
_accountManager = SignalApp.sharedApp.accountManager;
_accountManager = AppEnvironment.shared.accountManager;
return self;
}
@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
_accountManager = SignalApp.sharedApp.accountManager;
_accountManager = AppEnvironment.shared.accountManager;
return self;
}

@ -147,28 +147,25 @@ private class SignalCallData: NSObject {
}
}
required init(call
: SignalCall) { self.call = call
required init(call: SignalCall) {
self.call = call
let(callConnectedPromise, callConnectedResolver)
= Promise<Void>.pending() self.callConnectedPromise = callConnectedPromise self.callConnectedResolver
= callConnectedResolver
let (callConnectedPromise, callConnectedResolver) = Promise<Void>.pending()
self.callConnectedPromise = callConnectedPromise
self.callConnectedResolver = callConnectedResolver
let(peerConnectionClientPromise, peerConnectionClientResolver)
= Promise<Void>.pending() self.peerConnectionClientPromise
= peerConnectionClientPromise self.peerConnectionClientResolver = peerConnectionClientResolver
let (peerConnectionClientPromise, peerConnectionClientResolver) = Promise<Void>.pending()
self.peerConnectionClientPromise = peerConnectionClientPromise
self.peerConnectionClientResolver = peerConnectionClientResolver
let(readyToSendIceUpdatesPromise, readyToSendIceUpdatesResolver)
= Promise<Void>.pending() self.readyToSendIceUpdatesPromise
= readyToSendIceUpdatesPromise self.readyToSendIceUpdatesResolver = readyToSendIceUpdatesResolver
let (readyToSendIceUpdatesPromise, readyToSendIceUpdatesResolver) = Promise<Void>.pending()
self.readyToSendIceUpdatesPromise = readyToSendIceUpdatesPromise
self.readyToSendIceUpdatesResolver = readyToSendIceUpdatesResolver
super
.init()
SwiftSingletons.register(self) }
super.init()
}
deinit
{
deinit {
Logger.debug("[SignalCallData] deinit")
}
@ -205,23 +202,17 @@ private class SignalCallData: NSObject {
var observers = [Weak<CallServiceObserver>]()
// MARK: Dependencies
// Exposed by environment.m
// Exposed by environment.m
@objc public var callUIAdapter : CallUIAdapter !
@objc public var callUIAdapter: CallUIAdapter!
// MARK: Class
// MARK: Class
static let fallbackIceServer
= RTCIceServer(urlStrings
: ["stun:stun1.l.google.com:19302"])
static let fallbackIceServer = RTCIceServer(urlStrings: ["stun:stun1.l.google.com:19302"])
// MARK: Ivars
// MARK: Ivars
fileprivate var callData : SignalCallData
?
{
fileprivate var callData: SignalCallData? {
didSet {
AssertIsOnMainThread()
@ -293,57 +284,48 @@ private class SignalCallData: NSObject {
}
}
@objc public override init() { super
.init()
@objc public override init() {
SwiftSingletons
.register(self)
super.init()
self
.createCallUIAdapter()
SwiftSingletons.register(self)
NotificationCenter.default
.addObserver(self, selector
: #selector(didEnterBackground), name
: NSNotification.Name.OWSApplicationDidEnterBackground, object
: nil)
NotificationCenter.default.addObserver(
self, selector
: #selector(didBecomeActive), name
: NSNotification.Name.OWSApplicationDidBecomeActive, object
: nil) }
NotificationCenter.default.addObserver(self,
selector: #selector(didEnterBackground),
name: NSNotification.Name.OWSApplicationDidEnterBackground,
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(didBecomeActive),
name: NSNotification.Name.OWSApplicationDidBecomeActive,
object: nil)
}
deinit
{
deinit {
NotificationCenter.default.removeObserver(self)
}
// MARK: - Dependencies
private
var contactsManager : OWSContactsManager
private var contactsManager : OWSContactsManager
{
return Environment.shared.contactsManager
}
private
var messageSender : MessageSender
private var messageSender : MessageSender
{
return SSKEnvironment.shared.messageSender
}
private
var accountManager : AccountManager
private var accountManager : AccountManager
{
return AppEnvironment.shared.accountManager
}
private
var notificationsAdapter : CallNotificationsAdapter
private var notificationsAdapter : CallNotificationsAdapter
{
return AppEnvironment.shared.callNotificationsAdapter
}
// MARK: - Notifications
@objc func didEnterBackground() {
@ -356,8 +338,6 @@ private
self.updateIsVideoEnabled()
}
// MARK: -
/**
* Choose whether to use CallKit or a Notification backed interface for calling.
*/

@ -20,14 +20,12 @@ import SignalMessaging
// MARK: - Dependencies
private
var contactsManager : OWSContactsManager
private var contactsManager : OWSContactsManager
{
return Environment.shared.contactsManager
}
private
var contactsUpdater : ContactsUpdater
private var contactsUpdater : ContactsUpdater
{
return SSKEnvironment.shared.contactsUpdater
}
@ -53,9 +51,10 @@ private
*/
@discardableResult @objc public func initiateCall(recipientId: String,
isVideo: Bool) -> Bool {
// Rather than an init-assigned dependency property, we access `callUIAdapter` via Environment
// because it can change after app launch due to user settings
let callUIAdapter = SignalApp.shared().callUIAdapter
guard let callUIAdapter = AppEnvironment.shared.callService.callUIAdapter else {
owsFailDebug("missing callUIAdapter")
return false
}
guard let frontmostViewController = UIApplication.shared.frontmostViewController else {
owsFailDebug("could not identify frontmostViewController")
return false

@ -11,30 +11,27 @@ public class WebRTCCallMessageHandler: NSObject, OWSCallMessageHandler {
// MARK: Initializers
@objc public override init()
@objc
public override init()
{
super
.init()
super.init()
SwiftSingletons.register(self)
SwiftSingletons.register(self)
}
// MARK: - Dependencies
private
var messageSender : MessageSender
private var messageSender : MessageSender
{
return SSKEnvironment.shared.messageSender
}
private
var accountManager : AccountManager
private var accountManager : AccountManager
{
return AppEnvironment.shared.accountManager
}
private
var callService : CallService
private var callService : CallService
{
return AppEnvironment.shared.callService
}

@ -3,87 +3,100 @@
//
import Foundation
//import PromiseKit
//import PushKit
import SignalServiceKit import SignalMessaging
@objc public class AppEnvironment : NSObject {
private
static var _shared : AppEnvironment = AppEnvironment()
@objc public class var shared : AppEnvironment {
get { return _shared } set
{
import SignalServiceKit
import SignalMessaging
@objc public class AppEnvironment : NSObject {
private static var _shared : AppEnvironment = AppEnvironment()
@objc
public class var shared : AppEnvironment {
get {
return _shared
}
set {
_shared = newValue
}
}
@objc public var callMessageHandler : WebRTCCallMessageHandler
@objc public var callService : CallService
@objc public var outboundCallInitiator
: OutboundCallInitiator
@objc public var messageFetcherJob : MessageFetcherJob
@objc public var notificationsManager : NotificationsManager
@objc public var accountManager
: AccountManager
@objc public var callNotificationsAdapter : CallNotificationsAdapter
@objc public init(callMessageHandler
: WebRTCCallMessageHandler, callService
: CallService, outboundCallInitiator
: OutboundCallInitiator, messageFetcherJob
: MessageFetcherJob, notificationsManager
: NotificationsManager, accountManager
: AccountManager, callNotificationsAdapter
: CallNotificationsAdapter)
@objc
public var callMessageHandler : WebRTCCallMessageHandler
@objc
public var callService : CallService
@objc
public var outboundCallInitiator : OutboundCallInitiator
@objc
public var messageFetcherJob : MessageFetcherJob
@objc
public var notificationsManager : NotificationsManager
@objc
public var accountManager : AccountManager
@objc
public var callNotificationsAdapter : CallNotificationsAdapter
@objc
public init(callMessageHandler : WebRTCCallMessageHandler,
callService : CallService,
outboundCallInitiator : OutboundCallInitiator,
messageFetcherJob : MessageFetcherJob,
notificationsManager : NotificationsManager,
accountManager : AccountManager,
callNotificationsAdapter : CallNotificationsAdapter)
{
self.callMessageHandler = callMessageHandler self.callService = callService self.outboundCallInitiator
= outboundCallInitiator self.messageFetcherJob = messageFetcherJob self.notificationsManager
= notificationsManager self.accountManager = accountManager self.callNotificationsAdapter
= callNotificationsAdapter
super
.init()
SwiftSingletons.register(self)
setup()
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
self.messageFetcherJob = messageFetcherJob
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
super
.init()
SwiftSingletons.register(self)
setup()
}
private
override init()
private override init()
{
let accountManager = AccountManager() let notificationsManager
= NotificationsManager() let callNotificationsAdapter = CallNotificationsAdapter() let callService
= CallService() let callMessageHandler = WebRTCCallMessageHandler() let outboundCallInitiator
= OutboundCallInitiator() let messageFetcherJob = MessageFetcherJob()
self.callMessageHandler
= callMessageHandler self.callService = callService self.outboundCallInitiator
= outboundCallInitiator self.messageFetcherJob = messageFetcherJob self.notificationsManager
= notificationsManager self.accountManager = accountManager self.callNotificationsAdapter
= callNotificationsAdapter
super
.init()
SwiftSingletons.register(self)
setup()
let accountManager = AccountManager()
let notificationsManager = NotificationsManager()
let callNotificationsAdapter = CallNotificationsAdapter()
let callService = CallService()
let callMessageHandler = WebRTCCallMessageHandler()
let outboundCallInitiator = OutboundCallInitiator()
let messageFetcherJob = MessageFetcherJob()
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
self.messageFetcherJob = messageFetcherJob
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
super.init()
SwiftSingletons.register(self)
setup()
}
private
func setup()
private func setup()
{
callService.createCallUIAdapter()
// Hang certain singletons on SSKEnvironment too.
SSKEnvironment.shared.notificationsManager = notificationsManager SSKEnvironment.shared.callMessageHandler
= callMessageHandler
SSKEnvironment.shared.notificationsManager = notificationsManager
SSKEnvironment.shared.callMessageHandler = callMessageHandler
}
}

@ -17,20 +17,18 @@ NS_ASSUME_NONNULL_BEGIN
@class OutboundCallInitiator;
@class TSThread;
// TODO: Pull out singletons to MainAppEnvironment?
@interface SignalApp : NSObject
@property (nonatomic, nullable, weak) HomeViewController *homeViewController;
@property (nonatomic, nullable, weak) OWSNavigationController *signUpFlowNavigationController;
// TODO: Convert to singletons?
@property (nonatomic, readonly) OWSWebRTCCallMessageHandler *callMessageHandler;
@property (nonatomic, readonly) CallService *callService;
@property (nonatomic, readonly) CallUIAdapter *callUIAdapter;
@property (nonatomic, readonly) OutboundCallInitiator *outboundCallInitiator;
@property (nonatomic, readonly) OWSMessageFetcherJob *messageFetcherJob;
@property (nonatomic, readonly) NotificationsManager *notificationsManager;
@property (nonatomic, readonly) AccountManager *accountManager;
//@property (nonatomic, readonly) OWSWebRTCCallMessageHandler *callMessageHandler;
//@property (nonatomic, readonly) CallService *callService;
//@property (nonatomic, readonly) CallUIAdapter *callUIAdapter;
//@property (nonatomic, readonly) OutboundCallInitiator *outboundCallInitiator;
//@property (nonatomic, readonly) OWSMessageFetcherJob *messageFetcherJob;
//@property (nonatomic, readonly) NotificationsManager *notificationsManager;
//@property (nonatomic, readonly) AccountManager *accountManager;
- (instancetype)init NS_UNAVAILABLE;

@ -49,41 +49,6 @@ NS_ASSUME_NONNULL_BEGIN
object:nil];
}
- (OWSWebRTCCallMessageHandler *)callMessageHandler
{
return AppEnvironment.shared.callMessageHandler;
}
- (CallService *)callService
{
return AppEnvironment.shared.callService;
}
- (CallUIAdapter *)callUIAdapter
{
return AppEnvironment.shared.callService.callUIAdapter;
}
- (OutboundCallInitiator *)outboundCallInitiator
{
return AppEnvironment.shared.outboundCallInitiator;
}
- (OWSMessageFetcherJob *)messageFetcherJob
{
return AppEnvironment.shared.messageFetcherJob;
}
- (NotificationsManager *)notificationsManager
{
return AppEnvironment.shared.notificationsManager;
}
- (AccountManager *)accountManager
{
return AppEnvironment.shared.accountManager;
}
#pragma mark - View Convenience Methods
- (void)presentConversationForRecipientId:(NSString *)recipientId animated:(BOOL)isAnimated
@ -157,7 +122,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)didChangeCallLoggingPreference:(NSNotification *)notitication
{
[self.callService createCallUIAdapter];
[AppEnvironment.shared.callService createCallUIAdapter];
}
#pragma mark - Methods

@ -54,10 +54,10 @@ NSString *const Signal_Message_MarkAsRead_Identifier = @"Signal_Message_MarkAsRe
- (instancetype)initDefault
{
return [self initWithMessageFetcherJob:SignalApp.sharedApp.messageFetcherJob
return [self initWithMessageFetcherJob:AppEnvironment.shared.messageFetcherJob
primaryStorage:[OWSPrimaryStorage sharedManager]
messageSender:SSKEnvironment.shared.messageSender
notificationsManager:SignalApp.sharedApp.notificationsManager];
notificationsManager:AppEnvironment.shared.notificationsManager];
}
- (instancetype)initWithMessageFetcherJob:(OWSMessageFetcherJob *)messageFetcherJob
@ -89,7 +89,7 @@ NSString *const Signal_Message_MarkAsRead_Identifier = @"Signal_Message_MarkAsRe
- (CallUIAdapter *)callUIAdapter
{
return SignalApp.sharedApp.callService.callUIAdapter;
return AppEnvironment.shared.callService.callUIAdapter;
}
- (void)handleMessageRead:(NSNotification *)notification

@ -42,10 +42,11 @@ class FailingTSAccountManager: TSAccountManager {
}
class VerifyingTSAccountManager: FailingTSAccountManager {
override func verifyAccount(withCode
: String, pin
: String ?, success : @escaping()->Void, failure
: @escaping(Error)->Void) { success() } s
override func verifyAccount(withCode: String,
pin: String?,
success: @escaping () -> Void, failure: @escaping (Error) -> Void) {
success()
}
}
class TokenObtainingTSAccountManager: VerifyingTSAccountManager {

Loading…
Cancel
Save