react-native-navigation的迁移库

Transitions.java 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.reactnativenavigation.parse;
  2. import androidx.annotation.RestrictTo;
  3. import org.json.JSONArray;
  4. import org.json.JSONObject;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class Transitions {
  8. private List<Transition> transitions = new ArrayList<>();
  9. public List<Transition> get() {
  10. return transitions;
  11. }
  12. public Transitions() {
  13. }
  14. @RestrictTo(RestrictTo.Scope.TESTS)
  15. public Transitions(List<Transition> transitions) {
  16. this.transitions = transitions;
  17. }
  18. public static Transitions parse(JSONObject json) {
  19. Transitions result = new Transitions();
  20. if (json != null && json.has("animations")) {
  21. JSONArray animations = json.optJSONArray("animations");
  22. for (int i = 0; i < animations.length(); i++) {
  23. result.transitions.add(Transition.parse(animations.optJSONObject(i)));
  24. }
  25. }
  26. return result;
  27. }
  28. public boolean hasValue() {
  29. return !transitions.isEmpty();
  30. }
  31. void mergeWith(final Transitions other) {
  32. if (other.hasValue()) transitions = other.transitions;
  33. }
  34. void mergeWithDefault(Transitions defaultOptions) {
  35. if (!hasValue()) transitions = defaultOptions.transitions;
  36. }
  37. }