mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
8b199a7fd0
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
43 lines
1022 B
Java
43 lines
1022 B
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.shell;
|
|
|
|
import com.facebook.imagepipeline.core.ImagePipelineConfig;
|
|
|
|
/**
|
|
* Configuration for {@link MainReactPackage}
|
|
*/
|
|
public class MainPackageConfig {
|
|
|
|
private ImagePipelineConfig mFrescoConfig;
|
|
|
|
private MainPackageConfig(Builder builder) {
|
|
mFrescoConfig = builder.mFrescoConfig;
|
|
}
|
|
|
|
public ImagePipelineConfig getFrescoConfig() {
|
|
return mFrescoConfig;
|
|
}
|
|
|
|
public static class Builder {
|
|
|
|
private ImagePipelineConfig mFrescoConfig;
|
|
|
|
public Builder setFrescoConfig(ImagePipelineConfig frescoConfig) {
|
|
mFrescoConfig = frescoConfig;
|
|
return this;
|
|
}
|
|
|
|
public MainPackageConfig build() {
|
|
return new MainPackageConfig(this);
|
|
}
|
|
}
|
|
}
|