Files
react-native/ReactAndroid/src/main/java/com/facebook/react/flat/RCTImageViewManager.java
Felix Oghina 7320ca5c7a Add GlobalImageLoadListener
Reviewed By: AaaChiuuu

Differential Revision: D5932865

fbshipit-source-id: 700983d7fc44c4ee5f77b58ef54cec62869009e0
2017-09-29 08:55:56 -07:00

70 lines
2.0 KiB
Java

/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.flat;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeControllerBuilder;
import com.facebook.react.views.image.GlobalImageLoadListener;
import javax.annotation.Nullable;
public final class RCTImageViewManager extends FlatViewManager {
/* package */ static final String REACT_CLASS = "RCTImageView";
private @Nullable AbstractDraweeControllerBuilder mDraweeControllerBuilder;
private @Nullable GlobalImageLoadListener mGlobalImageLoadListener;
private final @Nullable Object mCallerContext;
public RCTImageViewManager() {
this(null, null);
}
public RCTImageViewManager(
AbstractDraweeControllerBuilder draweeControllerBuilder,
Object callerContext) {
this(draweeControllerBuilder, null, callerContext);
}
public RCTImageViewManager(
AbstractDraweeControllerBuilder draweeControllerBuilder,
@Nullable GlobalImageLoadListener globalImageLoadListener,
Object callerContext) {
mDraweeControllerBuilder = draweeControllerBuilder;
mGlobalImageLoadListener = globalImageLoadListener;
mCallerContext = callerContext;
}
@Override
public String getName() {
return REACT_CLASS;
}
@Override
public RCTImageView createShadowNodeInstance() {
return new RCTImageView(new DrawImageWithDrawee(mGlobalImageLoadListener));
}
@Override
public Class<RCTImageView> getShadowNodeClass() {
return RCTImageView.class;
}
public AbstractDraweeControllerBuilder getDraweeControllerBuilder() {
if (mDraweeControllerBuilder == null) {
mDraweeControllerBuilder = Fresco.newDraweeControllerBuilder();
}
return mDraweeControllerBuilder;
}
public Object getCallerContext() {
return mCallerContext;
}
}