)]}'
{
  "commit": "6ffe9bb17a0509c4a578938aa2eb998c4851ecbc",
  "tree": "3c515bbcdf234d17574f6e25bd7515964a1c5e71",
  "parents": [
    "78bf85a79dd91fec0152f8e29d299482fe688eed"
  ],
  "author": {
    "name": "Allen Chen",
    "email": "allenchen1154@gmail.com",
    "time": "Wed Aug 28 07:39:58 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 28 07:39:58 2024 -0700"
  },
  "message": "Apply scaling factor to drop shadow softness (#2541)\n\nDirectly using the \"Softness\" value from the Lottie file (after accounting for dp and layer scaling) as the `radius` argument to `Paint.setShadowLayer()` results in shadows that are too soft. Since the underlying implementation calls into JNI code and is undocumented, we can only take a best guess as to how the After Effects softness value should be mapped to this argument. The [Lottie web implementation](https://github.com/airbnb/lottie-web/blob/master/player/js/elements/svgElements/effects/SVGDropShadowEffect.js#L63) multiplies the value by a constant factor of 0.25, so we take a similar approach here, using a value of 0.33 to achieve a close match to a reference image.\r\n\r\n\u003cimg width\u003d500 src\u003d\"https://github.com/user-attachments/assets/2d160061-77a0-43a2-945c-1d94d7422a2a\"\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3c85422abc94580758eda1c6f5092848d3547d86",
      "old_mode": 33188,
      "old_path": "lottie/src/main/java/com/airbnb/lottie/animation/keyframe/DropShadowKeyframeAnimation.java",
      "new_id": "425b8a4bf53facb855ebad80157ffa101a9e53bd",
      "new_mode": 33188,
      "new_path": "lottie/src/main/java/com/airbnb/lottie/animation/keyframe/DropShadowKeyframeAnimation.java"
    },
    {
      "type": "delete",
      "old_id": "0a4e5aafb5901e7120ee19479ec6c95f5013df62",
      "old_mode": 33188,
      "old_path": "snapshot-tests/src/main/assets/Tests/airbnb_shadow_test_1.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9890730148a3b4d433478111f2fc0ab254d468de",
      "old_mode": 33188,
      "old_path": "snapshot-tests/src/main/assets/Tests/airbnb_shadow_test_2.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "547a374acce50976e801f29b4c943ccadb232205",
      "new_mode": 33188,
      "new_path": "snapshot-tests/src/main/assets/Tests/shadow_distance_test.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4dfab0c21f253b5addc0255a501acc66c1d58ea2",
      "new_mode": 33188,
      "new_path": "snapshot-tests/src/main/assets/Tests/shadow_softness_test.json"
    }
  ]
}
