Daniel Zlotin 7 anos atrás
pai
commit
7f913b1603

+ 7
- 7
lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java Ver arquivo

@@ -9,7 +9,7 @@ import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
9 9
 import com.reactnativenavigation.viewcontrollers.ViewController;
10 10
 
11 11
 public class NavigationActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
12
-	private ViewController layout;
12
+	private ViewController viewController;
13 13
 
14 14
 	@Override
15 15
 	protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -37,13 +37,13 @@ public class NavigationActivity extends AppCompatActivity implements DefaultHard
37 37
 	}
38 38
 
39 39
 
40
-	public void setLayout(ViewController layout) {
41
-		this.layout = layout;
42
-		setContentView(layout.getView());
40
+	public void setViewController(ViewController viewController) {
41
+		this.viewController = viewController;
42
+		setContentView(viewController.getView());
43 43
 	}
44 44
 
45
-	public ViewController getLayout() {
46
-		return layout;
45
+	public ViewController getViewController() {
46
+		return viewController;
47 47
 	}
48 48
 
49 49
 	@Override
@@ -53,7 +53,7 @@ public class NavigationActivity extends AppCompatActivity implements DefaultHard
53 53
 
54 54
 	@Override
55 55
 	public void onBackPressed() {
56
-		if (!layout.handleBack()) {
56
+		if (!viewController.handleBack()) {
57 57
 			super.onBackPressed();
58 58
 		}
59 59
 	}

+ 0
- 1
lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java Ver arquivo

@@ -4,7 +4,6 @@ import android.app.Application;
4 4
 
5 5
 import com.facebook.react.ReactApplication;
6 6
 import com.facebook.react.ReactNativeHost;
7
-import com.reactnativenavigation.controllers.Store;
8 7
 import com.reactnativenavigation.react.NavigationReactInitializer;
9 8
 import com.reactnativenavigation.react.NavigationReactNativeHost;
10 9
 

lib/android/app/src/main/java/com/reactnativenavigation/controllers/Store.java → lib/android/app/src/main/java/com/reactnativenavigation/Store.java Ver arquivo

@@ -1,4 +1,4 @@
1
-package com.reactnativenavigation.controllers;
1
+package com.reactnativenavigation;
2 2
 
3 3
 import com.reactnativenavigation.viewcontrollers.ViewController;
4 4
 
@@ -8,8 +8,8 @@ import java.util.Map;
8 8
 public class Store {
9 9
 	private Map<String, ViewController> viewControllersById = new HashMap<>();
10 10
 
11
-	public void setViewController(String id, ViewController layout) {
12
-		viewControllersById.put(id, layout);
11
+	public void setViewController(String id, ViewController viewController) {
12
+		viewControllersById.put(id, viewController);
13 13
 	}
14 14
 
15 15
 	public ViewController getViewController(String id) {

+ 3
- 3
lib/android/app/src/main/java/com/reactnativenavigation/layout/LayoutFactory.java Ver arquivo

@@ -3,7 +3,7 @@ package com.reactnativenavigation.layout;
3 3
 import android.app.Activity;
4 4
 
5 5
 import com.facebook.react.ReactInstanceManager;
6
-import com.reactnativenavigation.controllers.Store;
6
+import com.reactnativenavigation.Store;
7 7
 import com.reactnativenavigation.layout.impl.RootLayout;
8 8
 import com.reactnativenavigation.viewcontrollers.StackController;
9 9
 import com.reactnativenavigation.viewcontrollers.ViewController;
@@ -11,8 +11,8 @@ import com.reactnativenavigation.viewcontrollers.ViewController;
11 11
 public class LayoutFactory {
12 12
 
13 13
 	private final Activity activity;
14
-	private ReactInstanceManager reactInstanceManager;
15
-	private Store store;
14
+	private final ReactInstanceManager reactInstanceManager;
15
+	private final Store store;
16 16
 
17 17
 	public LayoutFactory(Activity activity, final ReactInstanceManager reactInstanceManager, final Store store) {
18 18
 		this.activity = activity;

+ 2
- 2
lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java Ver arquivo

@@ -6,7 +6,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
6 6
 import com.facebook.react.bridge.ReactMethod;
7 7
 import com.facebook.react.bridge.ReadableMap;
8 8
 import com.reactnativenavigation.NavigationActivity;
9
-import com.reactnativenavigation.controllers.Store;
9
+import com.reactnativenavigation.Store;
10 10
 import com.reactnativenavigation.layout.LayoutFactory;
11 11
 import com.reactnativenavigation.layout.LayoutNode;
12 12
 import com.reactnativenavigation.parse.JSONParser;
@@ -38,7 +38,7 @@ public class NavigationModule extends ReactContextBaseJavaModule {
38 38
 				final LayoutNode layoutTree = LayoutNodeParser.parse(JSONParser.parse(rawLayoutTree));
39 39
 				LayoutFactory factory = new LayoutFactory(activity(), reactInstanceManager, store);
40 40
 				final ViewController rootView = factory.createAndSaveToStore(layoutTree);
41
-				activity().setLayout(rootView);
41
+				activity().setViewController(rootView);
42 42
 			}
43 43
 		});
44 44
 	}

+ 1
- 1
lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.java Ver arquivo

@@ -6,7 +6,7 @@ import com.facebook.react.bridge.JavaScriptModule;
6 6
 import com.facebook.react.bridge.NativeModule;
7 7
 import com.facebook.react.bridge.ReactApplicationContext;
8 8
 import com.facebook.react.uimanager.ViewManager;
9
-import com.reactnativenavigation.controllers.Store;
9
+import com.reactnativenavigation.Store;
10 10
 
11 11
 import java.util.Arrays;
12 12
 import java.util.Collections;

+ 1
- 1
lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationReactNativeHost.java Ver arquivo

@@ -5,7 +5,7 @@ import android.app.Application;
5 5
 import com.facebook.react.ReactNativeHost;
6 6
 import com.facebook.react.ReactPackage;
7 7
 import com.facebook.react.shell.MainReactPackage;
8
-import com.reactnativenavigation.controllers.Store;
8
+import com.reactnativenavigation.Store;
9 9
 
10 10
 import java.util.Arrays;
11 11
 import java.util.List;

+ 31
- 0
lib/android/app/src/test/java/com/reactnativenavigation/StoreTest.java Ver arquivo

@@ -0,0 +1,31 @@
1
+package com.reactnativenavigation;
2
+
3
+import android.app.Activity;
4
+
5
+import com.reactnativenavigation.mocks.SimpleViewController;
6
+
7
+import org.junit.Test;
8
+
9
+import static org.assertj.core.api.Java6Assertions.assertThat;
10
+import static org.mockito.Mockito.mock;
11
+
12
+public class StoreTest extends BaseTest {
13
+
14
+	private Store uut;
15
+
16
+	@Override
17
+	public void beforeEach() {
18
+		super.beforeEach();
19
+		uut = new Store();
20
+	}
21
+
22
+	@Test
23
+	public void holdsViewControllersById() throws Exception {
24
+		SimpleViewController viewController = new SimpleViewController(mock(Activity.class), "my controller");
25
+
26
+		assertThat(uut.getViewController("the id")).isNull();
27
+
28
+		uut.setViewController("the id", viewController);
29
+		assertThat(uut.getViewController("the id")).isEqualTo(viewController);
30
+	}
31
+}