NSURL* url = [NSURL URLWithString:base::SysUTF8ToNSString(feed)];
NSURLRequest* urlRequest = [NSURLRequest requestWithURL:url];
g_updater = [[SQRLUpdater alloc] initWithUpdateRequest:urlRequest];
+
+ AutoUpdaterDelegate* delegate = GetDelegate();
+ if (!delegate)
+ return;
+
+ // Subscribe to events.
+ __block bool has_update = false;
+ [g_updater.updates subscribeNext:^(SQRLDownloadedUpdate* downloadedUpdate) {
+ has_update = true;
+
+ // There is a new update that has been downloaded.
+ SQRLUpdate* update = downloadedUpdate.update;
+ delegate->OnUpdateDownloaded(
+ base::SysNSStringToUTF8(update.releaseNotes),
+ base::SysNSStringToUTF8(update.releaseName),
+ base::Time::FromDoubleT(update.releaseDate.timeIntervalSince1970),
+ base::SysNSStringToUTF8(update.updateURL.absoluteString),
+ base::Bind(RelaunchToInstallUpdate));
+ } completed:^() {
+ // When the completed event is sent with no update, then we know there
+ // is no update available.
+ if (!has_update)
+ delegate->OnUpdateNotAvailable();
+ has_update = false;
+ }];
}
}
if (!delegate)
return;
- // Subscribe to events.
- __block bool has_update = false;
- [signal subscribeNext:^(SQRLDownloadedUpdate* downloadedUpdate) {
- has_update = true;
-
- // There is a new update that has been downloaded.
- SQRLUpdate* update = downloadedUpdate.update;
- delegate->OnUpdateDownloaded(
- base::SysNSStringToUTF8(update.releaseNotes),
- base::SysNSStringToUTF8(update.releaseName),
- base::Time::FromDoubleT(update.releaseDate.timeIntervalSince1970),
- base::SysNSStringToUTF8(update.updateURL.absoluteString),
- base::Bind(RelaunchToInstallUpdate));
- } error:^(NSError* error) {
+ [signal subscribeError:^(NSError* error) {
// Something wrong happened.
delegate->OnError(base::SysNSStringToUTF8(error.localizedDescription));
- } completed:^() {
- // When the completed event is sent with no update, then we know there
- // is no update available.
- if (!has_update)
- delegate->OnUpdateNotAvailable();
- has_update = false;
}];
}