mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-05 17:30:38 +08:00
Android: Enable apps to provide a custom configuration to Fresco
Summary: The `FrescoModule` supports providing a custom image pipeline configuration. This module is created by `MainReactPackage` but `MainReactPackage` doesn't expose any way to customize the Fresco configuration. This change adds a parameter to `MainReactPackage`'s constructor so that the `FrescoModule`'s configuration can be customized by the app. A couple of design choices were made in this change: - `MainReactPackage`'s new constructor parameter is a `MainPackageConfig`. Introducing `MainPackageConfig` enables `MainReactPackage` to nicely support new optional configuration options in the future. Imagine the alternative of each optional configuration being a separate parameter to the `MainReactPackage` constructor. - `FrescoModule` exposes its default configuration as a builder object through the `getDefaultConfigBuilder` method. This enables app's to start with `FrescoModule`'s default configuration and then modify it. **Test plan (required)** Verified that passing a custom config based on React Nati Closes https://github.com/facebook/react-native/pull/10906 Differential Revision: D4237054 Pulled By: mkonicek fbshipit-source-id: 8a62a6f0e77ca5f6d35238950094686756262196
This commit is contained in:
committed by
Facebook Github Bot
parent
fde4fb1485
commit
8b199a7fd0
@@ -111,14 +111,23 @@ public class FrescoModule extends ReactContextBaseJavaModule implements
|
||||
}
|
||||
|
||||
private static ImagePipelineConfig getDefaultConfig(Context context) {
|
||||
return getDefaultConfigBuilder(context).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default Fresco configuration builder.
|
||||
* Allows adding of configuration options in addition to the default values.
|
||||
*
|
||||
* @return {@link ImagePipelineConfig.Builder} that has been initialized with default values
|
||||
*/
|
||||
public static ImagePipelineConfig.Builder getDefaultConfigBuilder(Context context) {
|
||||
HashSet<RequestListener> requestListeners = new HashSet<>();
|
||||
requestListeners.add(new SystraceRequestListener());
|
||||
|
||||
return OkHttpImagePipelineConfigFactory
|
||||
.newBuilder(context.getApplicationContext(), OkHttpClientProvider.getOkHttpClient())
|
||||
.setDownsampleEnabled(false)
|
||||
.setRequestListeners(requestListeners)
|
||||
.build();
|
||||
.setRequestListeners(requestListeners);
|
||||
}
|
||||
|
||||
private static class FrescoHandler implements SoLoaderShim.Handler {
|
||||
|
||||
Reference in New Issue
Block a user