Integrate ReactContextContainerFactory as part of ReactImageViewManager

Summary:
This diff exposes the ReactContextContainerFactory class on ReactImageViewManager and it customize ChainContext to improve Fresco logging

Changelog: Expose new ReactContextContainerFactory class as part of ReactImageViewManager

Reviewed By: JoshuaGross

Differential Revision: D18474013

fbshipit-source-id: 143461da22966694e5b1e2c3b5b39e3d6be91fd6
This commit is contained in:
David Vacca
2019-11-15 17:24:41 -08:00
committed by Facebook Github Bot
parent f0b6f8441b
commit 882e4a3f17
@@ -39,25 +39,45 @@ public class ReactImageManager extends SimpleViewManager<ReactImageView> {
private @Nullable AbstractDraweeControllerBuilder mDraweeControllerBuilder;
private @Nullable GlobalImageLoadListener mGlobalImageLoadListener;
private final @Nullable Object mCallerContext;
private final @Nullable ReactCallerContextFactory mCallerContextFactory;
public ReactImageManager(
AbstractDraweeControllerBuilder draweeControllerBuilder, Object callerContext) {
@Nullable AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable Object callerContext) {
this(draweeControllerBuilder, null, callerContext);
}
public ReactImageManager(
AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable GlobalImageLoadListener globalImageLoadListener,
Object callerContext) {
@Nullable Object callerContext) {
mDraweeControllerBuilder = draweeControllerBuilder;
mGlobalImageLoadListener = globalImageLoadListener;
mCallerContext = callerContext;
mCallerContextFactory = null;
}
public ReactImageManager(
@Nullable AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable ReactCallerContextFactory callerContextFactory) {
this(draweeControllerBuilder, null, callerContextFactory);
}
public ReactImageManager(
@Nullable AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable GlobalImageLoadListener globalImageLoadListener,
@Nullable ReactCallerContextFactory callerContextFactory) {
mDraweeControllerBuilder = draweeControllerBuilder;
mGlobalImageLoadListener = globalImageLoadListener;
mCallerContextFactory = callerContextFactory;
mCallerContext = null;
}
public ReactImageManager() {
// Lazily initialize as FrescoModule have not been initialized yet
mDraweeControllerBuilder = null;
mCallerContext = null;
mCallerContextFactory = null;
}
public AbstractDraweeControllerBuilder getDraweeControllerBuilder() {
@@ -73,8 +93,12 @@ public class ReactImageManager extends SimpleViewManager<ReactImageView> {
@Override
public ReactImageView createViewInstance(ThemedReactContext context) {
Object callerContext =
mCallerContextFactory != null
? mCallerContextFactory.getOrCreateCallerContext(context)
: getCallerContext();
return new ReactImageView(
context, getDraweeControllerBuilder(), mGlobalImageLoadListener, getCallerContext());
context, getDraweeControllerBuilder(), mGlobalImageLoadListener, callerContext);
}
// In JS this is Image.props.source