)]}'
{
  "log": [
    {
      "commit": "f3dc7ac7242046d70e4ffee41fd7dbc9b9674ec0",
      "tree": "dfc5b6be5b58331ecbfa67a0d8b10879163eeb82",
      "parents": [
        "79aeb92f4de64dc658b3cbae6dcf40f19b1597f8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 11:21:50 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 13:48:40 2015 -0800"
      },
      "message": "Correct GradientDrawable outline alpha computation\n\nbug:26066107\n\nGradientDrawable should provide a shadow casting outline if using a\ntranslucent fill.\n\nChange-Id: Ie6b409bafe3fcf9c5216662168d7349e2a9e3413\n"
    },
    {
      "commit": "568f4de11a87308cbcb888083f02818a8290a7d7",
      "tree": "20cfff68ed791685dbb947dbc6b5f51bea52132f",
      "parents": [
        "f430d3074f6b5844ba999d4a0a6e8d7fc41f6bdf",
        "71fbb81b14958b80fe55738607740c6630e4e9da"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Dec 03 09:44:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 09:44:01 2015 +0000"
      },
      "message": "Merge \"Fix @code escapes\""
    },
    {
      "commit": "71fbb81b14958b80fe55738607740c6630e4e9da",
      "tree": "1f1be8961057d82b54b99637b8e6b423ff621575",
      "parents": [
        "355a74f2842b44b0ae07c5f982c50761d47d9ca0"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Nov 30 09:51:33 2015 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Dec 02 14:24:11 2015 +0000"
      },
      "message": "Fix @code escapes\n\nThe body of {@code} must not be HTML escaped. This is one of\nseveral changes that fix the source in conjunction with a\ndoclava fix.\n\nBug: 25757239\nChange-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881\n"
    },
    {
      "commit": "0d3d1f825f399c62f2ba236b53bef17581e03a16",
      "tree": "068c7273097d6ba02abb33f7b45774cff2ea960b",
      "parents": [
        "eaf95c36437dd3be48d7edaef9f2a9bccc102d4d"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Dec 02 14:47:59 2015 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Dec 02 14:50:36 2015 +0900"
      },
      "message": "Fixed typos: when when\n\nChange-Id: I80c0b8817dcbed45071e42d9ffa88bae52a93a81\n"
    },
    {
      "commit": "c34f1b093f978bd67ed5f6eb9ff3b0c9dd8126e1",
      "tree": "e71399329480d507e366334de2af32555b82a724",
      "parents": [
        "8b40491bc295dccc185b9be5b3616823fcff1a2e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 30 14:47:02 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 30 14:47:59 2015 -0800"
      },
      "message": "Fix RippleDrawable exit animation\n\nBug: 25602850\n\nThe exit-out animation doesn\u0027t want to animate from the current\nvalue, but rather the final value of the exit-in animation\n\nChange-Id: I1cd12b0653b5241c6e21ef1cca86b0a83ce9c5a2\n"
    },
    {
      "commit": "61ffc199f24f6817f45e41df06bd27d28521bacd",
      "tree": "93f883fd894a08d9c6b1cced46e00b695843683f",
      "parents": [
        "bb9bfc9713207b92bf62b57c5a9c3c97547ba9a0",
        "d633ca417d3925521ab15fba1c0cdac172efb184"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 14:50:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 19 14:50:40 2015 +0000"
      },
      "message": "Merge \"Apply VectorDrawable density scaling before applying theme\""
    },
    {
      "commit": "d633ca417d3925521ab15fba1c0cdac172efb184",
      "tree": "cdde0ff394eaeac13dc3240c625fca0f2a0885f1",
      "parents": [
        "40af4f3ed33dde5e24679c7da1b54fa88813ade3"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 09:47:09 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 09:47:09 2015 -0500"
      },
      "message": "Apply VectorDrawable density scaling before applying theme\n\nRefactors density handling to look more similar to GradientDrawable\u0027s\nimplementation, which should make things easier to maintain. We no\nlonger update density directly in updateStateFromTypedArray, instead\nhandling it in applyTheme() and inflate().\n\nLazily calculates local density-dependent dimensions and invalidates\nwhen the constant state density changes, which should ensure a random\ncall to applyTheme() will still result in the correct intrinsic\ndimensions.\n\nChange-Id: I726878a6cd75d38a550637e3e7a7b6bc68bcaf6d\n"
    },
    {
      "commit": "804618d0863a5d8ad1b08a846bd5319be864a1cb",
      "tree": "3a5006a5d4319373d7b02796291a608e9320a7c3",
      "parents": [
        "0fe13b1f7001f5e2f23062a97140784258f3423e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Nov 16 22:48:34 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 18 13:38:23 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 2 of MANY\n\nIntroduced PathData in Java, which is effectively a thin layer around the\nnative instance. PathData holds the verbs and points which is being used\nin path morphing/interpolation. The verbs and points can be interpreted\ninto skia path commands, which is now done in native and therefore saves\na handful of JNI calls during path creation.\n\nRemoved the old PathDataNode mechanism and changed the PathEvaluator\nto use PathData instead.\n\nAlso added tests and a microbench. Also ran CTS tests for VectorDrawable\nand AnimatedVectorDrawable, and passed all of the existing tests.\n\nChange-Id: Ia166f5172ff031fe18b154327967f911a62caec1\n"
    },
    {
      "commit": "477f3d092db302d24dcaa77bbcdd1026c9a468a4",
      "tree": "d49c57afb9acabb5735a056128d4cb72079cd395",
      "parents": [
        "746955c0d1ca496b34b2ad3f9c69d045db53e175"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 13 17:04:43 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Nov 16 10:12:44 2015 -0500"
      },
      "message": "Obtain cached drawables using the correct Resources object\n\nPreviously we were discarding the Resources when forwarding from the\ntwo-arg factory method to the one-arg method. This CL also updates the\ndocumentation for ConstantState to be slightly more comprehensive.\n\nBug: 25688078\nChange-Id: I4fbbf43f95fe792fa6f0bf9db8fd9a7cbfa51d1d\n"
    },
    {
      "commit": "b6181565e5a96f9922c2c0ca7dd78a894a6ba224",
      "tree": "cbe27745e0fb9e957a8397769bd9b7aa90f8b75a",
      "parents": [
        "530dcda9a5e0d3698e5c42956a6238eb55ae51e3",
        "76165b2a4bc3b618bdfa9e4286d405892b68f122"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 13 15:48:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 13 15:48:23 2015 +0000"
      },
      "message": "Merge \"Return correct intrinsic dimensions for inset colors\""
    },
    {
      "commit": "76165b2a4bc3b618bdfa9e4286d405892b68f122",
      "tree": "4b787c9b1d07e905a745cb6b93268fec613a1b1b",
      "parents": [
        "0116852120e4513eefe4b8c379c61088b2cf0850"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 10:47:53 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 10:47:53 2015 -0500"
      },
      "message": "Return correct intrinsic dimensions for inset colors\n\nAlso updates documentation for getIntrinsicWidth/Height to accurately\nreflect the behavior of the existing implementations and provide an\nexplanation of what \"intrinsic\" means.\n\nBug: 25646242\nChange-Id: I11daf57e598148adfda922cfc1ba31ed48a16bd7\n"
    },
    {
      "commit": "bd5294bcb857a48ad22ddd54b13208ec2903c3f6",
      "tree": "bd3b48918e438b58b55515375d18b32953b111e2",
      "parents": [
        "0116852120e4513eefe4b8c379c61088b2cf0850"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 11 12:51:10 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 11 12:51:10 2015 -0500"
      },
      "message": "Pass densityDpi into RippleComponent, store as densityScale\n\nFixes a regression where the foreground was created against the density\nin DPI rather than as a scale factor.\n\nBug: 25602850\nChange-Id: Ia871aa5def4319682a73228efb599f31b65afdb6\n"
    },
    {
      "commit": "9db60f4e5b6a982f539a8f6e857ed1a929719f23",
      "tree": "ab619ad13c82a1a22963e32cc209cb5b129a2d99",
      "parents": [
        "c97ba49d2330de396fc9121028331bccee49ed02",
        "9b4bdeff6dea5a24a3085a17d2dde9003642af79"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 21:17:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 21:17:36 2015 +0000"
      },
      "message": "Merge \"Mutate DrawableContainer children immediately after inflation\""
    },
    {
      "commit": "9b4bdeff6dea5a24a3085a17d2dde9003642af79",
      "tree": "0998a6c635e1adba76db9191fd25f964b4056df3",
      "parents": [
        "aa5c3b263777fbbba5331418c4839a323e089edd"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 15:22:43 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 15:22:43 2015 -0500"
      },
      "message": "Mutate DrawableContainer children immediately after inflation\n\nPreviously we would only mutate children when they were displayed, so\napplyTheme() calls would be applied to the shared constant state. Now\nwe mutate() immediately after obtaining the child, which ensures we\nhave a clean constant state. This also allows us to remove extra\nmutate() calls, since we know all child drawables are already mutated.\n\nBug: 25081461\nChange-Id: I52390db268690a8e181f5b9bbe612b7ed6ce9359\n"
    },
    {
      "commit": "22e27ccf79f4c334f84b329ab9685d95555eae9d",
      "tree": "2d1bf34251a8eafc16578007a069dbaf6c430ce9",
      "parents": [
        "aa5c3b263777fbbba5331418c4839a323e089edd",
        "ab099c496b0136a4ad990af02b4ff9f8e4dccb9c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 19:41:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 19:41:59 2015 +0000"
      },
      "message": "Merge \"Correctly handle child drawables with no intrinsic size\""
    },
    {
      "commit": "1259f616c26f89dd5000745d7c364fae41b23682",
      "tree": "af6f3ee74395a3747b4e75820480863b577aaa46",
      "parents": [
        "51a942380ba15f83393922203e7e9aebe64e8deb"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 05 14:34:44 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 05 14:34:44 2015 -0500"
      },
      "message": "Use ConstantState directly instead of ConstantStateFuture\n\nAll of the functionality of ConstantStateFuture has been moved into\nprepareDrawable. We don\u0027t need the extra wrapper class.\n\nChange-Id: I452b13320a838a23c8ec0dd486a89bf383142d7b\n"
    },
    {
      "commit": "29869c3893c347c592b650d0c63d1e4264918c01",
      "tree": "b8fecc1085cf9490e136706eca82f6c914a18167",
      "parents": [
        "5f763ead7087f005c53835fcd43416d0de3cf367",
        "132bb1e4b10755d2bc0810135511fd999badbe4b"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Wed Nov 04 20:43:38 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 04 20:43:38 2015 +0000"
      },
      "message": "Merge \"Convert ashmem bitmap thresholds to constants.\" into mnc-dr-dev am: c8bb39d98d am: 2c740f1dcf am: 6c1144dc0f\nam: 132bb1e4b1\n\n* commit \u0027132bb1e4b10755d2bc0810135511fd999badbe4b\u0027:\n  Convert ashmem bitmap thresholds to constants.\n"
    },
    {
      "commit": "132bb1e4b10755d2bc0810135511fd999badbe4b",
      "tree": "49cc6f07d754dcbd424869db948646274345f589",
      "parents": [
        "34e9b5b2e418dd43e374dcbb3be27710c53d4b9c",
        "6c1144dc0f8b2452ca2a204ca471e2d23339d5a3"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Wed Nov 04 20:37:18 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 04 20:37:18 2015 +0000"
      },
      "message": "Merge \"Convert ashmem bitmap thresholds to constants.\" into mnc-dr-dev am: c8bb39d98d am: 2c740f1dcf\nam: 6c1144dc0f\n\n* commit \u00276c1144dc0f8b2452ca2a204ca471e2d23339d5a3\u0027:\n  Convert ashmem bitmap thresholds to constants.\n"
    },
    {
      "commit": "ab099c496b0136a4ad990af02b4ff9f8e4dccb9c",
      "tree": "462b99489f0ab9bb33ed4d6a28fbe6d67bea614d",
      "parents": [
        "978db40983bd4ba2a9cb3502fd7c82c6f6311d64"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 04 09:54:50 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 04 09:54:50 2015 -0500"
      },
      "message": "Correctly handle child drawables with no intrinsic size\n\nIf a child drawable has no intrinsic width or height, don\u0027t attempt to\napply padding and insets to the child during the parent layer drawable\u0027s\nintrinsic width and height calculations.\n\nBug: 25461370\nChange-Id: Idf616bde0449231f38156da53feb858e1ae41c47\n"
    },
    {
      "commit": "0394a0c399582d4401646cf2324f3148c3028531",
      "tree": "2f9973749d5641d5a5f5efaef3ec7bce4ec71df5",
      "parents": [
        "966d6040c6b171c75e9fb0ca942e84f9cf4d0dff"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 23:36:52 2015 -0800"
      },
      "committer": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 23:52:17 2015 -0800"
      },
      "message": "Convert ashmem bitmap thresholds to constants.\n\nBug 25256717\n\nChange-Id: I23e2795ef8798d83bf60dcbd6ff2e7093fcaa9b0\nSigned-off-by: Riley Andrews \u003criandrews@google.com\u003e\n"
    },
    {
      "commit": "18896e08938bc1e1fcb7928996803af935b826b7",
      "tree": "270c1e1318a52c85ec547cc60f446edec0b13614",
      "parents": [
        "b59db97fc7ac7dece3428e9af72ac52d253edbfb",
        "87455c7397605fba4bf3ad04af8df3c599a7a6ba"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Nov 03 23:34:54 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 03 23:34:54 2015 +0000"
      },
      "message": "Merge \"Limit persistent ashmem backed fds to a minimum of 128kB.\" into mnc-dr-dev am: 966d6040c6 am: 95fc53b029 am: d6f3e38738\nam: 87455c7397\n\n* commit \u002787455c7397605fba4bf3ad04af8df3c599a7a6ba\u0027:\n  Limit persistent ashmem backed fds to a minimum of 128kB.\n"
    },
    {
      "commit": "87455c7397605fba4bf3ad04af8df3c599a7a6ba",
      "tree": "dafae59c16b71f80f6802333a17b9d576ef6bd0b",
      "parents": [
        "ca2daddfeab4694b83fa27957f132a510ed86bdd",
        "d6f3e38738c88821b28b2571d034fc1b189a35de"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Nov 03 22:21:48 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 03 22:21:48 2015 +0000"
      },
      "message": "Merge \"Limit persistent ashmem backed fds to a minimum of 128kB.\" into mnc-dr-dev am: 966d6040c6 am: 95fc53b029\nam: d6f3e38738\n\n* commit \u0027d6f3e38738c88821b28b2571d034fc1b189a35de\u0027:\n  Limit persistent ashmem backed fds to a minimum of 128kB.\n"
    },
    {
      "commit": "4d47d2595e3753b0f1be5ff59de100a073141593",
      "tree": "b10ce5022f30b935c101884b9dc4b1cd83a94f72",
      "parents": [
        "978db40983bd4ba2a9cb3502fd7c82c6f6311d64"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 03 15:39:15 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 03 15:39:15 2015 -0500"
      },
      "message": "If LayerDrawable child doesn\u0027t have constant state, use shallow copy\n\nAvoid NPE if mutate() is called on a LayerDrawable with a child that\ndoesn\u0027t support constant state.\n\nBug: 25438651\nChange-Id: I6bf5a90484fda44a7b5fd10ce7b798eaa799b68e\n"
    },
    {
      "commit": "8cee7c17119b204be88860feb812f2374d0de732",
      "tree": "5800445b3f2808335177932a24f23c9ec066a881",
      "parents": [
        "a975732a8302893a40cdc444f893bf09b7669173"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@android.com",
        "time": "Sun Nov 01 23:36:04 2015 -0800"
      },
      "committer": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 17:46:15 2015 +0000"
      },
      "message": "Limit persistent ashmem backed fds to a minimum of 128kB.\n\nBug 25256717\n\nChange-Id: Ieb356006df0a6545b89de44d3d8fd4b46312b3b8\nSigned-off-by: Riley Andrews \u003criandrews@google.com\u003e\n"
    },
    {
      "commit": "36555baa556a1531b6b6edc2dea1de5469f74b64",
      "tree": "4fa8a07ff1c1484212052d9c36074d62d6baa29e",
      "parents": [
        "2b2e24c2ab77475ac9b22b4eecdee10db578800c",
        "ce52037e0ae0c380f5b834fb3dad105bfaf5e374"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Nov 02 18:36:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 18:36:09 2015 +0000"
      },
      "message": "Merge \"Support for changing density of GradientDrawable\""
    },
    {
      "commit": "ce52037e0ae0c380f5b834fb3dad105bfaf5e374",
      "tree": "d3afc32bb6e39a79dd282ea5583903d364ccfb97",
      "parents": [
        "2e9aa6fc40afeb691e5d2f82ea962ce65b438768"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Oct 30 11:07:35 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Oct 30 11:07:35 2015 -0400"
      },
      "message": "Support for changing density of GradientDrawable\n\nRefactors density resolution and offset/size scaling into static\nhelper methods.\n\nAlso fixes VectorDrawbale insets to be treated as offset-type pixels\nrather than size-type.\n\nBug: 25081461\nChange-Id: I10fcb9ebb6c67f853a27ca0ee008c31af4b85da0\n"
    },
    {
      "commit": "7e3ede288926bdfb79b1571fed74cad614935821",
      "tree": "99f728fa8b8ca9c4ea6db3f91f8522e1365ca63e",
      "parents": [
        "2e9aa6fc40afeb691e5d2f82ea962ce65b438768"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:57:57 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:57:57 2015 -0400"
      },
      "message": "Support for changing density of DrawableWrapper subclasses\n\nIncludes a refactoring of DrawableWrapper classes so that the wrapper\nsuper class handles both drawable management and inflation. This allows\nus to immediately call through to super() in inflate and applyTheme,\nwhich simplifies density management.\n\nBug: 25081461\nChange-Id: I8c157d340fd1f28a3a2b786c56850a67cdd452e4\n"
    },
    {
      "commit": "0cacad7023ad30ad886ef85751e9e39b10f846f9",
      "tree": "7941eb5be48c50f769d5aadfba20f1083372072b",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:37:25 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:37:25 2015 -0400"
      },
      "message": "Apply density scaling in LayerDrawable and subclasses\n\nBug: 25081461\nChange-Id: I48e62caf5017ff2dd84cf62b68a828f4542b6ae5\n"
    },
    {
      "commit": "b6e66624629448b7a8c8d5d1ec62f87ba109546d",
      "tree": "2ae4060c56fb29f290d276386f965dc8809277ff",
      "parents": [
        "20070371f37db12d6f3e22763a0fbde4abdb2841"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Sun Oct 25 16:05:27 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Mon Oct 26 14:11:32 2015 -0700"
      },
      "message": "Improve infrastructure for replacing windows.\n\nWe need to be more precise when removing the window that is being\nreplaced. We used to depend on the fact that we can remove it after\nthe first draw of the new added window. However, due to resizing the\nold window might reset its draw state and that will trigger a removal\nof that window.\n\nWe need to add an information about the window that is replacing the\nold one and only when this new window draws itself, we remove the old\none.\n\nThis improves the transition after maximizing docked window. This is\na situation where first resize operation finishes and immediately\nafter we have a replacement operation.\n\nBug: 24914011\nChange-Id: Ia8e5bb7872787e663ba23f26588f9c4db1a5e574\n"
    },
    {
      "commit": "e1e654d09e2b2638b98612e05e879811401012f2",
      "tree": "0ebd9d6233602b46160cc1956e4a9b0efecb9946",
      "parents": [
        "4c6b40ec81c6394cb10e5ecb6c00d1412cba8272",
        "f036ead2a218ffa43697fcaa999b666a4c6d13cf"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Oct 23 01:39:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 01:39:28 2015 +0000"
      },
      "message": "Merge \"Pass the whole locale list down to Minikin.\""
    },
    {
      "commit": "f036ead2a218ffa43697fcaa999b666a4c6d13cf",
      "tree": "c78f8f0adc8e2ed14bb40b642a62c08fe519a2ea",
      "parents": [
        "ec3d759a34ae45f5f1d6fe1b7aa9d83ebc09048d"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Oct 19 16:56:39 2015 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Oct 22 13:14:13 2015 -0700"
      },
      "message": "Pass the whole locale list down to Minikin.\n\nAlso, compute LocaleList\u0027s string representation at construction.\nThis is to further push the cost of doing costly operations related\nto LocaleLists to construction time.\n\nChange-Id: Ia55b8ce66b1088ff54cb42eb1e11149b5bd10f17\n"
    },
    {
      "commit": "8cab9b5f1decf5ec10e4e6638323716fdc573dd3",
      "tree": "b0d0b4082102bb7e0efd7ef8ab5c17d595bafadc",
      "parents": [
        "4ae5471c729c5706e79cb5a5e3bbcb194f550524",
        "f1f5f6fcaa768c5b88e9a56f18cbd6ecf72755a8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Oct 22 15:02:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 22 15:02:32 2015 +0000"
      },
      "message": "Merge \"Reset constant width/height when DrawableContainer density changes\""
    },
    {
      "commit": "f1f5f6fcaa768c5b88e9a56f18cbd6ecf72755a8",
      "tree": "1425560e900229f12b8274d5be62716dbbd6d7fd",
      "parents": [
        "459fdf95c60d4804a290e52fd025d33776bf1ed8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 17:14:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 17:14:27 2015 -0400"
      },
      "message": "Reset constant width/height when DrawableContainer density changes\n\nBug: 25081461\nChange-Id: I9661e964e1d0bacd337e31073faf870d37939b51\n"
    },
    {
      "commit": "4a94faa0c74c7ad4defdc6e2fa937c93a4d0b5af",
      "tree": "1a4d1c49915a54b0d6ba7a536bef71c625527615",
      "parents": [
        "459fdf95c60d4804a290e52fd025d33776bf1ed8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 15:15:23 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 15:15:23 2015 -0400"
      },
      "message": "Scale density correctly on VectorDrawable.applyTheme()\n\nBug: 25081461\nChange-Id: I012e0932e67bc51502dc00e11131218af1377115\n"
    },
    {
      "commit": "a3ee41b6335bef38c9ac1114fcd7f20b81081a78",
      "tree": "857d2ee6db43f6ad1a54246ed922780dd70ad8b2",
      "parents": [
        "e5971fe5205dd9047c6de26e29e78499c84b6e89"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Oct 20 17:15:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Oct 20 17:15:27 2015 -0400"
      },
      "message": "Apply density scaling when updating from typed array\n\nEnsures that density scaling is applied to default dimension values\nwhere needed. Previously, scaling was only applied when a drawable\nwas loaded from cached constant state; however, drawables that were\npreloaded against a different density and first loaded in some other\ndensity were not scaled.\n\nBug: 25081461\nChange-Id: I0f8058cc01e2fe8d6bd7e255eba40485f3cbe48b\n"
    },
    {
      "commit": "02f633d4cf0bd0c49c4b53ead92638f8a5df7a6b",
      "tree": "af14f7368bac55f4b25f17f809eb4db8324b7469",
      "parents": [
        "8f8b5d58de61625eda32a74a9b7c43275b8bab3d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Oct 19 15:18:53 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Oct 19 15:18:53 2015 -0400"
      },
      "message": "Clean up VectorDrawable usage of stroke and fill color state lists\n\nOnly store stateful CSLs; otherwise, just use the default (e.g. the\nonly available) color.\n\nBug: 25074102\nChange-Id: I050c89841d4c6bf22473a66c713a845b0358dc94\n"
    },
    {
      "commit": "2a6a2c2de8ce2743679f488f056f22cd1adfd726",
      "tree": "51c309f42ef0d13be94a284c0b4e90469a322eee",
      "parents": [
        "9f1181e968eebcfe7f7f9cfd4e6b7b11eb4b47b4"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Oct 14 12:00:53 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Oct 14 12:17:11 2015 -0700"
      },
      "message": "Change WindowState.mShownFrame to WindowState.mShownPosition.\n\nWe never use this field as a rectangle, we only depend on its left-top\ncorner. Using a frame is only confusing about the purpose of this field.\n\nChange-Id: I5d6e6321db4fa3203bb7e0f1975ae6ddd1ec09bb\n"
    },
    {
      "commit": "dbffd250003e60c0f11ac3ad2b63f91f67962610",
      "tree": "eb140aaaef2ae1ebc71cf9d045cd6615fb484401",
      "parents": [
        "150c5ae28d594ab4cfe3db68933337f79a5364d1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 01 14:46:12 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 02 09:27:10 2015 -0700"
      },
      "message": "Fix Paint\u0027s JNI\n\nBug: 22409077\nChange-Id: I99e1a11bf14f5b62c41107528f573eaf9f2d4b2f\n"
    },
    {
      "commit": "3089211ce6c279f92cb3ff8ce4137d322ce1ec97",
      "tree": "1e35d7e630d55acbdabd64a0cdd9bfc0d11eae38",
      "parents": [
        "674be55852404a9defd2c7c6b002fc9a954a81e7",
        "05de8fb29af618b0b3446fe81caca7402c6da666"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Thu Oct 01 20:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 01 20:11:49 2015 +0000"
      },
      "message": "Merge \"Add tests: Paint#measureText for bidirectional text.\""
    },
    {
      "commit": "2c53a0759742eeec8f123ad81b7a26aef222c378",
      "tree": "8ef8d771d1077ff035a3979a08f65404624efdcd",
      "parents": [
        "fdb5d2f7ce7b34700ad5f0b05e889edb86f414d6",
        "536afe6ef79a663e59c3b9781c561f7029ee9319"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 21:31:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 21:31:56 2015 +0000"
      },
      "message": "Merge \"Consolidate native methods for text measurement.\""
    },
    {
      "commit": "536afe6ef79a663e59c3b9781c561f7029ee9319",
      "tree": "38a3bc3f59c8fe938898a1c1b283c803c698032c",
      "parents": [
        "21bb7a3e38cc790ffc2735ef28bd5cd729b32e1a"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 13:52:45 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 13:52:45 2015 -0700"
      },
      "message": "Consolidate native methods for text measurement.\n\nBug: 24505153\n\nChange-Id: I6a00b0516442f7d6108ed0598516365310bd85e8\n"
    },
    {
      "commit": "57bbbaca0b1485772b4dff724a1f84be013ee042",
      "tree": "43dd705e38c81d3893721d2c61e9ba094dea838a",
      "parents": [
        "66e47b6aa142edd6e613b081f6672dde891277b1",
        "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 20:07:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 20:07:25 2015 +0000"
      },
      "message": "Merge \"Add tests for Paint#getTextRunAdvances\""
    },
    {
      "commit": "05de8fb29af618b0b3446fe81caca7402c6da666",
      "tree": "0b2085218a88e7161d26c7a1fe59535dfaf228a0",
      "parents": [
        "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Wed Sep 23 13:34:17 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:32 2015 -0700"
      },
      "message": "Add tests: Paint#measureText for bidirectional text.\n\nBug: 22408712\nChange-Id: Idff949fcabf360c994a0e3397cf6ec90d3a31162\n"
    },
    {
      "commit": "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2",
      "tree": "eb7f3ccbbcb895f137dbfb2008e0432e88ce94c2",
      "parents": [
        "21bb7a3e38cc790ffc2735ef28bd5cd729b32e1a"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:26 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:26 2015 -0700"
      },
      "message": "Add tests for Paint#getTextRunAdvances\n\nBug: 24308179\nChange-Id: Ic979e67c10fb18c1333963d8b27352968977f28f\n"
    },
    {
      "commit": "e72a703a95156313f6c17540762f6dcd37b7d7e4",
      "tree": "435ef8fbf65defa4c651d8ee79c38193c73c1f84",
      "parents": [
        "7d92c474986c0ed562310a99aebd4ed845027f8b"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 23 10:20:59 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 23 10:20:59 2015 -0400"
      },
      "message": "Add attribute for specifying initial ScaleDrawable level\n\nBug: 19182305\nChange-Id: Ic1f183db6183017352babc6dc190fdb9124c285a\n"
    },
    {
      "commit": "50c29cd92f4fc410f61e2d14ce77f5e8e76daf0b",
      "tree": "d74fa575f18c92b25539fdcf04f1cddb8e05d808",
      "parents": [
        "31cb4bb41fe8290a46e6b7660eb1deeb67ee1558"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 22 15:03:50 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 22 15:03:50 2015 -0400"
      },
      "message": "Allow color state list for vector drawable fill and stroke\n\nRemoves unnecessary invalidateSelf() from VD.onStateChange(). This is\nhandled by the view hosting the drawable.\n\nBug: 22984152\nChange-Id: Idf11a0ffef392cb1d8452aa3f5f836b35027a756\n"
    },
    {
      "commit": "a02d2748be353393b7b593d5adbd37d80dee427d",
      "tree": "8b8f870dc52750ce25bc0e45771872220ccdbb84",
      "parents": [
        "96d9953f74ab16a9a63ebfe4119d5340ec734e87"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 16 17:08:58 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 16 17:08:58 2015 -0400"
      },
      "message": "Clean up DrawableContainer.selectDrawable() docs, params\n\nChange-Id: Ic38cbb4a21dab452950ba0e308ceba3cbe966363\n"
    },
    {
      "commit": "6fe1ea778ca66911a18c01eb1eb2a80137294681",
      "tree": "97740efd00ec3958a205bba90659aeba56c5f6bb",
      "parents": [
        "4bd2301eb788aac904903de24d42af1a42eed1b8",
        "0b6cfe22fda3396b4790ac79fc90488bec4a49a4"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 17:04:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 17:04:09 2015 +0000"
      },
      "message": "Merge \"Revert \"Use floating-point value for Drawable level\"\""
    },
    {
      "commit": "0b6cfe22fda3396b4790ac79fc90488bec4a49a4",
      "tree": "3c292728d5df76c6c089cd733abb994bd63e237a",
      "parents": [
        "3da32b768899e7dabe3a16333edf5eca2b9ebe93"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 16:59:49 2015 +0000"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 16:59:49 2015 +0000"
      },
      "message": "Revert \"Use floating-point value for Drawable level\"\n\nThis reverts commit 3da32b768899e7dabe3a16333edf5eca2b9ebe93.\n\nChange-Id: Ie75ce0c285e0f59a7a086f64c0cfe088edb5df04\n"
    },
    {
      "commit": "28aa456ac8e42e4d5e9d8c20736288b7017eae4d",
      "tree": "1e061e1710725ca541dc1881f88d4f4aceda5cf3",
      "parents": [
        "965ca42c0e706dc8fdeeb38dd2751de560f198c0",
        "1d8152726b7ef2094f2e99619581c2abd2117381"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 23:50:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 23:50:45 2015 +0000"
      },
      "message": "am 1d815272: am 58c27e3e: am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u00271d8152726b7ef2094f2e99619581c2abd2117381\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "1d8152726b7ef2094f2e99619581c2abd2117381",
      "tree": "fee2f86b4619aa88a12a11c3bc5bb9bc12ab5e74",
      "parents": [
        "26a11c28563c497625f00fc4fba319de9119ee60",
        "58c27e3e53ef64072412515792433e570a176f15"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 23:44:37 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 23:44:37 2015 +0000"
      },
      "message": "am 58c27e3e: am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u002758c27e3e53ef64072412515792433e570a176f15\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "58c27e3e53ef64072412515792433e570a176f15",
      "tree": "a96c418787b11265446f74a8e75afe3961e6247c",
      "parents": [
        "03c26b274aed35c0a580b309567264d00cb643f2",
        "c0ce6c422cfe089e7a8e209ac924e37bed3ca770"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 22:41:42 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 22:41:42 2015 +0000"
      },
      "message": "am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u0027c0ce6c422cfe089e7a8e209ac924e37bed3ca770\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "ffa84e008c712ceffa09d6b89a49882c88b3cca5",
      "tree": "8eb45713334c4fc5f1c2d4bb59e3f8936a91e37f",
      "parents": [
        "596fd38af207727d508a63fca39506c90ba29c44"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 11 17:01:37 2014 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 08 18:27:36 2015 -0700"
      },
      "message": "Reduce risk of memory corruption due to finalization.\n\nMany classes in graphics/java and elsewhere deallocate native memory\nin a finalizer on the assumption that instance methods can no longer\nbe called once the finalizer has been called.  This is incorrect if\nthe object can be used, possibly indirectly, from another finalizer,\npossibly one in the application.\n\nThis is the initial installment of a patch to cause such post-finalization\nuses to at least see a null pointer rather than causing memory corruption\nby accessing deallocated native memory. This should make it possible to\nidentify and fix such finalization ordering issues.\n\nThere are more graphics classes that need this treatment, and probably\nmany more in other subsystems.\n\nThis solution is \u003c 100% effective if finalizers can be invoked\nconcurrently.  We currently promise that they aren\u0027t.\n\n(In my opinion, the real cause here is a language spec bug.  But that ship\nhas sailed.)\n\nBug: 18178237\nChange-Id: I844cf1e0fbb190407389c4f8e8f072752cca6198\n"
    },
    {
      "commit": "660383cfa7f2d2521708155715aeeea1fa0ff287",
      "tree": "afc2e6c295a48f65a1d36d867650490ae6d6358c",
      "parents": [
        "396d3ca71928bac28ec800e2eb8d7f07244798e6",
        "3da32b768899e7dabe3a16333edf5eca2b9ebe93"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Sep 04 14:21:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 14:21:26 2015 +0000"
      },
      "message": "Merge \"Use floating-point value for Drawable level\""
    },
    {
      "commit": "a72f59a858ebda3d96583502d8ac02443d6223c3",
      "tree": "25fbb0ebd0f2f3cae8ed04e9b63f5cad028c1895",
      "parents": [
        "53f1a815b4401f10cd833217143da44ab0408dcc"
      ],
      "author": {
        "name": "Snild Dolkow",
        "email": "snild.dolkow@sonymobile.com",
        "time": "Fri Sep 04 10:08:05 2015 +0200"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Fri Sep 04 10:08:46 2015 +0200"
      },
      "message": "Update mFillPaint color on GradientDrawable inflation\n\nWhen a GradientDrawable is loaded from scratch, initializeWithState()\nis called with mColors \u003d\u003d null. This sets mFillPaint\u0027s color to\n0x00000000 -- transparent. mColors is then properly set in inflate(),\nbut mFillPaint is not updated there. It will be updated eventually\nthrough a mutate() or ensureValidRect() call, but that\u0027s sometimes too\nlate.\n\nIn our case, a wrapping StateListDrawable called getOpacity(), and\nsince it caches the result, it never got updated.\n\nThis doesn\u0027t cause any problems on preloaded GradientDrawables, since\nthe new GradientDrawable created when fetching a preload will call\ninitializeWithState() in its constructor, fixing the GradientState.\n\nChange-Id: Ic8caa7c6a7c1d4dae5ff31ae943831bd2e014f79\n"
    },
    {
      "commit": "084938f2a1b8224bf9ada8a4bc3b48b5cf9275e9",
      "tree": "e70894b2427fe59d9afc0889311b054552dcbcfa",
      "parents": [
        "be3b06766a1ed0e8cecb78c98f08dc2c2703a6d8"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Sep 01 16:03:58 2015 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Sep 02 23:25:37 2015 +0000"
      },
      "message": "Check whether AnimationDrawable is one shot only when visibility changes\n\nWhen AnimationDrawable becomes VISIBLE again, the current behavior is to\nstart the Drawable from the first frame if it\u0027s not running. For one shot\nAnimationDrawable, it should start once and stay on the last frame.\n\nBug: 23725157\nChange-Id: I5f3095aa00b07fefe7f992851d4190f268c266b2\n"
    },
    {
      "commit": "3da32b768899e7dabe3a16333edf5eca2b9ebe93",
      "tree": "fe6702158566934b6fa920983beede3803944a0c",
      "parents": [
        "3d21421a440bb86dcd80bad8bc85fb1e859cd0d8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 02 13:33:58 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 02 13:33:58 2015 -0400"
      },
      "message": "Use floating-point value for Drawable level\n\nThis allows us to run fine-grained level animations.\n\nBackwards compatibility:\nAnother CL will add DrawableCompat.setLevel(float) to forward calls to\nthe existing integer-based method. For callbacks, developers can override\nonLevelChanged(int) and use DrawableCompat.getLevelFloat() to obtain the\nfloating-point level. Overriding onLevelChanged(float) will only work on\ncurrent API.\n\nBug: 23566299\nChange-Id: I431fe6f3679c8f23f9cf3c2bb1f92a4059ee68e3\n"
    },
    {
      "commit": "008d6d034ea68a7ccc5b7c454f642fcaaf9dc2cb",
      "tree": "f29dff4272ddc12266117b31f8643b8646aebde2",
      "parents": [
        "6b49d300346d130d2681cbd3de7165989c3a33f2",
        "a23748a9ff9ddc8b490fc31752afa9b955d5e156"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Sep 01 21:14:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 21:14:11 2015 +0000"
      },
      "message": "Merge \"Add LocaleList support to Paint and TextView.\""
    },
    {
      "commit": "a23748a9ff9ddc8b490fc31752afa9b955d5e156",
      "tree": "f999dd83d86b9a31f992b197b554358aeed812a0",
      "parents": [
        "cd0b88dc0de58e1de42ef7fc0e693354efd793f0"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Aug 31 14:30:36 2015 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Sep 01 14:12:40 2015 -0700"
      },
      "message": "Add LocaleList support to Paint and TextView.\n\nThis keeps the existing single-locale APIs working (and adds\nparameter annotations to them), while adding an API for setting and\ngetting the whole locale list.  At the moment, the implementation\nignores the actual data in the locale list except for its primary\nlocale.\n\nAlso add a method to LocaleList to return the system\u0027s default locale\nlist. (Currently a one-member list just containing the system\ndefault locale.)\n\nChange-Id: Icea9d164ddae51f50dd71e18b5d91c96f233b8b8\n"
    },
    {
      "commit": "d54e993924da465018f41a84f6aa9f273aa7c9f5",
      "tree": "b03dedf7edbf4995ae82e345bd489170def9b391",
      "parents": [
        "7bbb9ce2537942469b3030c96be0e2274ed92599"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 01 16:10:03 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 01 16:10:03 2015 -0400"
      },
      "message": "Refactor VectorDrawable to use VObject for paths and groups\n\nCleans up collection typing and encapsulation. VObject encapsulates\ninflation, theme application, and drawing. VFullPath is responsible\nfor rendering nodes to a Path.\n\nChange-Id: Ic760576d8000c4844ec3cab1b4bbcecb4fa1b760\n"
    },
    {
      "commit": "8e88b378336d83b5d026b9cd1a0c1cd6703f7369",
      "tree": "e14f07ea2ef0c48d0377ef1d1e3cee6f6b961963",
      "parents": [
        "4d25f52ae13724388e7be09ae2d1c6cdcb48d49b",
        "9151a6995150f7c0495b98b0da59c4b9d5343167"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 16:43:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 31 16:43:28 2015 +0000"
      },
      "message": "Merge \"Implement missing jumpToCurrentState() in LayerDrawable\""
    },
    {
      "commit": "9151a6995150f7c0495b98b0da59c4b9d5343167",
      "tree": "6c293089a97d5a9b22f795889523ffd27864f384",
      "parents": [
        "d69bb6109322cd5a3a7a005b99393018d7e97d0d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 12:39:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 12:39:27 2015 -0400"
      },
      "message": "Implement missing jumpToCurrentState() in LayerDrawable\n\nBug: 23674536\nChange-Id: Icf1a4248d82484e48a958ce019b1f9cb0caeac9e\n"
    },
    {
      "commit": "c725e8d5ea04ffb5821e00db1c6b45cfe2130e05",
      "tree": "1ad0cc55d19da4930d3cc3ebe116b01f41cfdda1",
      "parents": [
        "d69bb6109322cd5a3a7a005b99393018d7e97d0d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 11:36:16 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 11:36:16 2015 -0400"
      },
      "message": "Add missing @param in ResourceManager, set InflateException source\n\nBug: 11695070\nChange-Id: I94a4980688a952c1f59f1cb15cf2192e3c51de90\n"
    },
    {
      "commit": "caca720b176a0dab0a43a20496e676687e8d78f7",
      "tree": "c32fc791991e60a0579c9ac571a04d6d599e9174",
      "parents": [
        "43c2091a65ff825071206d6cfd7b7b3caddcb6d0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 28 13:15:49 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 28 13:15:49 2015 -0400"
      },
      "message": "Allow inner classes to be used as custom drawables\n\nBug: 22627299\nChange-Id: I2f21927966470594f1b96feac6d5abaa397f2d15\n"
    },
    {
      "commit": "02fc5fef36357467eba22a0ee250a96734daf791",
      "tree": "088ad67d42c904cdb51355df4dcf973c8af54be1",
      "parents": [
        "306a1d22b8afa60aad2dca9e6a67788eb774d534"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 27 13:16:09 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 27 13:16:09 2015 -0400"
      },
      "message": "Extract drawable inflation to its own class, inflate from class name\n\nBug: 22627299\nChange-Id: Icd2ac88af4f3102e08e52f6f0f7565839da6437a\n"
    },
    {
      "commit": "e0367d26c9af7cc4b3dbe0b7a48fded1860938e2",
      "tree": "9cee049191ad6fef7f7d58cac73235490b316ead",
      "parents": [
        "93f1904f1bd4a67e23383123e32e5cfac331a767",
        "b98adf20a0f27a8e717b627801632766547121a2"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Aug 25 23:25:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 25 23:25:20 2015 +0000"
      },
      "message": "am b98adf20: am bdb151ea: am 4816d7d5: am e30e8980: Merge \"Disable RT animations for header ripple\" into mnc-dr-dev\n\n* commit \u0027b98adf20a0f27a8e717b627801632766547121a2\u0027:\n  Disable RT animations for header ripple\n"
    },
    {
      "commit": "191ac0a72b0a7ba883d9cebee6eff71fbea4ef17",
      "tree": "6858e4ff30b8c1b7a447232cf3524a75e5c5d0b8",
      "parents": [
        "db0fa33f44ac2486400a6737b0712f6b1e8a21ef"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 24 17:25:36 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 24 17:25:36 2015 -0400"
      },
      "message": "Reverse order of RT animations so enter animation works correctly\n\nBug: 23428182\nChange-Id: Id54ad19c6ee71e01656f79d413e45cf2e19bd1ea\n"
    },
    {
      "commit": "b7303a36baf8d0ac3efdeeee3310ef5974ba9cea",
      "tree": "849198070694eacf05379994925381764f57b22b",
      "parents": [
        "5eb67c22489f5fda22770d1fc824e7a8013ec025"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Aug 19 16:51:36 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Aug 21 15:21:12 2015 -0700"
      },
      "message": "Disable RT animations for header ripple\n\nBug: 22208997\nChange-Id: I10a890d4f8f70c7c786940ffdb86cf4d21bdaf05\n"
    },
    {
      "commit": "1303a118029da41ab1263f907053e64cafed7816",
      "tree": "0cceebdd2b6b089c8c46758105fa17f80fe6d5c3",
      "parents": [
        "164752df2a242ec0ae144901337082526ba156ad",
        "e5b44d5c66d19dda8c6fb42615c00e6fbef7e822"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 21:47:37 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 20 21:47:37 2015 +0000"
      },
      "message": "am e5b44d5c: am 5646203c: am 63e9875a: am 786529f2: am 54c807e7: Merge \"Translate ripple mask to account for drawable bounds\" into mnc-dev\n\n* commit \u0027e5b44d5c66d19dda8c6fb42615c00e6fbef7e822\u0027:\n  Translate ripple mask to account for drawable bounds\n"
    },
    {
      "commit": "f0d69b9e33e32b60bf953fc775b7843825e99036",
      "tree": "d0c21b7d138c7c66443136c07a150309cab39da2",
      "parents": [
        "e3de6c5df5a94e627c5ee0f188cbb066233a3dd0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 16:27:21 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 16:27:21 2015 -0400"
      },
      "message": "Translate ripple mask to account for drawable bounds\n\nBug: 23354529\nChange-Id: Iaa4fde6b37645492cf902f141f975bdef8e7e14e\n"
    },
    {
      "commit": "1ad545d207db840d0e403569ce214431eead4217",
      "tree": "4cc9b9c82734c57071a3d607a4c5d6734c0ebb87",
      "parents": [
        "e4a6f925621e9360238869ae28f7df1b4c2d97de"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 20 14:23:14 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 20 14:27:10 2015 -0400"
      },
      "message": "Fix path direction enum to match native SkPath values\n\nChange-Id: I4010e400cef0baf6dd23d7f7e837a2bfb7154059\n"
    },
    {
      "commit": "4c5efe9290543b723b76a8bd48518da1ae1dcb26",
      "tree": "237eac6feabafc213a787ee0fac5e1148636fd96",
      "parents": [
        "5fa6c7424a041e78a8d4976ec52ef6f684fa3270"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 13:56:39 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Aug 18 15:32:57 2015 -0400"
      },
      "message": "Add ninePatch support to Canvas.h\n\nChange-Id: Ic095291fe55911c6501c1bdefa4b8da973c77319\n"
    },
    {
      "commit": "773bbe0357b17a16d095ce57c30980992a9c977f",
      "tree": "08a0458aead2f32c01372e0411f280b8c01f5781",
      "parents": [
        "c8e6c7996f440655a5b2338faab358adc6d66435"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 17 15:18:29 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 17 15:24:09 2015 -0700"
      },
      "message": "Revert \"Add ninePatch support to Canvas.h\"\n\nThis reverts commit edca320a2b42011f98c308fdf25fc0494c6a5454.\n\nChange-Id: I30ee93cfc1cac391ce152f03e9e13a1ad24dc91b\n"
    },
    {
      "commit": "deead00082df4839e71026750e55c1af4d62782f",
      "tree": "76653aaf7887977b55d37fd664f734c2a5afcfda",
      "parents": [
        "b247ba1ff53190f5b3dbdd6ec68a83b6847be468",
        "edca320a2b42011f98c308fdf25fc0494c6a5454"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Aug 17 17:20:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 17 17:20:55 2015 +0000"
      },
      "message": "Merge \"Add ninePatch support to Canvas.h\""
    },
    {
      "commit": "96b3da660334f35a62faa2946936059895ab6de0",
      "tree": "6110fb93683547183f299ed7536a4657873195fb",
      "parents": [
        "dc12e1531ff9c4f9cc77289cbc7a0cd838ffcb8b",
        "41551849e698129d4bd8861a1de9cb58f1300ec5"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:24:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 14 20:24:17 2015 +0000"
      },
      "message": "Merge \"Add missing accessors on GradientDrawable, NinePatchDrawable\""
    },
    {
      "commit": "41551849e698129d4bd8861a1de9cb58f1300ec5",
      "tree": "a1522f73c90a38094f7a3a0dce5b8f99788c4770",
      "parents": [
        "c2f61b779884647f6f02ed5f920126b34a3adacc"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 10:50:21 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:23:43 2015 +0000"
      },
      "message": "Add missing accessors on GradientDrawable, NinePatchDrawable\n\nBug: 13248977\nBug: 13249029\nChange-Id: Ia8817a264b7063926e75b2f2a238d5ba36e14ab5\n"
    },
    {
      "commit": "dc12e1531ff9c4f9cc77289cbc7a0cd838ffcb8b",
      "tree": "1e611c63bc2821c0c129f4d4c4c307f17bb4e684",
      "parents": [
        "23999bffafb1de67dc03141b0214aa5f2919ebc8",
        "81590a48a4bb0b6700e5535c5bce720ddfc76fa2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:21:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 14 20:21:50 2015 +0000"
      },
      "message": "Merge \"Remove framework-private HSV APIs, replace with luminance\""
    },
    {
      "commit": "edca320a2b42011f98c308fdf25fc0494c6a5454",
      "tree": "611529655ca34f7b9080abcc0e32fd7abfb3ea5d",
      "parents": [
        "c2f61b779884647f6f02ed5f920126b34a3adacc"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 13:56:39 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Aug 14 14:59:37 2015 -0400"
      },
      "message": "Add ninePatch support to Canvas.h\n\nChange-Id: Ib3202fd7c5b9f35853f286abe84b3ed009df1a81\n"
    },
    {
      "commit": "81590a48a4bb0b6700e5535c5bce720ddfc76fa2",
      "tree": "332d6af2970163f25ede606a71aeb9c63ddcc073",
      "parents": [
        "c91edfafacd3292bd08038cd90e647f776aa2af2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 14:01:17 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 14:01:17 2015 -0400"
      },
      "message": "Remove framework-private HSV APIs, replace with luminance\n\nLuminance is the measure used by W3C to compute contrast ratios, so\nwe should be preferring that for \"brightness\" comparisons.\n\nBug: 22815971\nChange-Id: I84a971d3cc6b12acebe8e455c0c0440c1c8bce06\n"
    },
    {
      "commit": "58204be5e66b8e687ea7dfda60279fd1a959d0e2",
      "tree": "786146c865b11d2d97764dcd517788ca7199e846",
      "parents": [
        "c91edfafacd3292bd08038cd90e647f776aa2af2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 13:53:03 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 13:53:03 2015 -0400"
      },
      "message": "Remove incorrect ColorInt annotations\n\nThese methods return [0,255], not a packed color.\n\nChange-Id: I5bad2948a6bc7188d9521098fc030c8905714c48\n"
    },
    {
      "commit": "7873b6da5afada5d962b233feb6cc613b526ffb1",
      "tree": "1553c29b06dfd38b25e60a6be97f0a52ac0a527e",
      "parents": [
        "2d2ba516e6f1ea9e515f29cdf84e75a17e8fa60b"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 13:12:34 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 12 13:12:34 2015 -0400"
      },
      "message": "Remove framework-private Color.HSBtoColor API\n\nBug: 22815971\nChange-Id: Ic4cb43e78e0a7a6fc234865759754d106cef11dc\n"
    },
    {
      "commit": "6973201f54d4d99d684aa2e42adb0a5d9829cfc8",
      "tree": "5e3eeb1ec51613c5cc9c748473ec4103fcfe4cd9",
      "parents": [
        "012d014c43c5fecb8f6e034089c22900c8755846",
        "e968c87fa766ea668e319aa828f419fe0dcfd0db"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 11 20:08:12 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 11 20:08:12 2015 +0000"
      },
      "message": "am e968c87f: am 570a2363: am a8431e8c: am bfd62580: am 11104791: Merge \"Ensure ripple mask is drawn at correct position\" into mnc-dev\n\n* commit \u0027e968c87fa766ea668e319aa828f419fe0dcfd0db\u0027:\n  Ensure ripple mask is drawn at correct position\n"
    },
    {
      "commit": "bac9769146af07753728e5c6b3a30eae3076aed0",
      "tree": "6bf46bf18afbe8e2d76648666801b2393a850f83",
      "parents": [
        "ad7719dea4e8fd34854e4dcc918fc593c4416d82"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 11 14:25:45 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 11 14:25:45 2015 -0400"
      },
      "message": "Ensure ripple mask is drawn at correct position\n\nBug: 22911708\nChange-Id: Icdbe1f8a66d5e35eb25aa973c94f5870896cc1f8\n"
    },
    {
      "commit": "fac589451fde46db2fc3282f4a6991b7cf6b155a",
      "tree": "5ad719f600622e5efe4719a1f63423df66ca1066",
      "parents": [
        "012a5e84ed71c4c6e25d0a6bd86055e81a8b763b",
        "3b68ca168acc09b54fa3f6ed73e7ded10e5b8105"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 01:40:41 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 01:40:41 2015 +0000"
      },
      "message": "am 3b68ca16: am 96160dea: am 8e645d58: am 649c3c44: am 7290d93d: Merge \"Yell loudly about undefined behind in Bitmap, but work anyway\" into mnc-dev\n\n* commit \u00273b68ca168acc09b54fa3f6ed73e7ded10e5b8105\u0027:\n  Yell loudly about undefined behind in Bitmap, but work anyway\n"
    },
    {
      "commit": "01a0af31d7d418f400ce5d3f752eba6a35aa00e2",
      "tree": "02b4cd30808726c61463464dd9c62959df5cb3f2",
      "parents": [
        "3ba2bfa7b280bac76d4d60a7f548c5e06aaca569"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 31 13:10:39 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 03 20:57:22 2015 +0000"
      },
      "message": "Yell loudly about undefined behind in Bitmap, but work anyway\n\nBug: 22214367\n\nPrevious releases would let the getters on a recycle()\u0027d bitmap to still\nwork despite being firmly in undefined behavior per the documentation\non Bitmap#recycle().\n\nAs there are apps relying on this, yell very loudly about this behavior\nin the log and give them a bit of time to fix it\n\nChange-Id: I857be7e74cb217877973d9c6f03eb761d12fd056\n"
    },
    {
      "commit": "6578a989566e585eee053095dc80e2552e125db2",
      "tree": "a66b73768bc6b165f48542c794cc9c1b16bc167f",
      "parents": [
        "2e93eba5fdad146940f208a40769e1be424e20d2"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Jul 13 13:24:29 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jul 29 16:02:14 2015 -0400"
      },
      "message": "Support High Contrast Text for all canvas types\n\nChange-Id: Iee324446798fe1a1cb32cb991f181a4af24aa93c\n"
    },
    {
      "commit": "c9a6ca5d6b488d1d57c0404856673d7ce1fd0fab",
      "tree": "aec412023712bbae091ae1f41271708b9e294ac7",
      "parents": [
        "c42940bb9ce4084dd4b760be3f8f4d26024950bc",
        "749e67438c7e2dbe2bb362dc07522a1702810455"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 29 18:15:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 29 18:15:16 2015 +0000"
      },
      "message": "Merge \"Revert \"Support High Contrast Text for all canvas types\"\""
    },
    {
      "commit": "749e67438c7e2dbe2bb362dc07522a1702810455",
      "tree": "de6d44b60f147f7cd7781dcd51a50ea1f2c7f3b0",
      "parents": [
        "876d56612ab8ec7032f702905d694670e6c4febd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 29 18:14:46 2015 +0000"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 29 18:14:46 2015 +0000"
      },
      "message": "Revert \"Support High Contrast Text for all canvas types\"\n\nbug:22820834\n\nThis reverts commit 876d56612ab8ec7032f702905d694670e6c4febd.\n\nChange-Id: I4e07a0894095caaaf2fd36bfa6073d033542bfc4\n"
    },
    {
      "commit": "2d35cf953a235c2bd47fd68aef0209a5b776f8d8",
      "tree": "4d4b92e048a3c95e675c225c377ddbbfbff1e75d",
      "parents": [
        "23f1ced75c718222913f49dde46c7b85786f6031",
        "876d56612ab8ec7032f702905d694670e6c4febd"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jul 29 14:36:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 29 14:36:09 2015 +0000"
      },
      "message": "Merge \"Support High Contrast Text for all canvas types\""
    },
    {
      "commit": "dbcea5f495854510eeb1d513dd565ad154bcbfd0",
      "tree": "17a41adb2276261b2550ed03d1b9707a1c02e0f3",
      "parents": [
        "2988187d7b51b12d0d669893f8b3967eace833ff",
        "8054c55bc6a0b7b108ee58df728e7a2b2e646c17"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Jul 17 21:29:32 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 17 21:29:32 2015 +0000"
      },
      "message": "am 8054c55b: am b00f3e4f: am fcec0638: am 8b455841: am 094c82ad: Merge \"Scaling (Animated)VectorDrawable inside ImageView\" into mnc-dev\n\n* commit \u00278054c55bc6a0b7b108ee58df728e7a2b2e646c17\u0027:\n  Scaling (Animated)VectorDrawable inside ImageView\n"
    },
    {
      "commit": "35289f12d6cb0f0db67489876c805ad4a3cbd5f6",
      "tree": "4f8c82b14b54af261462ca8e7ed79dbc2b8417aa",
      "parents": [
        "d4b566bf56333de708908ce4accb5fb067be64f0"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Jan 13 16:21:11 2015 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Jul 17 11:16:41 2015 -0700"
      },
      "message": "Scaling (Animated)VectorDrawable inside ImageView\n\nBefore, the VectorDrawable is behaving like BitmapDrawable inside a ImageView,\nand it can be blurry due to scaling.\nNow apply the scaling information to the cached bitmap, then the size of bitmap\nwill match the ImageView\u0027s screen size. Therefore, no blurry any more.\n\nb/18185626\n\nChange-Id: I979cef3b5178a9bd37ee6cc776df3361ca47c803\n"
    },
    {
      "commit": "d4f1d0c4e2f692c60cf69da15a84ed34b50ca6c0",
      "tree": "362862d29278b41e047cfbc37c627abe0eae3b5d",
      "parents": [
        "8d2f65878fbda4bad0ba60480e1c3c77053aec11",
        "82af13ea831bbf8dbb8caf06b8ecbee5a31fc446"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 17 00:21:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 00:21:27 2015 +0000"
      },
      "message": "Merge \"Remove ImageViewBitmapDrawable class\""
    },
    {
      "commit": "82af13ea831bbf8dbb8caf06b8ecbee5a31fc446",
      "tree": "4dcb7b3e53cff134904d32465f2944b35c3726fd",
      "parents": [
        "d0756379715cb88a1f6a87dccbf6d7d92dad479f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 14 13:36:27 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 13:14:04 2015 -0700"
      },
      "message": "Remove ImageViewBitmapDrawable class\n\nChange-Id: Ie25b4b39cb5d0984981c153b036ea9ade95a10f7\n"
    },
    {
      "commit": "6d86e57bdadd56be160eb3e543cc53622cae46f2",
      "tree": "4cee0d9a9113c29b06a7abdb3b4daec364cdbc26",
      "parents": [
        "db4f4b226ce1bad7d4d900d1396c598d8bf0ae92"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 15 12:22:15 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 15 12:22:15 2015 -0700"
      },
      "message": "Elaborate on Bitmap#reconfigure() expectations\n\nBug: 21947835\nChange-Id: I6ab0ac08e993fb111977b6f9a02e139c7ea5170a\n"
    },
    {
      "commit": "5561d671f5ebe0cfbe20e32341ac31e9eb06a835",
      "tree": "c177762fb45e40d84089d7f7e220e28929479f6a",
      "parents": [
        "a2c1d7841ad5c47a865763335f7d29344924edaa",
        "35ae7a0a8d66c6a19ec82150a60a23730639f382"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Tue Jul 14 18:47:04 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 14 18:47:04 2015 +0000"
      },
      "message": "am 35ae7a0a: am f4874b74: am 2ed576fa: am 66b73dce: am f5e20ec3: Merge \"Retrieve resources for apps, even if not installed for current user.\" into mnc-dev\n\n* commit \u002735ae7a0a8d66c6a19ec82150a60a23730639f382\u0027:\n  Retrieve resources for apps, even if not installed for current user.\n"
    },
    {
      "commit": "c7fd3462a2699f73d5f2ba6d863d8be4ddd570a9",
      "tree": "aed0e806ebcaaa4aba70e311604643aeab9496d4",
      "parents": [
        "208934ff010cc2aff7d8fee9237d6cee0e5bb563"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Tue Jul 14 09:24:22 2015 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Tue Jul 14 09:24:22 2015 -0400"
      },
      "message": "Retrieve resources for apps, even if not installed for current user.\n\nBug: 21448052\nChange-Id: Id5db428a6faca4a905684088c47e070752ac2899\n"
    },
    {
      "commit": "876d56612ab8ec7032f702905d694670e6c4febd",
      "tree": "bc085c681cdb03d7a8c8bba19edfb54f90b298ff",
      "parents": [
        "1f4fb3c4684965156aa5cd3e9bca71a188056447"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Jul 13 13:24:29 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Jul 13 15:13:15 2015 -0400"
      },
      "message": "Support High Contrast Text for all canvas types\n\nChange-Id: Ib46ba3d7c67e081872e6a4b11d294fe9a61f5bbd\n"
    },
    {
      "commit": "94394b3fb048d5349a77b57950ab7f6b6e92ce34",
      "tree": "08d7475d2b15d745ddce772c6456ca6af0383d24",
      "parents": [
        "1d6924866718e821a89199f981a651f72219d4c3"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 09:58:41 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Jul 13 13:48:08 2015 -0400"
      },
      "message": "Move drawRegion from DisplayList to Canvas\n\nChange-Id: I9f401dc5b24732938ac2ca7ed829796e2d7ef3e8\n"
    },
    {
      "commit": "cc882b6518129a11fa007f8c9343e972f03607b4",
      "tree": "6e1ec568b6096f8bd406df5c6317b85b69d399db",
      "parents": [
        "99483dc800910ad321acd1717969c15d872c6531"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Jul 09 15:51:20 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 19:32:30 2015 +0000"
      },
      "message": "Remove unused functions and variables from DisplayListCanvas\n\nThis also moves some functions that are only called when creating/completing\na displayList into the appropriate constructors and endRecording calls.\n\nChange-Id: I9f6add156d7f476a52766934af713b0f852c8dea\n"
    },
    {
      "commit": "b7ba1220a3dc3012d2e22825eaeb0e643333f5a4",
      "tree": "ab3d320793ed3a3f268a955b88630cb988a575f7",
      "parents": [
        "171fe6ac0aa5b0d2dd64ac1cdda25cdcb5f183f3"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 09 17:37:34 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 09 17:40:41 2015 -0700"
      },
      "message": "Teach ImageView to recycle internal drawables\n\nBug: 22289362\n\nIt\u0027s pretty common for ImageView#setBitmap to be called\nrepeatedly. Avoid re-creating the BitmapDrawable in this scenario\nas that has high object churn of semi-expensive objects like\nPaint.\n\nChange-Id: Ib77719cd0366d02c1a42f774850bf3b9caa9c288\n"
    }
  ],
  "next": "93666e8691c9b41855add5c1c92bfc9e0912764e"
}
