55import android .content .pm .PackageManager ;
66import android .content .res .Resources ;
77
8- import com .facebook .react .ReactHost ;
98import com .facebook .react .ReactInstanceManager ;
10- import com .facebook .react .BaseReactPackage ;
9+ import com .facebook .react .ReactPackage ;
1110import com .facebook .react .bridge .JavaScriptModule ;
1211import com .facebook .react .bridge .NativeModule ;
1312import com .facebook .react .bridge .ReactApplicationContext ;
14- import com .facebook .react .module .model .ReactModuleInfo ;
15- import com .facebook .react .module .model .ReactModuleInfoProvider ;
1613import com .facebook .react .uimanager .ViewManager ;
1714
1815import org .json .JSONException ;
1916import org .json .JSONObject ;
2017
2118import java .io .File ;
2219import java .util .ArrayList ;
23- import java .util .HashMap ;
2420import java .util .List ;
25- import java .util .Map ;
2621
27- public class CodePush extends BaseReactPackage {
22+ public class CodePush implements ReactPackage {
2823 private static final Object LOCK = new Object ();
2924 private static volatile CodePush mCurrentInstance ;
3025 public static CodePush getInstance (String deploymentKey , Context context , boolean isDebugMode ) {
@@ -64,6 +59,7 @@ public static CodePush getInstance(String deploymentKey, Context context, boolea
6459 private static ReactInstanceHolder mReactInstanceHolder ;
6560
6661 private static ReactHostHolder mReactHostHolder ;
62+ private static Object mReactHost ;
6763
6864 public CodePush (String deploymentKey , Context context ) {
6965 this (deploymentKey , context , false );
@@ -410,14 +406,22 @@ public static void setReactHost(ReactHostHolder reactHostHolder) {
410406 mReactHostHolder = reactHostHolder ;
411407 }
412408
409+ public static void setReactHost (Object reactHost ) {
410+ mReactHost = reactHost ;
411+ }
412+
413413 static ReactInstanceManager getReactInstanceManager () {
414414 if (mReactInstanceHolder == null ) {
415415 return null ;
416416 }
417417 return mReactInstanceHolder .getReactInstanceManager ();
418418 }
419419
420- static ReactHost getReactHost () {
420+ static Object getReactHost () {
421+ if (mReactHost != null ) {
422+ return mReactHost ;
423+ }
424+
421425 if (mReactHostHolder == null ) {
422426 return null ;
423427 }
@@ -426,14 +430,11 @@ static ReactHost getReactHost() {
426430 }
427431
428432 @ Override
429- public NativeModule getModule (String name , ReactApplicationContext reactApplicationContext ) {
430- if (CodePushNativeModule .NAME .equals (name )) {
431- return new CodePushNativeModule (reactApplicationContext , this , mUpdateManager , mTelemetryManager , mSettingsManager );
432- }
433- if (CodePushDialog .NAME .equals (name )) {
434- return new CodePushDialog (reactApplicationContext );
435- }
436- return null ;
433+ public List <NativeModule > createNativeModules (ReactApplicationContext reactApplicationContext ) {
434+ List <NativeModule > modules = new ArrayList <>();
435+ modules .add (new CodePushNativeModule (reactApplicationContext , this , mUpdateManager , mTelemetryManager , mSettingsManager ));
436+ modules .add (new CodePushDialog (reactApplicationContext ));
437+ return modules ;
437438 }
438439
439440 // Deprecated in RN v0.47.
@@ -445,42 +446,4 @@ public List<Class<? extends JavaScriptModule>> createJSModules() {
445446 public List <ViewManager > createViewManagers (ReactApplicationContext reactApplicationContext ) {
446447 return new ArrayList <>();
447448 }
448-
449- @ Override
450- public ReactModuleInfoProvider getReactModuleInfoProvider () {
451- return new ReactModuleInfoProvider () {
452- @ Override
453- public Map <String , ReactModuleInfo > getReactModuleInfos () {
454- boolean isTurboModule = BuildConfig .IS_NEW_ARCHITECTURE_ENABLED ;
455-
456- Map <String , ReactModuleInfo > map = new HashMap <>();
457- map .put (
458- CodePushNativeModule .NAME ,
459- new ReactModuleInfo (
460- CodePushNativeModule .NAME ,
461- CodePushNativeModule .NAME ,
462- false ,
463- false ,
464- true ,
465- false ,
466- isTurboModule
467- )
468- );
469- map .put (
470- CodePushDialog .NAME ,
471- new ReactModuleInfo (
472- CodePushDialog .NAME ,
473- CodePushDialog .NAME ,
474- false ,
475- false ,
476- false ,
477- false ,
478- isTurboModule
479- )
480- );
481-
482- return map ;
483- }
484- };
485- }
486449}
0 commit comments