| package com.airbnb.lottie; |
| |
| import android.graphics.PointF; |
| |
| import org.json.JSONArray; |
| import org.json.JSONObject; |
| |
| class JsonUtils { |
| private JsonUtils() { |
| } |
| |
| static PointF pointFromJsonObject(JSONObject values, float scale) { |
| return new PointF( |
| valueFromObject(values.opt("x")) * scale, |
| valueFromObject(values.opt("y")) * scale); |
| } |
| |
| static PointF pointFromJsonArray(JSONArray values, float scale) { |
| if (values.length() < 2) { |
| throw new IllegalArgumentException("Unable to parse point for " + values); |
| } |
| return new PointF( |
| (float) values.optDouble(0, 1) * scale, |
| (float) values.optDouble(1, 1) * scale); |
| } |
| |
| static float valueFromObject(Object object) { |
| if (object instanceof Float) { |
| return (float) object; |
| } else if (object instanceof Integer) { |
| return (Integer) object; |
| } else if (object instanceof Double) { |
| return (float) (double) object; |
| } else if (object instanceof JSONArray) { |
| return (float) ((JSONArray) object).optDouble(0); |
| } else { |
| return 0; |
| } |
| } |
| } |