Browse Source

implemented changes

Daniel Zlotin 8 years ago
parent
commit
deafe9e9e3

+ 8
- 8
android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java View File

4
 import android.os.Handler;
4
 import android.os.Handler;
5
 import android.support.annotation.Nullable;
5
 import android.support.annotation.Nullable;
6
 
6
 
7
+import com.facebook.react.ReactApplication;
8
+import com.facebook.react.ReactNativeHost;
7
 import com.facebook.react.ReactPackage;
9
 import com.facebook.react.ReactPackage;
8
 import com.facebook.react.bridge.ReactContext;
10
 import com.facebook.react.bridge.ReactContext;
9
 import com.facebook.react.bridge.WritableMap;
11
 import com.facebook.react.bridge.WritableMap;
10
 import com.reactnativenavigation.react.NavigationReactGateway;
12
 import com.reactnativenavigation.react.NavigationReactGateway;
11
 import com.reactnativenavigation.react.ReactGateway;
13
 import com.reactnativenavigation.react.ReactGateway;
14
+import com.reactnativenavigation.react.ReactGatewayHost;
12
 
15
 
13
 import java.util.List;
16
 import java.util.List;
14
 
17
 
15
-public abstract class NavigationApplication extends Application {
18
+public abstract class NavigationApplication extends Application implements ReactApplication {
16
 
19
 
17
     public static NavigationApplication instance;
20
     public static NavigationApplication instance;
18
 
21
 
19
-    private ReactGateway reactGateway;
22
+    private ReactGatewayHost reactGateway;
20
     private Handler handler;
23
     private Handler handler;
21
 
24
 
22
     @Override
25
     @Override
51
         // nothing
54
         // nothing
52
     }
55
     }
53
 
56
 
54
-    public String getJsEntryFileName() {
55
-        return "index.android";
56
-    }
57
-
58
-    public String getBundleAssetName() {
59
-        return "index.android.bundle";
57
+    @Override
58
+    public ReactNativeHost getReactNativeHost() {
59
+        return reactGateway;
60
     }
60
     }
61
 
61
 
62
     public abstract boolean isDebug();
62
     public abstract boolean isDebug();

+ 15
- 18
android/app/src/main/java/com/reactnativenavigation/react/NavigationReactGateway.java View File

3
 import android.app.Activity;
3
 import android.app.Activity;
4
 import android.content.Intent;
4
 import android.content.Intent;
5
 
5
 
6
-import com.facebook.react.LifecycleState;
7
 import com.facebook.react.ReactInstanceManager;
6
 import com.facebook.react.ReactInstanceManager;
8
 import com.facebook.react.ReactPackage;
7
 import com.facebook.react.ReactPackage;
9
 import com.facebook.react.bridge.ReactContext;
8
 import com.facebook.react.bridge.ReactContext;
16
 import java.util.ArrayList;
15
 import java.util.ArrayList;
17
 import java.util.List;
16
 import java.util.List;
18
 
17
 
19
-public class NavigationReactGateway implements ReactGateway, ReactInstanceManager.ReactInstanceEventListener {
18
+public class NavigationReactGateway extends ReactGatewayHost implements ReactInstanceManager.ReactInstanceEventListener {
20
 
19
 
21
     private OnJsDevReloadListener onJsDevReloadListener;
20
     private OnJsDevReloadListener onJsDevReloadListener;
22
     private ReactInstanceManager reactInstanceManager;
21
     private ReactInstanceManager reactInstanceManager;
23
     private NavigationReactEventEmitter reactEventEmitter;
22
     private NavigationReactEventEmitter reactEventEmitter;
24
 
23
 
25
     public NavigationReactGateway() {
24
     public NavigationReactGateway() {
25
+        super(NavigationApplication.instance);
26
         reactInstanceManager = createReactInstanceManager();
26
         reactInstanceManager = createReactInstanceManager();
27
     }
27
     }
28
 
28
 
88
         }).replace();
88
         }).replace();
89
     }
89
     }
90
 
90
 
