-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathStackControllerBuilder.java
More file actions
113 lines (95 loc) · 3.74 KB
/
StackControllerBuilder.java
File metadata and controls
113 lines (95 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.reactnativenavigation.viewcontrollers.stack;
import android.app.Activity;
import com.reactnativenavigation.viewcontrollers.stack.topbar.button.BackButtonHelper;
import com.reactnativenavigation.options.Options;
import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter;
import com.reactnativenavigation.react.events.EventEmitter;
import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
import com.reactnativenavigation.NavigationApplication;
import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
import com.reactnativenavigation.viewcontrollers.stack.topbar.TopBarController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class StackControllerBuilder {
private Activity activity;
private ChildControllersRegistry childRegistry;
private TopBarController topBarController;
private String id;
private Options initialOptions = new Options();
private StackAnimator animator;
private BackButtonHelper backButtonHelper = new BackButtonHelper();
private Presenter presenter;
private StackPresenter stackPresenter;
private List<ViewController<?>> children = new ArrayList<>();
private EventEmitter eventEmitter;
private FabPresenter fabPresenter = new FabPresenter();
public StackControllerBuilder(Activity activity, EventEmitter eventEmitter) {
this.activity = activity;
this.eventEmitter = eventEmitter;
presenter = new Presenter(activity, new Options());
animator = new StackAnimator(activity != null ? activity : NavigationApplication.instance);
}
public StackControllerBuilder setEventEmitter(EventEmitter eventEmitter) {
this.eventEmitter = eventEmitter;
return this;
}
public StackControllerBuilder setChildren(ViewController<?>... children) {
return setChildren(Arrays.asList(children));
}
public StackControllerBuilder setChildren(List<ViewController<?>> children) {
this.children = children;
return this;
}
public StackControllerBuilder setStackPresenter(StackPresenter stackPresenter) {
this.stackPresenter = stackPresenter;
return this;
}
public StackControllerBuilder setPresenter(Presenter presenter) {
this.presenter = presenter;
return this;
}
public StackControllerBuilder setChildRegistry(ChildControllersRegistry childRegistry) {
this.childRegistry = childRegistry;
return this;
}
public StackControllerBuilder setTopBarController(TopBarController topBarController) {
this.topBarController = topBarController;
return this;
}
public StackControllerBuilder setId(String id) {
this.id = id;
return this;
}
public StackControllerBuilder setInitialOptions(Options initialOptions) {
this.initialOptions = initialOptions;
return this;
}
public StackControllerBuilder setAnimator(StackAnimator animator) {
this.animator = animator;
return this;
}
StackControllerBuilder setBackButtonHelper(BackButtonHelper backButtonHelper) {
this.backButtonHelper = backButtonHelper;
return this;
}
public StackControllerBuilder setFabPresenter(FabPresenter fabPresenter) {
this.fabPresenter = fabPresenter;
return this;
}
public StackController build() {
return new StackController(activity,
children,
childRegistry,
eventEmitter,
topBarController,
animator,
id,
initialOptions,
backButtonHelper,
stackPresenter,
presenter,
fabPresenter
);
}
}