| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_INSTALLATION_NOTIFIER_H_ |
| #define IOS_CHROME_BROWSER_INSTALLATION_NOTIFIER_H_ |
| |
| #import <Foundation/Foundation.h> |
| #include <stdint.h> |
| |
| // Protocol used to mock the delayed dispatching for the unit tests. |
| // Calls |block| after |delayInNSec|. |
| @protocol DispatcherProtocol<NSObject> |
| - (void)dispatchAfter:(int64_t)delayInNSec withBlock:(dispatch_block_t)block; |
| @end |
| |
| @interface InstallationNotifier : NSObject |
| // Returns singleton instance. |
| + (InstallationNotifier*)sharedInstance; |
| |
| // Registers |observer| to be sent a notification named |scheme| when a URL |
| // with |scheme| can be opened. |observer| must not be nil. If |scheme| is nil |
| // or an empty string, |observer| is not registered for anything. |
| - (void)registerForInstallationNotifications:(id)observer |
| withSelector:(SEL)notificationSelector |
| forScheme:(NSString*)scheme; |
| |
| // Unregisters all the NSNotifications ever asked by |observer|. |
| - (void)unregisterForNotifications:(id)observer; |
| |
| // Performs a check for installed apps right away and restarts the polling. |
| // There is usually no need for registered observers to call this method, unless |
| // registered observers need to know the accurate state of installed native |
| // apps. |
| - (void)checkNow; |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_INSTALLATION_NOTIFIER_H_ |