Skip to content

Commit

Permalink
v0.62 Support (#5795)
Browse files Browse the repository at this point in the history
react native 0.62 Support
  • Loading branch information
safaiyeh authored Jan 29, 2020
1 parent 0741799 commit 4bfa7c5
Show file tree
Hide file tree
Showing 5 changed files with 177 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ android {
dimension "RNN.reactNativeVersion"
buildConfigField("int", "REACT_NATVE_VERSION_MINOR", "60")
}
reactNative62 {
dimension "RNN.reactNativeVersion"
buildConfigField("int", "REACT_NATVE_VERSION_MINOR", "62")
}
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.reactnativenavigation.react;

import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;

import javax.annotation.Nullable;

public class DevBundleDownloadListenerAdapter implements DevBundleDownloadListener, NavigationDevBundleDownloadListener {
@Override
public void onSuccess() {
onSuccess();
}

@Override
public void onProgress(@Nullable String status, @Nullable Integer done, @Nullable Integer total) {

}

@Override
public void onFailure(Exception cause) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.reactnativenavigation.react;

import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;

import javax.annotation.Nullable;

public class JsDevReloadHandlerFacade implements DevBundleDownloadListener, NavigationDevBundleDownloadListener {
@Override
public void onSuccess() {
onSuccess();
}

@Override
public void onProgress(@Nullable String status, @Nullable Integer done, @Nullable Integer total) {

}

@Override
public void onFailure(Exception cause) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package com.reactnativenavigation.react;

import android.app.Application;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.facebook.infer.annotation.Assertions;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactInstanceManagerBuilder;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
import com.facebook.react.shell.MainReactPackage;
import com.reactnativenavigation.NavigationApplication;

import java.util.ArrayList;
import java.util.List;

/**
* Default implementation of {@link ReactNativeHost} that includes {@link NavigationPackage}
* and user-defined additional packages.
*/
public class NavigationReactNativeHost extends ReactNativeHost implements BundleDownloadListenerProvider {

private final boolean isDebug;
private final List<ReactPackage> additionalReactPackages;
private @Nullable NavigationDevBundleDownloadListener bundleListener;
private final DevBundleDownloadListener bundleListenerMediator = new DevBundleDownloadListenerAdapter() {
@Override
public void onSuccess() {
if (bundleListener != null) {
bundleListener.onSuccess();
}
}
};

public NavigationReactNativeHost(NavigationApplication application) {
this(application, application.isDebug(), application.createAdditionalReactPackages());
}

@SuppressWarnings("WeakerAccess")
public NavigationReactNativeHost(Application application, boolean isDebug, final List<ReactPackage> additionalReactPackages) {
super(application);
this.isDebug = isDebug;
this.additionalReactPackages = additionalReactPackages;
}

@Override
public void setBundleLoaderListener(NavigationDevBundleDownloadListener listener) {
bundleListener = listener;
}

@Override
public boolean getUseDeveloperSupport() {
return isDebug;
}

@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new ArrayList<>();
boolean hasMainReactPackage = false;
packages.add(new NavigationPackage(this));
if (additionalReactPackages != null) {
for (ReactPackage p : additionalReactPackages) {
if (!(p instanceof NavigationPackage)) {
packages.add(p);
}
if (p instanceof MainReactPackage) hasMainReactPackage = true;
}
}
if (!hasMainReactPackage) {
packages.add(new MainReactPackage());
}
return packages;
}

protected ReactInstanceManager createReactInstanceManager() {
ReactInstanceManagerBuilder builder = ReactInstanceManager.builder()
.setApplication(getApplication())
.setJSMainModulePath(getJSMainModuleName())
.setUseDeveloperSupport(getUseDeveloperSupport())
.setRedBoxHandler(getRedBoxHandler())
.setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
.setUIImplementationProvider(getUIImplementationProvider())
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE)
.setDevBundleDownloadListener(getDevBundleDownloadListener());

for (ReactPackage reactPackage : getPackages()) {
builder.addPackage(reactPackage);
}

String jsBundleFile = getJSBundleFile();
if (jsBundleFile != null) {
builder.setJSBundleFile(jsBundleFile);
} else {
builder.setBundleAssetName(Assertions.assertNotNull(getBundleAssetName()));
}
return builder.build();
}

@SuppressWarnings("WeakerAccess")
@NonNull
protected DevBundleDownloadListener getDevBundleDownloadListener() {
return bundleListenerMediator;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.reactnativenavigation.react;

import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;

import javax.annotation.Nullable;

public abstract class ReloadHandlerFacade implements DevBundleDownloadListener {
@Override
public void onSuccess() {

}

@Override
public void onProgress(@Nullable String status, @Nullable Integer done, @Nullable Integer total) {

}

@Override
public void onFailure(Exception cause) {

}
}

0 comments on commit 4bfa7c5

Please sign in to comment.