react-native-navigation的迁移库

AnimationsOptions.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.reactnativenavigation.parse;
  2. import org.json.JSONObject;
  3. public class AnimationsOptions {
  4. public static AnimationsOptions parse(JSONObject json) {
  5. AnimationsOptions options = new AnimationsOptions();
  6. if (json == null) return options;
  7. options.push = NestedAnimationsOptions.parse(json.optJSONObject("push"));
  8. options.pop = NestedAnimationsOptions.parse(json.optJSONObject("pop"));
  9. options.startApp = AnimationOptions.parse(json.optJSONObject("startApp"));
  10. options.showModal = AnimationOptions.parse(json.optJSONObject("showModal"));
  11. options.dismissModal = AnimationOptions.parse(json.optJSONObject("dismissModal"));
  12. return options;
  13. }
  14. public NestedAnimationsOptions push = new NestedAnimationsOptions();
  15. public NestedAnimationsOptions pop = new NestedAnimationsOptions();
  16. public AnimationOptions startApp = new AnimationOptions();
  17. public AnimationOptions showModal = new AnimationOptions();
  18. public AnimationOptions dismissModal = new AnimationOptions();
  19. public void mergeWith(AnimationsOptions other) {
  20. push.mergeWith(other.push);
  21. pop.mergeWith(other.pop);
  22. startApp.mergeWith(other.startApp);
  23. showModal.mergeWith(other.showModal);
  24. dismissModal.mergeWith(other.dismissModal);
  25. }
  26. void mergeWithDefault(AnimationsOptions defaultOptions) {
  27. push.mergeWithDefault(defaultOptions.push);
  28. pop.mergeWithDefault(defaultOptions.pop);
  29. startApp.mergeWithDefault(defaultOptions.startApp);
  30. showModal.mergeWithDefault(defaultOptions.showModal);
  31. dismissModal.mergeWithDefault(defaultOptions.dismissModal);
  32. }
  33. }