123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- package com.reactnativenavigation.parse;
-
- import android.support.annotation.CheckResult;
- import android.support.annotation.NonNull;
-
- import com.reactnativenavigation.parse.params.NullNumber;
- import com.reactnativenavigation.parse.params.NullText;
- import com.reactnativenavigation.utils.TypefaceLoader;
-
- import org.json.JSONObject;
-
- public class Options {
-
- @NonNull
- public static Options parse(TypefaceLoader typefaceManager, JSONObject json) {
- Options result = new Options();
- if (json == null) return result;
-
- result.topBar = TopBarOptions.parse(typefaceManager, json.optJSONObject("topBar"));
- result.topTabs = TopTabsOptions.parse(json.optJSONObject("topTabs"));
- result.topTabOptions = TopTabOptions.parse(typefaceManager, json.optJSONObject("topTab"));
- result.bottomTabOptions = BottomTabOptions.parse(typefaceManager, json.optJSONObject("bottomTab"));
- result.bottomTabsOptions = BottomTabsOptions.parse(json.optJSONObject("bottomTabs"));
- result.overlayOptions = OverlayOptions.parse(json.optJSONObject("overlay"));
- result.fabOptions = FabOptions.parse(json.optJSONObject("fab"));
- result.sideMenuRootOptions = SideMenuRootOptions.parse(json.optJSONObject("sideMenu"));
- result.animations = AnimationsOptions.parse(json.optJSONObject("animations"));
- result.modal = ModalOptions.parse(json);
- result.statusBar = StatusBarOptions.parse(json.optJSONObject("statusBar"));
- result.layout = LayoutOptions.parse(json.optJSONObject("layout"));
-
- return result;
- }
-
- @NonNull public TopBarOptions topBar = new TopBarOptions();
- @NonNull public TopTabsOptions topTabs = new TopTabsOptions();
- @NonNull public TopTabOptions topTabOptions = new TopTabOptions();
- @NonNull public BottomTabOptions bottomTabOptions = new BottomTabOptions();
- @NonNull public BottomTabsOptions bottomTabsOptions = new BottomTabsOptions();
- @NonNull public OverlayOptions overlayOptions = new OverlayOptions();
- @NonNull public FabOptions fabOptions = new FabOptions();
- @NonNull public AnimationsOptions animations = new AnimationsOptions();
- @NonNull public SideMenuRootOptions sideMenuRootOptions = new SideMenuRootOptions();
- @NonNull public ModalOptions modal = new ModalOptions();
- @NonNull public StatusBarOptions statusBar = new StatusBarOptions();
- @NonNull public LayoutOptions layout = new LayoutOptions();
-
- void setTopTabIndex(int i) {
- topTabOptions.tabIndex = i;
- }
-
- @CheckResult
- public Options copy() {
- Options result = new Options();
- result.topBar.mergeWith(topBar);
- result.topTabs.mergeWith(topTabs);
- result.topTabOptions.mergeWith(topTabOptions);
- result.bottomTabOptions.mergeWith(bottomTabOptions);
- result.bottomTabsOptions.mergeWith(bottomTabsOptions);
- result.overlayOptions = overlayOptions;
- result.fabOptions.mergeWith(fabOptions);
- result.sideMenuRootOptions.mergeWith(sideMenuRootOptions);
- result.animations.mergeWith(animations);
- result.modal.mergeWith(modal);
- result.statusBar.mergeWith(statusBar);
- result.layout.mergeWith(layout);
- return result;
- }
-
- @CheckResult
- public Options mergeWith(final Options other) {
- Options result = copy();
- result.topBar.mergeWith(other.topBar);
- result.topTabs.mergeWith(other.topTabs);
- result.topTabOptions.mergeWith(other.topTabOptions);
- result.bottomTabOptions.mergeWith(other.bottomTabOptions);
- result.bottomTabsOptions.mergeWith(other.bottomTabsOptions);
- result.fabOptions.mergeWith(other.fabOptions);
- result.animations.mergeWith(other.animations);
- result.sideMenuRootOptions.mergeWith(other.sideMenuRootOptions);
- result.modal.mergeWith(other.modal);
- result.statusBar.mergeWith(other.statusBar);
- result.layout.mergeWith(other.layout);
- return result;
- }
-
- public Options withDefaultOptions(final Options defaultOptions) {
- topBar.mergeWithDefault(defaultOptions.topBar);
- topTabOptions.mergeWithDefault(defaultOptions.topTabOptions);
- topTabs.mergeWithDefault(defaultOptions.topTabs);
- bottomTabOptions.mergeWithDefault(defaultOptions.bottomTabOptions);
- bottomTabsOptions.mergeWithDefault(defaultOptions.bottomTabsOptions);
- fabOptions.mergeWithDefault(defaultOptions.fabOptions);
- animations.mergeWithDefault(defaultOptions.animations);
- sideMenuRootOptions.mergeWithDefault(defaultOptions.sideMenuRootOptions);
- modal.mergeWithDefault(defaultOptions.modal);
- statusBar.mergeWithDefault(defaultOptions.statusBar);
- layout.mergeWithDefault(defaultOptions.layout);
- return this;
- }
-
- public Options clearTopBarOptions() {
- topBar = new TopBarOptions();
- return this;
- }
-
- public Options clearBottomTabsOptions() {
- bottomTabsOptions = new BottomTabsOptions();
- return this;
- }
-
- public Options clearTopTabOptions() {
- topTabOptions = new TopTabOptions();
- return this;
- }
-
- public Options clearTopTabsOptions() {
- topTabs = new TopTabsOptions();
- return this;
- }
-
- public Options clearBottomTabOptions() {
- bottomTabOptions = new BottomTabOptions();
- return this;
- }
-
- public Options clearSideMenuOptions() {
- sideMenuRootOptions = new SideMenuRootOptions();
- return this;
- }
-
- public Options clearAnimationOptions() {
- animations = new AnimationsOptions();
- return this;
- }
-
- public Options clearFabOptions() {
- fabOptions = new FabOptions();
- return this;
- }
-
- public Options clearOneTimeOptions() {
- bottomTabsOptions.currentTabId = new NullText();
- bottomTabsOptions.currentTabIndex = new NullNumber();
- return this;
- }
- }
|