|
@@ -10,6 +10,10 @@ import android.view.KeyEvent;
|
10
|
10
|
import com.facebook.react.ReactInstanceManager;
|
11
|
11
|
|
12
|
12
|
public class JsDevReloadHandler {
|
|
13
|
+ public interface ReloadListener {
|
|
14
|
+ void onReload();
|
|
15
|
+ }
|
|
16
|
+
|
13
|
17
|
private static final String RELOAD_BROADCAST = "com.reactnativenavigation.broadcast.RELOAD";
|
14
|
18
|
private final BroadcastReceiver reloadReceiver = new BroadcastReceiver() {
|
15
|
19
|
@Override
|
|
@@ -19,11 +23,22 @@ public class JsDevReloadHandler {
|
19
|
23
|
};
|
20
|
24
|
private final ReactInstanceManager reactInstanceManager;
|
21
|
25
|
private long firstRTimestamp = 0;
|
|
26
|
+ private ReloadListener reloadListener;
|
22
|
27
|
|
23
|
|
- public JsDevReloadHandler(final ReactInstanceManager reactInstanceManager) {
|
|
28
|
+ JsDevReloadHandler(final ReactInstanceManager reactInstanceManager) {
|
24
|
29
|
this.reactInstanceManager = reactInstanceManager;
|
25
|
30
|
}
|
26
|
31
|
|
|
32
|
+ public void addReloadListener(ReloadListener listener) {
|
|
33
|
+ reloadListener = listener;
|
|
34
|
+ }
|
|
35
|
+
|
|
36
|
+ public void removeReloadListener(ReloadListener listener) {
|
|
37
|
+ if (reloadListener == listener) {
|
|
38
|
+ reloadListener = null;
|
|
39
|
+ }
|
|
40
|
+ }
|
|
41
|
+
|
27
|
42
|
public void onActivityResumed(Activity activity) {
|
28
|
43
|
activity.registerReceiver(reloadReceiver, new IntentFilter(RELOAD_BROADCAST));
|
29
|
44
|
}
|
|
@@ -57,6 +72,7 @@ public class JsDevReloadHandler {
|
57
|
72
|
}
|
58
|
73
|
|
59
|
74
|
private void reloadReactNative() {
|
|
75
|
+ reloadListener.onReload();
|
60
|
76
|
reactInstanceManager.getDevSupportManager().handleReloadJS();
|
61
|
77
|
}
|
62
|
78
|
}
|