-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathNavigationBarOptions.java
More file actions
36 lines (27 loc) · 1.36 KB
/
NavigationBarOptions.java
File metadata and controls
36 lines (27 loc) · 1.36 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
package com.reactnativenavigation.options;
import android.content.Context;
import com.reactnativenavigation.options.params.Bool;
import com.reactnativenavigation.options.params.NullBool;
import com.reactnativenavigation.options.params.ThemeColour;
import com.reactnativenavigation.options.params.NullThemeColour;
import com.reactnativenavigation.options.parsers.BoolParser;
import org.json.JSONObject;
public class NavigationBarOptions {
public static NavigationBarOptions parse(Context context, JSONObject json) {
NavigationBarOptions result = new NavigationBarOptions();
if (json == null) return result;
result.backgroundColor = ThemeColour.parse(context, json.optJSONObject("backgroundColor"));
result.isVisible = BoolParser.parse(json, "visible");
return result;
}
public ThemeColour backgroundColor = new NullThemeColour();
public Bool isVisible = new NullBool();
public void mergeWith(NavigationBarOptions other) {
if (other.isVisible.hasValue()) isVisible = other.isVisible;
if (other.backgroundColor.hasValue()) backgroundColor = other.backgroundColor;
}
public void mergeWithDefault(NavigationBarOptions defaultOptions) {
if (!isVisible.hasValue()) isVisible = defaultOptions.isVisible;
if (!backgroundColor.hasValue()) backgroundColor = defaultOptions.backgroundColor;
}
}