Ver código fonte

android: clearing the activity from view concerns

Daniel Zlotin 7 anos atrás
pai
commit
bd7e110a94

+ 13
- 15
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationActivity.java Ver arquivo

@@ -1,6 +1,7 @@
1 1
 package com.reactnativenavigation.controllers;
2 2
 
3 3
 import android.os.Bundle;
4
+import android.support.annotation.Nullable;
4 5
 import android.support.v7.app.AppCompatActivity;
5 6
 import android.view.View;
6 7
 
@@ -11,7 +12,6 @@ import com.facebook.react.bridge.ReactContext;
11 12
 import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
12 13
 import com.facebook.react.shell.MainReactPackage;
13 14
 import com.reactnativenavigation.R;
14
-import com.reactnativenavigation.layout.StackLayout;
15 15
 import com.reactnativenavigation.react.NavigationEventEmitter;
16 16
 import com.reactnativenavigation.react.NavigationPackage;
17 17
 import com.reactnativenavigation.react.ReactDevPermission;
@@ -22,7 +22,7 @@ import java.util.List;
22 22
 public class NavigationActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
23 23
     public static NavigationActivity instance;
24 24
     private ReactNativeHost host;
25
-    private StackLayout root;
25
+    private View contentView;
26 26
 
27 27
     @Override
28 28
     public void onCreate(Bundle savedInstanceState) {
@@ -53,6 +53,17 @@ public class NavigationActivity extends AppCompatActivity implements DefaultHard
53 53
         });
54 54
     }
55 55
 
56
+    @Override
57
+    public void setContentView(View contentView) {
58
+        super.setContentView(contentView);
59
+        this.contentView = contentView;
60
+    }
61
+
62
+    @Nullable
63
+    public View getContentView() {
64
+        return contentView;
65
+    }
66
+
56 67
     @Override
57 68
     protected void onResume() {
58 69
         super.onResume();
@@ -85,17 +96,4 @@ public class NavigationActivity extends AppCompatActivity implements DefaultHard
85 96
     public ReactNativeHost getHost() {
86 97
         return host;
87 98
     }
88
-
89
-    public void setRoot(StackLayout rootView) {
90
-        this.root = rootView;
91
-        setContentView(rootView.asView());
92
-    }
93
-
94
-    public void push(View view) {
95
-        root.push(view);
96
-    }
97
-
98
-    public void pop() {
99
-        root.pop();
100
-    }
101 99
 }

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

@@ -51,7 +51,7 @@ public class NavigationModule extends ReactContextBaseJavaModule {
51 51
 
52 52
                 final LayoutNode layoutTreeRoot = readableMapToLayoutNode(layoutTree);
53 53
                 final View rootView = factory.create(layoutTreeRoot);
54
-                NavigationActivity.instance.setRoot((StackLayout) rootView);
54
+                NavigationActivity.instance.setContentView(rootView);
55 55
             }
56 56
         });
57 57
     }
@@ -74,7 +74,7 @@ public class NavigationModule extends ReactContextBaseJavaModule {
74 74
                         }, new BottomTabsCreator());
75 75
                 final LayoutNode layoutNode = readableMapToLayoutNode(layout);
76 76
                 final View rootView = factory.create(layoutNode);
77
-                NavigationActivity.instance.push(rootView);
77
+                ((StackLayout) NavigationActivity.instance.getContentView()).push(rootView);
78 78
             }
79 79
         });
80 80
     }
@@ -84,7 +84,7 @@ public class NavigationModule extends ReactContextBaseJavaModule {
84 84
         NavigationActivity.instance.runOnUiThread(new Runnable() {
85 85
             @Override
86 86
             public void run() {
87
-                NavigationActivity.instance.pop();
87
+                ((StackLayout) NavigationActivity.instance.getContentView()).pop();
88 88
             }
89 89
         });
90 90
     }