-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathComponentPresenter.java
More file actions
56 lines (44 loc) · 2.2 KB
/
ComponentPresenter.java
File metadata and controls
56 lines (44 loc) · 2.2 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
package com.reactnativenavigation.viewcontrollers.component;
import android.animation.Animator;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.reactnativenavigation.options.Options;
import com.reactnativenavigation.viewcontrollers.statusbar.StatusBarPresenter;
import com.reactnativenavigation.views.component.ComponentLayout;
public class ComponentPresenter extends ComponentPresenterBase {
public Options defaultOptions;
public ComponentPresenter(Options defaultOptions) {
this.defaultOptions = defaultOptions;
}
public void setDefaultOptions(Options defaultOptions) {
this.defaultOptions = defaultOptions;
}
public void applyOptions(ComponentLayout view, Options options) {
setBackgroundColor(view, options);
}
public void mergeOptions(ComponentLayout view, Options options) {
if (options.overlayOptions.interceptTouchOutside.hasValue())
view.setInterceptTouchOutside(options.overlayOptions.interceptTouchOutside);
setBackgroundColor(view, options);
}
private void setBackgroundColor(ComponentLayout view, Options options) {
if (options.layout.componentBackgroundColor.hasValue()) {
view.setBackgroundColor(options.layout.componentBackgroundColor.get());
}
}
public void onConfigurationChanged(ComponentLayout view, Options options) {
if (view == null) return;
Options withDefault = options.withDefaultOptions(defaultOptions);
setBackgroundColor(view, withDefault);
}
@Nullable
public Animator getStatusBarPushAnimation(@NonNull Options appearingOptions) {
Options appearingOptionsWithDefault = appearingOptions.copy().withDefaultOptions(defaultOptions);
return StatusBarPresenter.instance.getStatusBarPushAnimation(appearingOptionsWithDefault);
}
@Nullable
public Animator getStatusBarPopAnimation(@NonNull Options appearingOptions, @NonNull Options disappearingOptions) {
Options appearingOptionsWithDefault = appearingOptions.copy().withDefaultOptions(defaultOptions);
return StatusBarPresenter.instance.getStatusBarPopAnimation(appearingOptionsWithDefault, disappearingOptions);
}
}