Browse Source

android: clearing the activity from view concerns

Daniel Zlotin 7 years ago
parent
commit
bd7e110a94

+ 13
- 15
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationActivity.java View File

1
 package com.reactnativenavigation.controllers;
1
 package com.reactnativenavigation.controllers;
2
 
2
 
3
 import android.os.Bundle;
3
 import android.os.Bundle;
4
+import android.support.annotation.Nullable;
4
 import android.support.v7.app.AppCompatActivity;
5
 import android.support.v7.app.AppCompatActivity;
5
 import android.view.View;
6
 import android.view.View;
6
 
7
 
11
 import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
12
 import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
12
 import com.facebook.react.shell.MainReactPackage;
13
 import com.facebook.react.shell.MainReactPackage;
13
 import com.reactnativenavigation.R;
14
 import com.reactnativenavigation.R;
14
-import com.reactnativenavigation.layout.StackLayout;
15
 import com.reactnativenavigation.react.NavigationEventEmitter;
15
 import com.reactnativenavigation.react.NavigationEventEmitter;
16
 import com.reactnativenavigation.react.NavigationPackage;
16
 import com.reactnativenavigation.react.NavigationPackage;
17
 import com.reactnativenavigation.react.ReactDevPermission;
17
 import com.reactnativenavigation.react.ReactDevPermission;
22
 public class NavigationActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
22
 public class NavigationActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
23
     public static NavigationActivity instance;
23
     public static NavigationActivity instance;
24
     private ReactNativeHost host;
24
     private ReactNativeHost host;
25
-    private StackLayout root;
25
+    private View contentView;
26
 
26
 
27
     @Override
27
     @Override
28
     public void onCreate(Bundle savedInstanceState) {
28
     public void onCreate(Bundle savedInstanceState) {
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
     @Override
67
     @Override
57
     protected void onResume() {
68
     protected void onResume() {
58
         super.onResume();
69
         super.onResume();
85
     public ReactNativeHost getHost() {
96
     public ReactNativeHost getHost() {
86
         return host;
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 View File

51
 
51
 
52
                 final LayoutNode layoutTreeRoot = readableMapToLayoutNode(layoutTree);
52
                 final LayoutNode layoutTreeRoot = readableMapToLayoutNode(layoutTree);
53
                 final View rootView = factory.create(layoutTreeRoot);
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
                         }, new BottomTabsCreator());
74
                         }, new BottomTabsCreator());
75
                 final LayoutNode layoutNode = readableMapToLayoutNode(layout);
75
                 final LayoutNode layoutNode = readableMapToLayoutNode(layout);
76
                 final View rootView = factory.create(layoutNode);
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
         NavigationActivity.instance.runOnUiThread(new Runnable() {
84
         NavigationActivity.instance.runOnUiThread(new Runnable() {
85
             @Override
85
             @Override
86
             public void run() {
86
             public void run() {
87
-                NavigationActivity.instance.pop();
87
+                ((StackLayout) NavigationActivity.instance.getContentView()).pop();
88
             }
88
             }
89
         });
89
         });
90
     }
90
     }