package com.reactnativenavigation.params.parsers; import android.os.Bundle; import com.facebook.react.bridge.ReadableMap; import com.reactnativenavigation.bridge.BundleConverter; public class SharedElementParamsParser { private static final int DEFAULT_DURATION = 300; private int showDuration = DEFAULT_DURATION; private int hideDuration = DEFAULT_DURATION; private Bundle showInterpolation = Bundle.EMPTY; private Bundle hideInterpolation = Bundle.EMPTY; public boolean animateClipBounds; public void setDuration(int duration) { showDuration = duration; hideDuration = duration; } public void setShowDuration(int duration) { showDuration = duration; } public void setHideDuration(int duration) { hideDuration = duration; } public void setShowInterpolation(ReadableMap showInterpolation) { this.showInterpolation = BundleConverter.toBundle(showInterpolation); } public void setHideInterpolation(ReadableMap hideInterpolation) { this.hideInterpolation = BundleConverter.toBundle(hideInterpolation); } public SharedElementTransitionParams parseShowTransitionParams() { SharedElementTransitionParams result = new SharedElementTransitionParams(); result.duration = showDuration; result.interpolation = new InterpolationParser(showInterpolation).parseShowInterpolation(); result.animateClipBounds = animateClipBounds; return result; } public SharedElementTransitionParams parseHideTransitionParams() { SharedElementTransitionParams result = new SharedElementTransitionParams(); result.duration = hideDuration; result.interpolation = new InterpolationParser(hideInterpolation).parseHideInterpolation(); result.animateClipBounds = animateClipBounds; return result; } }