91
-    private ReactInstanceManager createReactInstanceManager() {
92
-        ReactInstanceManager.Builder builder = ReactInstanceManager.builder()
93
-                .setApplication(NavigationApplication.instance)
94
-                .setJSMainModuleName(NavigationApplication.instance.getJsEntryFileName())
95
-                .setBundleAssetName(NavigationApplication.instance.getBundleAssetName())
96
-                .setUseDeveloperSupport(NavigationApplication.instance.isDebug())
97
-                .setInitialLifecycleState(LifecycleState.BEFORE_RESUME);
98
-
99
-        for (ReactPackage reactPackage : createReactPackages()) {
100
-            builder.addPackage(reactPackage);
101
-        }
102
-
103
-        ReactInstanceManager manager = builder.build();
104
-
91
+    @Override
92
+    protected ReactInstanceManager createReactInstanceManager() {
93
+        ReactInstanceManager manager = super.createReactInstanceManager();
105
         if (NavigationApplication.instance.isDebug()) {
94
         if (NavigationApplication.instance.isDebug()) {
106
             replaceJsDevReloadListener(manager);
95
             replaceJsDevReloadListener(manager);
107
         }
96
         }
108
-
109
         manager.addReactInstanceEventListener(this);
97
         manager.addReactInstanceEventListener(this);
110
-
111
         return manager;
98
         return manager;
112
     }
99
     }
113
 
100
 
101
+    @Override
102
+    protected boolean getUseDeveloperSupport() {
103
+        return NavigationApplication.instance.isDebug();
104
+    }
105
+
106
+    @Override
107
+    protected List<ReactPackage> getPackages() {
108
+        return createReactPackages();
109
+    }
110
+
114
     private List<ReactPackage> createReactPackages() {
111
     private List<ReactPackage> createReactPackages() {
115
         List<ReactPackage> list = new ArrayList<>();
112
         List<ReactPackage> list = new ArrayList<>();
116
         list.add(new MainReactPackage());
113
         list.add(new MainReactPackage());

+ 11
- 0
android/app/src/main/java/com/reactnativenavigation/react/ReactGatewayHost.java View File

1
+package com.reactnativenavigation.react;
2
+
3
+import android.app.Application;
4
+
5
+import com.facebook.react.ReactNativeHost;
6
+
7
+public abstract class ReactGatewayHost extends ReactNativeHost implements ReactGateway {
8
+    protected ReactGatewayHost(Application application) {
9
+        super(application);
10
+    }
11
+}

+ 1
- 1
example-redux/android/app/src/main/AndroidManifest.xml View File

4
     <uses-permission android:name="android.permission.INTERNET" />
4
     <uses-permission android:name="android.permission.INTERNET" />
5
 
5
 
6
     <application
6
     <application
7
-        android:name=".App"
7
+        android:name=".MainApplication"
8
         android:allowBackup="true"
8
         android:allowBackup="true"
9
         android:icon="@mipmap/ic_launcher"
9
         android:icon="@mipmap/ic_launcher"
10
         android:label="@string/app_name"
10
         android:label="@string/app_name"

example-redux/android/app/src/main/java/com/exampleredux/App.java → example-redux/android/app/src/main/java/com/exampleredux/MainApplication.java View File

1
 package com.exampleredux;
1
 package com.exampleredux;
2
 
2
 
3
-import android.support.annotation.NonNull;
3
+import android.support.annotation.Nullable;
4
 
4
 
5
 import com.facebook.react.ReactPackage;
5
 import com.facebook.react.ReactPackage;
6
 import com.reactnativenavigation.NavigationApplication;
6
 import com.reactnativenavigation.NavigationApplication;
7
 
7
 
8
-import java.util.Collections;
9
 import java.util.List;
8
 import java.util.List;
10
 
9
 
11
-public class App extends NavigationApplication {
10
+public class MainApplication extends NavigationApplication {
11
+
12
+
12
     @Override
13
     @Override
13
     public boolean isDebug() {
14
     public boolean isDebug() {
14
         return BuildConfig.DEBUG;
15
         return BuildConfig.DEBUG;
15
     }
16
     }
16
 
17
 
17
-    @NonNull
18
+    @Nullable
18
     @Override
19
     @Override
19
     public List<ReactPackage> createAdditionalReactPackages() {
20
     public List<ReactPackage> createAdditionalReactPackages() {
20
-        return Collections.emptyList();
21
+        return null;
21
     }
22
     }
22
 }
23
 }