mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
3bc09892c0
Summary: `addObserver` and `removeObserver` now accepts const references instead of pointers which indicates the intent (non-nullability and non-owning) clearly. The delegate methods are also marked as `const` to designate the possible concurrent execution (`const` means "thread-safe" here). All changes are pure syntactical, nothing really changes (besides the fact overall code quality and redability). Reviewed By: JoshuaGross Differential Revision: D17535395 fbshipit-source-id: b0c6c872d44fee22e38fd067ccd3320e7231c94a
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import "RCTImageResponseObserverProxy.h"
|
|
|
|
#import <react/imagemanager/ImageResponse.h>
|
|
#import <react/imagemanager/ImageResponseObserver.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
RCTImageResponseObserverProxy::RCTImageResponseObserverProxy(void *delegate)
|
|
: delegate_((__bridge id<RCTImageResponseDelegate>)delegate)
|
|
{
|
|
}
|
|
|
|
void RCTImageResponseObserverProxy::didReceiveImage(ImageResponse const &imageResponse) const
|
|
{
|
|
UIImage *image = (__bridge UIImage *)imageResponse.getImage().get();
|
|
auto this_ = this;
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
[delegate_ didReceiveImage:image fromObserver:this_];
|
|
});
|
|
}
|
|
|
|
void RCTImageResponseObserverProxy::didReceiveProgress(float progress) const
|
|
{
|
|
auto this_ = this;
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
[delegate_ didReceiveProgress:progress fromObserver:this_];
|
|
});
|
|
}
|
|
|
|
void RCTImageResponseObserverProxy::didReceiveFailure() const
|
|
{
|
|
auto this_ = this;
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
[delegate_ didReceiveFailureFromObserver:this_];
|
|
});
|
|
}
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|