From b938cd524a20c239a5d67e4a1150cd19e00e45ba Mon Sep 17 00:00:00 2001 From: Ram N Date: Mon, 23 Jul 2018 10:08:38 -0700 Subject: [PATCH] Removed dependency on ReactInstancePackage Reviewed By: achen1 Differential Revision: D8926248 fbshipit-source-id: 8ab7f3f0cd7bdecc9b0d2cd560ed5da89075d3ba --- .../facebook/react/CompositeReactPackage.java | 66 +++++-------------- .../facebook/react/ReactInstancePackage.java | 2 + 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java b/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java index 7aff02cfccfef3..a824abcfb1a77a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java @@ -1,10 +1,9 @@ /** * Copyright (c) 2015-present, Facebook, Inc. * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. + *

This source code is licensed under the MIT license found in the LICENSE file in the root + * directory of this source tree. */ - package com.facebook.react; import com.facebook.react.bridge.NativeModule; @@ -24,16 +23,15 @@ * {@code CompositeReactPackage} allows to create a single package composed of views and modules * from several other packages. */ -public class CompositeReactPackage extends ReactInstancePackage - implements ViewManagerOnDemandReactPackage { +public class CompositeReactPackage implements ViewManagerOnDemandReactPackage, ReactPackage { private final List mChildReactPackages = new ArrayList<>(); /** - * The order in which packages are passed matters. It may happen that a NativeModule or - * or a ViewManager exists in two or more ReactPackages. In that case the latter will win - * i.e. the latter will overwrite the former. This re-occurrence is detected by - * comparing a name of a module. + * The order in which packages are passed matters. It may happen that a NativeModule or or a + * ViewManager exists in two or more ReactPackages. In that case the latter will win i.e. the + * latter will overwrite the former. This re-occurrence is detected by comparing a name of a + * module. */ public CompositeReactPackage(ReactPackage arg1, ReactPackage arg2, ReactPackage... args) { mChildReactPackages.add(arg1); @@ -42,54 +40,25 @@ public CompositeReactPackage(ReactPackage arg1, ReactPackage arg2, ReactPackage. Collections.addAll(mChildReactPackages, args); } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public List createNativeModules(ReactApplicationContext reactContext) { // This is for backward compatibility. final Map moduleMap = new HashMap<>(); - for (ReactPackage reactPackage: mChildReactPackages) { - for (NativeModule nativeModule: reactPackage.createNativeModules(reactContext)) { - moduleMap.put(nativeModule.getName(), nativeModule); - } - } - return new ArrayList<>(moduleMap.values()); - } - - /** - * {@inheritDoc} - */ - @Override - public List createNativeModules( - ReactApplicationContext reactContext, - ReactInstanceManager reactInstanceManager) { - final Map moduleMap = new HashMap<>(); - for (ReactPackage reactPackage: mChildReactPackages) { - List nativeModules; - if (reactPackage instanceof ReactInstancePackage) { - ReactInstancePackage reactInstancePackage = (ReactInstancePackage) reactPackage; - nativeModules = reactInstancePackage.createNativeModules( - reactContext, - reactInstanceManager); - } else { - nativeModules = reactPackage.createNativeModules(reactContext); - } - for (NativeModule nativeModule: nativeModules) { + for (ReactPackage reactPackage : mChildReactPackages) { + for (NativeModule nativeModule : reactPackage.createNativeModules(reactContext)) { moduleMap.put(nativeModule.getName(), nativeModule); } } return new ArrayList<>(moduleMap.values()); } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public List createViewManagers(ReactApplicationContext reactContext) { final Map viewManagerMap = new HashMap<>(); - for (ReactPackage reactPackage: mChildReactPackages) { - for (ViewManager viewManager: reactPackage.createViewManagers(reactContext)) { + for (ReactPackage reactPackage : mChildReactPackages) { + for (ViewManager viewManager : reactPackage.createViewManagers(reactContext)) { viewManagerMap.put(viewManager.getName(), viewManager); } } @@ -103,8 +72,7 @@ public List getViewManagerNames(ReactApplicationContext reactContext) { for (ReactPackage reactPackage : mChildReactPackages) { if (reactPackage instanceof ViewManagerOnDemandReactPackage) { List names = - ((ViewManagerOnDemandReactPackage) reactPackage) - .getViewManagerNames(reactContext); + ((ViewManagerOnDemandReactPackage) reactPackage).getViewManagerNames(reactContext); if (names != null) { uniqueNames.addAll(names); } @@ -115,8 +83,10 @@ public List getViewManagerNames(ReactApplicationContext reactContext) { /** {@inheritDoc} */ @Override - public @Nullable ViewManager createViewManager(ReactApplicationContext reactContext, String viewManagerName) { - ListIterator iterator = mChildReactPackages.listIterator(mChildReactPackages.size()); + public @Nullable ViewManager createViewManager( + ReactApplicationContext reactContext, String viewManagerName) { + ListIterator iterator = + mChildReactPackages.listIterator(mChildReactPackages.size()); while (iterator.hasPrevious()) { ReactPackage reactPackage = iterator.previous(); if (reactPackage instanceof ViewManagerOnDemandReactPackage) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java index 03e872ae79da8b..98df50ba8a2991 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstancePackage.java @@ -18,7 +18,9 @@ * the instance manager for more information, like {@link DevSupportManager}. * * TODO(t11394819): Consolidate this with LazyReactPackage + * Use {@link ReactPackage} or {@link LazyReactPackage} and inject reactInstanceManager as a part of when plugins are initialized. */ +@Deprecated public abstract class ReactInstancePackage implements ReactPackage { public abstract List createNativeModules(