Hang PushManager on AppEnvironment.

pull/1/head
Matthew Chen 6 years ago
parent fa89e487a4
commit 829851bd7b

@ -50,46 +50,18 @@ import SignalMessaging
public var pushRegistrationManager: PushRegistrationManager
@objc
public init(callMessageHandler: WebRTCCallMessageHandler,
callService: CallService,
outboundCallInitiator: OutboundCallInitiator,
messageFetcherJob: MessageFetcherJob,
notificationsManager: NotificationsManager,
accountManager: AccountManager,
callNotificationsAdapter: CallNotificationsAdapter,
pushRegistrationManager: PushRegistrationManager) {
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
self.messageFetcherJob = messageFetcherJob
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
self.pushRegistrationManager = pushRegistrationManager
super.init()
SwiftSingletons.register(self)
}
public var pushManager: PushManager
private override init() {
let accountManager = AccountManager()
let notificationsManager = NotificationsManager()
let callNotificationsAdapter = CallNotificationsAdapter()
let callService = CallService()
let callMessageHandler = WebRTCCallMessageHandler()
let outboundCallInitiator = OutboundCallInitiator()
let messageFetcherJob = MessageFetcherJob()
let pushRegistrationManager = PushRegistrationManager()
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
self.messageFetcherJob = messageFetcherJob
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
self.pushRegistrationManager = pushRegistrationManager
self.callMessageHandler = WebRTCCallMessageHandler()
self.callService = CallService()
self.outboundCallInitiator = OutboundCallInitiator()
self.messageFetcherJob = MessageFetcherJob()
self.notificationsManager = NotificationsManager()
self.accountManager = AccountManager()
self.callNotificationsAdapter = CallNotificationsAdapter()
self.pushRegistrationManager = PushRegistrationManager()
self.pushManager = PushManager()
super.init()

@ -15,8 +15,6 @@ NS_ASSUME_NONNULL_BEGIN
@interface NotificationsManager : NSObject <NotificationsProtocol, OWSCallNotificationsAdaptee>
- (void)clearAllNotifications;
#ifdef DEBUG
+ (void)presentDebugNotification;

@ -39,8 +39,6 @@ typedef void (^pushTokensSuccessBlock)(NSString *pushToken, NSString *voipToken)
@property (nonatomic) BOOL hasPresentedConversationSinceLastDeactivation;
- (instancetype)init NS_UNAVAILABLE;
+ (PushManager *)sharedManager;
/**

@ -35,47 +35,26 @@ NSString *const Signal_Message_MarkAsRead_Identifier = @"Signal_Message_MarkAsRe
@property (nonatomic) NSMutableArray *currentNotifications;
@property (nonatomic) UIBackgroundTaskIdentifier callBackgroundTask;
@property (nonatomic, readonly) OWSMessageSender *messageSender;
@property (nonatomic, readonly) OWSMessageFetcherJob *messageFetcherJob;
@property (nonatomic, readonly) NotificationsManager *notificationsManager;
@end
@implementation PushManager
+ (instancetype)sharedManager {
static PushManager *sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[self alloc] initDefault];
});
return sharedManager;
}
OWSAssertDebug(AppEnvironment.shared.pushManager);
- (instancetype)initDefault
{
return [self initWithMessageFetcherJob:AppEnvironment.shared.messageFetcherJob
primaryStorage:[OWSPrimaryStorage sharedManager]
messageSender:SSKEnvironment.shared.messageSender
notificationsManager:AppEnvironment.shared.notificationsManager];
return AppEnvironment.shared.pushManager;
}
- (instancetype)initWithMessageFetcherJob:(OWSMessageFetcherJob *)messageFetcherJob
primaryStorage:(OWSPrimaryStorage *)primaryStorage
messageSender:(OWSMessageSender *)messageSender
notificationsManager:(NotificationsManager *)notificationsManager
{
- (instancetype)init {
self = [super init];
if (!self) {
return self;
}
_messageSender = messageSender;
_messageFetcherJob = messageFetcherJob;
_callBackgroundTask = UIBackgroundTaskInvalid;
// TODO: consolidate notification tracking with NotificationsManager, which also maintains a list of notifications.
_currentNotifications = [NSMutableArray array];
_notificationsManager = notificationsManager;
OWSSingletonAssert();
@ -87,6 +66,22 @@ NSString *const Signal_Message_MarkAsRead_Identifier = @"Signal_Message_MarkAsRe
return self;
}
#pragma mark - Dependencies
- (OWSMessageSender *)messageSender {
return SSKEnvironment.shared.messageSender;
}
- (OWSMessageFetcherJob *)messageFetcherJob {
return AppEnvironment.shared.messageFetcherJob;
}
- (id<NotificationsProtocol>)notificationsManager {
return SSKEnvironment.shared.notificationsManager;
}
#pragma mark -
- (CallUIAdapter *)callUIAdapter
{
return AppEnvironment.shared.callService.callUIAdapter;

@ -18,4 +18,8 @@ public class NoopNotificationsManager: NSObject, NotificationsProtocol {
public func notifyUser(forThreadlessErrorMessage error: TSErrorMessage, transaction: YapDatabaseReadWriteTransaction) {
Logger.warn("skipping notification for: \(error.description)")
}
public func clearAllNotifications() {
Logger.warn("clearAllNotifications")
}
}

@ -26,6 +26,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)notifyUserForThreadlessErrorMessage:(TSErrorMessage *)error
transaction:(YapDatabaseReadWriteTransaction *)transaction;
- (void)clearAllNotifications;
@end
NS_ASSUME_NONNULL_END

@ -13,15 +13,24 @@ NS_ASSUME_NONNULL_BEGIN
- (void)notifyUserForIncomingMessage:(TSIncomingMessage *)incomingMessage
inThread:(TSThread *)thread
contactsManager:(id<ContactsManagerProtocol>)contactsManager
{
transaction:(YapDatabaseReadTransaction *)transaction {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)notifyUserForErrorMessage:(TSErrorMessage *)error inThread:(TSThread *)thread
{
- (void)notifyUserForErrorMessage:(TSErrorMessage *)error
thread:(TSThread *)thread
transaction:(YapDatabaseReadWriteTransaction *)transaction {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)notifyUserForThreadlessErrorMessage:(TSErrorMessage *)error
transaction:(YapDatabaseReadWriteTransaction *)transaction {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)clearAllNotifications {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end

Loading…
Cancel
Save