|
@@ -7,6 +7,7 @@ import com.reactnativenavigation.events.EventBus;
|
7
|
7
|
import com.reactnativenavigation.events.ModalDismissedEvent;
|
8
|
8
|
import com.reactnativenavigation.layouts.ScreenStackContainer;
|
9
|
9
|
import com.reactnativenavigation.params.ContextualMenuParams;
|
|
10
|
+import com.reactnativenavigation.params.FabParams;
|
10
|
11
|
import com.reactnativenavigation.params.ScreenParams;
|
11
|
12
|
import com.reactnativenavigation.params.TitleBarButtonParams;
|
12
|
13
|
import com.reactnativenavigation.params.TitleBarLeftButtonParams;
|
|
@@ -14,15 +15,15 @@ import com.reactnativenavigation.params.TitleBarLeftButtonParams;
|
14
|
15
|
import java.util.List;
|
15
|
16
|
import java.util.Stack;
|
16
|
17
|
|
17
|
|
-public class ModalController implements ScreenStackContainer, Modal.OnModalDismissedListener {
|
|
18
|
+class ModalController implements ScreenStackContainer, Modal.OnModalDismissedListener {
|
18
|
19
|
private final AppCompatActivity activity;
|
19
|
20
|
private Stack<Modal> stack = new Stack<>();
|
20
|
21
|
|
21
|
|
- public ModalController(AppCompatActivity activity) {
|
|
22
|
+ ModalController(AppCompatActivity activity) {
|
22
|
23
|
this.activity = activity;
|
23
|
24
|
}
|
24
|
25
|
|
25
|
|
- public boolean containsNavigator(String navigatorId) {
|
|
26
|
+ boolean containsNavigator(String navigatorId) {
|
26
|
27
|
for (Modal modal : stack) {
|
27
|
28
|
if (modal.containsNavigator(navigatorId)) {
|
28
|
29
|
return true;
|
|
@@ -31,26 +32,26 @@ public class ModalController implements ScreenStackContainer, Modal.OnModalDismi
|
31
|
32
|
return false;
|
32
|
33
|
}
|
33
|
34
|
|
34
|
|
- public void showModal(ScreenParams screenParams) {
|
|
35
|
+ void showModal(ScreenParams screenParams) {
|
35
|
36
|
Modal modal = new Modal(activity, this, screenParams);
|
36
|
37
|
modal.show();
|
37
|
38
|
stack.add(modal);
|
38
|
39
|
}
|
39
|
40
|
|
40
|
|
- public void dismissTopModal() {
|
|
41
|
+ void dismissTopModal() {
|
41
|
42
|
if (isShowing()) {
|
42
|
43
|
stack.pop().dismiss();
|
43
|
44
|
}
|
44
|
45
|
}
|
45
|
46
|
|
46
|
|
- public void dismissAllModals() {
|
|
47
|
+ void dismissAllModals() {
|
47
|
48
|
for (Modal modal : stack) {
|
48
|
49
|
modal.dismiss();
|
49
|
50
|
}
|
50
|
51
|
stack.clear();
|
51
|
52
|
}
|
52
|
53
|
|
53
|
|
- public boolean isShowing() {
|
|
54
|
+ boolean isShowing() {
|
54
|
55
|
return !stack.empty();
|
55
|
56
|
}
|
56
|
57
|
|
|
@@ -97,30 +98,36 @@ public class ModalController implements ScreenStackContainer, Modal.OnModalDismi
|
97
|
98
|
}
|
98
|
99
|
}
|
99
|
100
|
|
100
|
|
- public void setTitleBarTitle(String screenInstanceId, String title) {
|
|
101
|
+ void setTitleBarTitle(String screenInstanceId, String title) {
|
101
|
102
|
for (Modal modal : stack) {
|
102
|
103
|
modal.setTitleBarTitle(screenInstanceId, title);
|
103
|
104
|
}
|
104
|
105
|
}
|
105
|
106
|
|
106
|
|
- public void setTitleBarSubtitle(String screenInstanceId, String subtitle) {
|
|
107
|
+ void setTitleBarSubtitle(String screenInstanceId, String subtitle) {
|
107
|
108
|
for (Modal modal : stack) {
|
108
|
109
|
modal.setTitleBarSubtitle(screenInstanceId, subtitle);
|
109
|
110
|
}
|
110
|
111
|
}
|
111
|
112
|
|
112
|
|
- public void setTitleBarRightButtons(String screenInstanceId, String navigatorEventId, List<TitleBarButtonParams> titleBarButtons) {
|
|
113
|
+ void setTitleBarRightButtons(String screenInstanceId, String navigatorEventId, List<TitleBarButtonParams> titleBarButtons) {
|
113
|
114
|
for (Modal modal : stack) {
|
114
|
115
|
modal.setTitleBarRightButtons(screenInstanceId, navigatorEventId, titleBarButtons);
|
115
|
116
|
}
|
116
|
117
|
}
|
117
|
118
|
|
118
|
|
- public void setTitleBarLeftButton(String screenInstanceId, String navigatorEventId, TitleBarLeftButtonParams titleBarLeftButton) {
|
|
119
|
+ void setTitleBarLeftButton(String screenInstanceId, String navigatorEventId, TitleBarLeftButtonParams titleBarLeftButton) {
|
119
|
120
|
for (Modal modal : stack) {
|
120
|
121
|
modal.setTitleBarLeftButton(screenInstanceId, navigatorEventId, titleBarLeftButton);
|
121
|
122
|
}
|
122
|
123
|
}
|
123
|
124
|
|
|
125
|
+ void setFab(String screenInstanceId, String navigatorEventId, FabParams fab) {
|
|
126
|
+ for (Modal modal : stack) {
|
|
127
|
+ modal.setFab(screenInstanceId, navigatorEventId, fab);
|
|
128
|
+ }
|
|
129
|
+ }
|
|
130
|
+
|
124
|
131
|
public void showContextualMenu(String screenInstanceId, ContextualMenuParams params, Callback onButtonClicked) {
|
125
|
132
|
for (Modal modal : stack) {
|
126
|
133
|
modal.showContextualMenu(screenInstanceId, params, onButtonClicked);
|