)]}'
{
  "commit": "21efb6827cede06c2ab708de6cdb64d052dddcce",
  "tree": "0e2ab9e6220b5d731efcb417a490cff47b4329f7",
  "parents": [
    "b0de46ef079b8fae781b40a5a67bd7552bd81ddd"
  ],
  "author": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Wed Sep 14 17:35:43 2016 -0700"
  },
  "committer": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Thu Sep 29 15:28:52 2016 -0700"
  },
  "message": "AAPT2: Refactor PngCrunching\n\nPngCrunching now has a slightly better heuristic of choosing to encode\nan image as a palette or RGB. For small images, RGB compresses much better\nthan a palette.\n\nThe original PNG is used as-is (minus some optional chunks being stripped)\nif the resulting crunched PNG is larger than the original.\n\n9-patch handling is abstracted away from PNGs, paving the way\nfor other 9-patches, like WebP.\n\nTODO: handle PNGs with 9-patch chunks already present, which\nshould just be passed through. This will allow for 3rd party\ntools to generate 9-patches.\n\nTODO: implement cheap transparency: when one color is used to represent\ntransparent, and all other colors are opaque.\n\nBug:30053276\nChange-Id: I5167f53b91d1efa462d9f03d6b9108d9b541c0c1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9ec706fbf9bfd203fa9b6c6610e407c0380db695",
      "old_mode": 33188,
      "old_path": "tools/aapt2/Android.mk",
      "new_id": "c83a1328fcd73a052f6425fd439d418379e301c1",
      "new_mode": 33188,
      "new_path": "tools/aapt2/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "e0f37ec37b92dc4d6fd32e3a211f044f27f202ce",
      "old_mode": 33188,
      "old_path": "tools/aapt2/compile/Compile.cpp",
      "new_id": "dbd8062e8b3618b02b004b88f3bc68abd8165dc5",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/Compile.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fda6a3a903b09ce5621be926666e2c36496cdcc3",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/Image.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "408ecf71a44f0a2a49bae77c05b9bdaad3b342b9",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/NinePatch.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac4ee0207809f547900d4bb16c996b78036a2074",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/NinePatch_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "f835b06e762b39355376655beb02658e2d14670c",
      "old_mode": 33188,
      "old_path": "tools/aapt2/compile/Png.h",
      "new_id": "4a15d95f36ccc2bda7051f9a6434a57a6a3c8c56",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/Png.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70a881f4538275939e09e8b9334eea89c42f58a6",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/PngChunkFilter.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a2e3f4fc1825774288fa637652e908c00ed87aa5",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/PngCrunch.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0522a9979db92a22518fe423a0c295d9e2104c65",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/cheap_transparency.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "baf9fff13ab56ca8515f6d620a991d7aea830f40",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/complex.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b331e16fcbd29764feba9ef68d6eee41fd96c98",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/outline_8x8.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0ec6c70a2b9f5515ff9884158a0b946cc463d87e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/round_rect_off_center_outline_32x16.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e05708a089a3df27c50800158db88fb60ac41ff7",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/round_rect_outline_32x16.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a11377a0d6701eb587310553748f5015bbc7636e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/transparent_3x3.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6803e42434847024072c54dd6ad3dcf45d7702f2",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/transparent_optical_bounds_3x3.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a3731bbc8b880df694973e3f53ea196ccfc49ad",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/white_3x3.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "489ace292e1fac1bff44a5d962d6ee735b183589",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/AppOne/res/drawable/white_optical_bounds_3x3.9.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "963c21c31806f6108f1b541e748987133204a895",
      "new_mode": 33188,
      "new_path": "tools/aapt2/io/Io.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e1e9107e388b876d5e92ffba2297a35245fa05e8",
      "new_mode": 33188,
      "new_path": "tools/aapt2/io/Io.h"
    },
    {
      "type": "modify",
      "old_id": "c88e3c1024153c0aee5e768bd6f208067b52a023",
      "old_mode": 33188,
      "old_path": "tools/aapt2/util/BigBuffer.cpp",
      "new_id": "de4ecd21ec2d390e331f357479288744cb9edf8c",
      "new_mode": 33188,
      "new_path": "tools/aapt2/util/BigBuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "ba8532f829e66493a15af2549e8fcabf1c2dbcfe",
      "old_mode": 33188,
      "old_path": "tools/aapt2/util/BigBuffer.h",
      "new_id": "685614f1b808a0026acc89c53e36859e0ead8e8e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/util/BigBuffer.h"
    },
    {
      "type": "modify",
      "old_id": "4300a67d3581d299088c4abc6d09bc90d47bfc8c",
      "old_mode": 33188,
      "old_path": "tools/aapt2/util/StringPiece.h",
      "new_id": "266c003ec264af51fa6aa23ac8869da4ef1d0f54",
      "new_mode": 33188,
      "new_path": "tools/aapt2/util/StringPiece.h"
    }
  ]
}
