)]}'
{
  "log": [
    {
      "commit": "5b7188aebc2401c9c010543eff62ef53036c147b",
      "tree": "a77f18cad8eed299fe0ef4fbbcb5609769df9027",
      "parents": [
        "b9fb8fdf78ba3369da1fc89932bb8253b9183620",
        "df7fdb1e0bdb5c289bbc08047e5c710185503309"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 19:06:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 19:06:20 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"VectorDrawable native rendering - Step 5 of MANY\"\"\"\" into nyc-dev"
    },
    {
      "commit": "b9fb8fdf78ba3369da1fc89932bb8253b9183620",
      "tree": "74e23f7378b4002af6ac081063fa470af310b627",
      "parents": [
        "d30d95d36ceabb6ce1e4908251606be6e36c125f",
        "eb40178af3b7c8d925eaf6c1aa0bef739c8ea47e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 19:04:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 19:04:28 2016 +0000"
      },
      "message": "Merge \"Revert \"Check RenderNode\u0027s owning view before attaching animators\"\" into nyc-dev"
    },
    {
      "commit": "df7fdb1e0bdb5c289bbc08047e5c710185503309",
      "tree": "cb80f84a0aa8efd7ab68d74bcf818ea2eaaad34f",
      "parents": [
        "0d20a275a5baf8579c8b9111cf2ce6615874a6b6"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:37:02 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:37:02 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"VectorDrawable native rendering - Step 5 of MANY\"\"\"\n\nThis reverts commit 0d20a275a5baf8579c8b9111cf2ce6615874a6b6.\n\nChange-Id: I97c782f1164a5d39ab74dc098cca71d9e1b30cd8\n"
    },
    {
      "commit": "eb40178af3b7c8d925eaf6c1aa0bef739c8ea47e",
      "tree": "4391aee82c9128353237465ef6ca9d1e0071d0f8",
      "parents": [
        "12abdeb3c7bffbc7c07b913595f6ea2cb66154d1"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:34:59 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:34:59 2016 +0000"
      },
      "message": "Revert \"Check RenderNode\u0027s owning view before attaching animators\"\n\nThis reverts commit 12abdeb3c7bffbc7c07b913595f6ea2cb66154d1.\n\nChange-Id: I938deddf5f294127f87a0e70f940fe5b9a85e0b2\n"
    },
    {
      "commit": "e6e57a9d5175b6e5c874317b232652f481b6f4a4",
      "tree": "5bb8d0370834622ea74959b85f82348ba169fa53",
      "parents": [
        "5b49c6f31bce6b5ac250178ce004c21d50a48819",
        "12abdeb3c7bffbc7c07b913595f6ea2cb66154d1"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 16 23:38:56 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 23:38:57 2016 +0000"
      },
      "message": "Merge \"Check RenderNode\u0027s owning view before attaching animators\" into nyc-dev"
    },
    {
      "commit": "5b49c6f31bce6b5ac250178ce004c21d50a48819",
      "tree": "7f113dd692443fbb485cc05190f893154c86f4de",
      "parents": [
        "f19e3434f80977d6f8313a2057bca161c4f777c5",
        "0d20a275a5baf8579c8b9111cf2ce6615874a6b6"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 16 23:38:42 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 23:38:43 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"VectorDrawable native rendering - Step 5 of MANY\"\"\" into nyc-dev"
    },
    {
      "commit": "12abdeb3c7bffbc7c07b913595f6ea2cb66154d1",
      "tree": "8770a4c0412b95902d5c49328f357e39eb3fba8e",
      "parents": [
        "0d20a275a5baf8579c8b9111cf2ce6615874a6b6"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 11 20:08:10 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 16 14:25:48 2016 -0800"
      },
      "message": "Check RenderNode\u0027s owning view before attaching animators\n\n-Only add animators to a RenderNode when its owning view is attached\n-When changing animator\u0027s target RenderNode, remove the animator from\n the old target RenderNode that it\u0027s currently running on, if any.\nBug: 27141983\nBug: 27145149\nChange-Id: I9c9592382d64ecc0390f7ec743a59ce1ad7d9798\n"
    },
    {
      "commit": "d86d3fd7689676bf18710cfb4d9cb2a6c76b0128",
      "tree": "9e632c9eca1254a82546960d646bec03a1b93054",
      "parents": [
        "5393a6605f0ffd7f5e1e7e080c414096d6b0db2a",
        "e4f976dc3b7dd2548deb409b6fd421c6c47f6b42"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Feb 16 15:19:03 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 15:19:03 2016 +0000"
      },
      "message": "Merge \"Set the hover state to the same as focus state in RippleDrawable.\" into nyc-dev"
    },
    {
      "commit": "0d20a275a5baf8579c8b9111cf2ce6615874a6b6",
      "tree": "4391aee82c9128353237465ef6ca9d1e0071d0f8",
      "parents": [
        "477243b058bbc303bea6ba3aab445fd82a9f9155"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 11 20:30:48 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 12 19:49:29 2016 -0800"
      },
      "message": "Revert \"Revert \"VectorDrawable native rendering - Step 5 of MANY\"\"\n\nThis reverts commit e03ef25a3e44ef5d495e366c30b9b5b69fc58194.\n\nChange-Id: I9c2e1c891667451a3ee668e414bf337ad67279ab\n"
    },
    {
      "commit": "6f1033104d178f8c03857770edf5568947f1af70",
      "tree": "735674926d1458374da5925340787488f309a100",
      "parents": [
        "6dfd022bb823628116ee1b635b7f08f1d63127f9",
        "f7ae8d727bb88e73fbe8087f7385e7cb31b7292d"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Feb 12 23:47:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 23:47:27 2016 +0000"
      },
      "message": "Merge \"Fix the CSL theme support inside VectorDrawable\u0027s fill and stroke\" into nyc-dev"
    },
    {
      "commit": "fb95699364e555148b437cfa1e5c69384f843845",
      "tree": "b7f1d5a4dc3b3f3dc7fc82ab37e250c1075b9afd",
      "parents": [
        "e2caaa9c8d9838f814218a48a203f95a517c9bbe"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Thu Jan 28 16:05:33 2016 -0500"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Feb 12 19:33:26 2016 +0000"
      },
      "message": "Deduplicate font file mappings.\n\nWith ttc and gx variation fonts, it is now possible and common that a\nnumber of fonts will use the same font file for data but with different\nparameters. In the current code each font will map the font file data,\ntaking up an unecessary amount of virtual address space and is\ninefficient with respect to memory management (like the tlb). This CL\ndeduplicates these file mappings so that a given font file will only be\nmapped into memory once.\n\nDO NOT MERGE\nChange-Id: I5ca69f963a434c72ec4028402ecbf9e0f0ee7148\n(cherry picked from commit fffcf0a31fd4c9a4ec8aa7de70b1eda0d48fb337)\n"
    },
    {
      "commit": "f7ae8d727bb88e73fbe8087f7385e7cb31b7292d",
      "tree": "8422a830bf59ad9f2d8e28c833992ea48873ea66",
      "parents": [
        "4531e2df1d99300253322ec171088f055b219d64"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Feb 11 14:48:19 2016 -0800"
      },
      "committer": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Feb 12 17:51:20 2016 +0000"
      },
      "message": "Fix the CSL theme support inside VectorDrawable\u0027s fill and stroke\n\nb/26774249\n\nChange-Id: I9a9fcdb0e88c4b46ab86c6b3fd780d40b96024db\n(cherry picked from commit 15cc49ae521699b70e3b011768b2ae58a7a9b2fd)\n"
    },
    {
      "commit": "a87b07d7fafd59ae26073a80cd742b17ea427ecd",
      "tree": "22214c42f3245b6113f79315c5eb45ad98e72ae6",
      "parents": [
        "67a28e8c3809f7d68999f586edd7d7ff4bd27c9b"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Nov 06 11:57:09 2015 -0500"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Feb 12 16:28:35 2016 +0000"
      },
      "message": "Add support for gx font variation axes.\n\nThis adds an \u0027axis\u0027 child element to the \u0027font\u0027 element. The \u0027axis\u0027\nelement has attributes \u0027tag\u0027 (a four byte identifier) and \u0027stylevalue\u0027\n(a float value) to the parser. This also modifies reading the font file\nname in a backwards compatible fashion by using only the direct #text\nchildren of the \u0027font\u0027 element. (Both the Minikin and Skia parsers now\nallow the font file name on a separate line in the fonts.xml file).\n\nThis information is then passed through to Skia in order to select the\ndesired variation. The Skia parser already parses this way and has for\nsome time, so Chrome and WebView can already read this format.\n\nChange-Id: I15623fe864fa92b2bf0705af5e389daedfb77e5c\n(cherry picked from commit b8e367fb7428076ff2e4aa2a97adaed1ef806e92)\n"
    },
    {
      "commit": "e03ef25a3e44ef5d495e366c30b9b5b69fc58194",
      "tree": "4db5a1124bf667a84b48d98289233b8cca0098ed",
      "parents": [
        "18bdf443e371e9f293439b4ff92cc79abaa422e5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 11 17:02:33 2016 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 11 17:02:33 2016 +0000"
      },
      "message": "Revert \"VectorDrawable native rendering - Step 5 of MANY\"\n\nBug: 27136799\n\nThis reverts commit 18bdf443e371e9f293439b4ff92cc79abaa422e5.\n\nChange-Id: I825b061eec2a591f2d18119ba64494624b9ad4f2\n"
    },
    {
      "commit": "18bdf443e371e9f293439b4ff92cc79abaa422e5",
      "tree": "8e73638e5dbfe34df3a7184e04437c1c7283ed81",
      "parents": [
        "7f036f8bce5c2f70b2cbc5e252220909bba69b5d"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 02 14:14:04 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 11 01:08:47 2016 +0000"
      },
      "message": "VectorDrawable native rendering - Step 5 of MANY\n\nImplemented reset() (public API for AVD)\nand reverse() (internal API that needs to be supported)\n\nChange-Id: Ife1650049f271cad1347943151a5800c40c20aa2\n"
    },
    {
      "commit": "e4f976dc3b7dd2548deb409b6fd421c6c47f6b42",
      "tree": "808be97287091fd76e0217f6ba9cfc6ea475e91e",
      "parents": [
        "8585ed66b947ef30d6a43f0bb91885ed0c5ebfb4"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Wed Feb 10 07:31:18 2016 -0800"
      },
      "committer": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Wed Feb 10 07:31:18 2016 -0800"
      },
      "message": "Set the hover state to the same as focus state in RippleDrawable.\n\nBug 24810682\n\nThere was no hover state for bounded ripples and it was decided\nthat a solid background color exactly like the focus state\nwas desired. This change triggers the RippleDrawable to act as\nif it is focused when it is hovered.\n\nChange-Id: I94b2a4d03dd4c47fc021c84bb0ba4b4be82f3e95\n"
    },
    {
      "commit": "7cd1f0d39ada62669fb9bcd0a71fab059386fcd3",
      "tree": "da8764aa86c4040652ba52ca303fd7d82cfedf48",
      "parents": [
        "2a061b5bcfb92be2829f6fe9a6d86352193752e3"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Feb 09 21:36:41 2016 -0800"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Feb 09 22:07:32 2016 -0800"
      },
      "message": "Do not invalidate drawable if tint doesn\u0027t change\n\nChange-Id: I99d7a679ba3aa4978f2915f1a52f23dbce7fd971\n"
    },
    {
      "commit": "469a828ac78366e0c8e15331ea950e40af48e59e",
      "tree": "f10ef20b2803465e300206e7062fa0952690cadb",
      "parents": [
        "43a5591c8da267e85db9df6c93db73ca29a1bcba",
        "ef062ebd20032efe697741d6c3dfd1faec54f590"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 05 21:31:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 21:31:24 2016 +0000"
      },
      "message": "Merge \"Ref count the nodes in VectorDrawable\""
    },
    {
      "commit": "43a5591c8da267e85db9df6c93db73ca29a1bcba",
      "tree": "e0bda443b122692ab29ef8a9b76bc30108b391b2",
      "parents": [
        "bb66a0edfe99a545a016376e5bdd1e76a9a141f1",
        "766431aa57c16ece8842287a92b2e7208e3b8ac3"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 05 21:31:05 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 21:31:06 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"VectorDrawable native rendering - Step 4 of MANY\"\"\""
    },
    {
      "commit": "ef062ebd20032efe697741d6c3dfd1faec54f590",
      "tree": "a5b550adfd046ef3e0a155de55004e9c8d663200",
      "parents": [
        "766431aa57c16ece8842287a92b2e7208e3b8ac3"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 16:16:27 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 05 11:12:25 2016 -0800"
      },
      "message": "Ref count the nodes in VectorDrawable\n\nAlso added API check so that for pre-N we ignore invalid VD animation,\nin order to avoid breaking old apps.\n\nBug: 26975469\nBug: 26949340\nChange-Id: I498539ad6a05de3d886e7dcdc8a167e78333ab11\n"
    },
    {
      "commit": "c9088c5d1b1fdba84c151355d95715e86d72b688",
      "tree": "2471332be1c8d1107459f37e8a246fee92db4610",
      "parents": [
        "823441a74b7983384399bd86a75f1f2ea615d34f",
        "fee44846376c212114223fc4259382921e6dca7a"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Feb 05 01:38:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 01:38:57 2016 +0000"
      },
      "message": "Merge \"Various LocaleList cleanups\""
    },
    {
      "commit": "766431aa57c16ece8842287a92b2e7208e3b8ac3",
      "tree": "9897854d78c4d3615df67e97fd4f65a865729e32",
      "parents": [
        "2343f8dfcd1b1d0a503463740b85616a966cc299"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 22:17:11 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 16:29:51 2016 -0800"
      },
      "message": "Revert \"Revert \"VectorDrawable native rendering - Step 4 of MANY\"\"\n\nThis reverts commit 5a11e8d0ba21624025b89ac63bbd18befa55be0e.\n\nChange-Id: I7a48b59c4f930dad65ddc8590c25a12636244ea2\n"
    },
    {
      "commit": "fee44846376c212114223fc4259382921e6dca7a",
      "tree": "71e072708d89e047eea7cca2c920ee45a9a6cb5d",
      "parents": [
        "b013cfec0b902d4a2836a1a95f76a3e29d1c6630"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Feb 04 15:24:24 2016 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Feb 04 15:44:03 2016 -0800"
      },
      "message": "Various LocaleList cleanups\n\n- Remove the LocaleList#getPrimary() API. It had become confusing\n  after locale negotiation was completely implemented. For example,\n  it could create the confusion that calling getPrimary() on the\n  default locale list would provide the default locale, etc.\n- Use the adjusted locale list from LocaleList.getAdjustedDefault()\n  in Paints created with no locale list provided.\n- Change LocaleList#get() to treat out of bound indexes from both\n  negative indexes and too large indexes the same way.\n\nBug: 26984092\nBug: 26193251\nBug: 26834387\nChange-Id: I75f77aea6b75e38793ed8477e5e5a4420d5e6d85\n"
    },
    {
      "commit": "5bef2fcce86e9d822e3736bd66faa7e6b300c5bb",
      "tree": "7be469710f8513393f12cb4497ebe0d47c140a37",
      "parents": [
        "5df0661daf2750061afd9eaf613ce227f491803e",
        "8f2a44f934afd5492248935f564d0b3f2f676d93"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Feb 04 22:49:52 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 22:49:52 2016 +0000"
      },
      "message": "Merge changes If489d2ba,I1fe12181,Ieb4f586a,Ib51163a0,Ifdfcf3ad, ...\n\n* changes:\n  Hide swipe-up gesture behind tuner flag\n  When long pressing recents and already docked, undock\n  More multi-window fixes\n  Use separate flag to suppress resizes\n  Only treat \"null\" bounds as fullscreen\n  Exclude stable insets from task config\n  Fix bug where surface was not clipped off during resizing\n  Fix crash in SysUI when configuration changes\n"
    },
    {
      "commit": "0a932141980b576e0b9bcec9a077f55b7b269a02",
      "tree": "6b358db8f4df0c15014cdf6beb3ce19a63144b08",
      "parents": [
        "9511b0f1e9ac629a4a747a0c9373d33ab33cfc32"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Feb 01 17:42:25 2016 -0800"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Feb 04 14:36:57 2016 -0800"
      },
      "message": "Exclude stable insets from task config\n\nWhen a app is in fullscreen, we exclude navigation bar and status bar\nsize when calculating the config. However, when in multi-window, and\nthe task was almost fullscreen, the height/width reported to the app\nwas actually larger than when it was in fullscreen. In order to fix\nthis, exclude the stable insets when calculating the task\nconfiguration, and also fix a bug when calculating the screen layout.\n\nChange-Id: I843ae012fb3050c79643d125550aacb6e73d27da\n"
    },
    {
      "commit": "5a11e8d0ba21624025b89ac63bbd18befa55be0e",
      "tree": "5166f73696e1ea08cde286757403fa944f40efc0",
      "parents": [
        "95085d154b1ea6b4db3ae14d39a1c8c8a6560f78"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:04:10 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:59:00 2016 +0000"
      },
      "message": "Revert \"VectorDrawable native rendering - Step 4 of MANY\"\n\nb/26949340 and b/26975469, b/26975079 as well \n\nThis reverts commit f276acd98457bcaabc9e79a17a736b3b484f005e.\n\nChange-Id: I4b55177daf0d289bc03604c71fd4bf579f65073a\n"
    },
    {
      "commit": "3aaff80f3232aa4d7aba826a5ad9edd95bc45c65",
      "tree": "dd19880ed1a0f3a7340765209fd4b955a79228c0",
      "parents": [
        "d4fda02dd59adff9553dca5647ebb6c023145d5f"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:02:52 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:02:52 2016 +0000"
      },
      "message": "Revert \"Fix NPE for invalid target exception\"\n\nThis reverts commit d4fda02dd59adff9553dca5647ebb6c023145d5f.\n\nChange-Id: I73341dc41c7effaa3209107b4e85503b17e2c826\n"
    },
    {
      "commit": "d4fda02dd59adff9553dca5647ebb6c023145d5f",
      "tree": "2d68103eaa023883d050af025bb28a5d9cf91818",
      "parents": [
        "0eef10e5566b29b681ddb3510398dc7cc298391f"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Feb 03 11:10:49 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Feb 03 11:10:49 2016 -0800"
      },
      "message": "Fix NPE for invalid target exception\n\nChange-Id: I57b319fae617792351c6ec9872c3b73cd25dc4e5\n"
    },
    {
      "commit": "a72d52bbed043b5149c98a1697bf7022e00050b3",
      "tree": "aab4b466896ab98478a2fc93a6fdf00148b7237e",
      "parents": [
        "ab28afd3df9be7ffe51373d939db820dcd59ed2d",
        "f276acd98457bcaabc9e79a17a736b3b484f005e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Feb 03 00:19:22 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 00:19:22 2016 +0000"
      },
      "message": "Merge \"VectorDrawable native rendering - Step 4 of MANY\""
    },
    {
      "commit": "f276acd98457bcaabc9e79a17a736b3b484f005e",
      "tree": "b9efee10194c520b09a4813f7b8074be9a2f99c8",
      "parents": [
        "650e3b70e4aa2fa9acf2f9c6ce211c4b46862c15"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Jan 07 13:49:26 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 02 15:04:01 2016 -0800"
      },
      "message": "VectorDrawable native rendering - Step 4 of MANY\n\nThis CL runs VectorDrawable animation on RenderThread. The changes in this CL\ninclude:\n- Convert all the animators in AnimatorSet for AVD into a set of RenderNodeAnimators.\n- Hook up the new animators with RenderThread\n- Add drawOp in RecordingCanvas for drawing VD so that during the animation\n  on RenderThread, all the property changes on VD can be reflected on the screen.\n\nTODO:\n- Implement reverse and reset for AVD.\n\nChange-Id: I2df1d754f2db0ad098d9c15dde4bb2bdfafc2315\n"
    },
    {
      "commit": "c6c89a82144f59475242c75d67529fed943ae30b",
      "tree": "240a5174d1373129e57ec79fb6c4049c41a8b2e1",
      "parents": [
        "e909802b4136b2377612d5ecdf92fb3a00504b95"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Jan 28 17:48:21 2016 -0800"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Feb 01 12:19:53 2016 -0800"
      },
      "message": "Fix transition to recents in docked mode\n\nTransition for non-compatible apps will be handled in a separate CL.\n\nChange-Id: I9c474f7aa394e4f3eacd1845c78bee5874bd8a59\n"
    },
    {
      "commit": "dbee9bb342cdfaa5155b1918f90262c05e2464cb",
      "tree": "e68cae3989cba8f981c6c9ae66eb068f7422ac29",
      "parents": [
        "c0b2f09a92c7ba2437e390a0d075790d8ece3f3d"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Dec 15 11:01:27 2015 -0800"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed Jan 27 16:32:42 2016 -0800"
      },
      "message": "Gradient for VectorDrawable\u0027s fill and stroke\n\nAdd ComplexColor interface for both GradientColor and ColorStateList.\nSet up constant state, factory, theme attrs for GradientColor, while\nrefactoring the ColorStateList\u0027s similar code. (Functionality in CSL should\nbe the same).\n\nSupport themeing in both the root and item level in GradientColor.\nFor example, both startColor in \u003cgradient\u003e tag or color in \u003citem\u003e tag can\nhave theme color.\nAdd tests for both simple and complex cases with themeing etc.\n\nHook up the native VectorDrawable implementation using 2 extra JNI calls for\nsimplicity. Such calls only happen at inflate and applyTheme call.\n\nb/22564318\n\nChange-Id: Ibdc564ddb4a7ee0133c6141c4784782f0c93ce0e\n"
    },
    {
      "commit": "f0a7b3b694ee05027a0b667b923bdbf9b664f9d3",
      "tree": "b2dfccdc542cf2561f390752c3126704e78567c2",
      "parents": [
        "8020313d05f22dc1f8a7a182e6da134db17761ec"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Jan 26 14:21:53 2016 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Jan 26 14:21:53 2016 -0800"
      },
      "message": "Fix problem with zero-duration AnimatedVectorDrawables\n\nThere was an issue with some vector drawables, particularly those with more\nthan one underlying, sequential animators, where the final frame would not be\ndrawn when battery saver mode was enabled (or animators were set to have durations\nof 0). This resulted in an incorrect fingerprint graphic on the lockscreen, because\nthe animation effectively didn\u0027t run at all.\n\nThe fix is to always invalidate whenever the AnimatedVectorDrawble draws itself. This\ncauses us to constantly invalidate() the view while the animation is running.\n\nIssue #26591987 Fingerprint icon displayed as dots when batter saver mode is on\n\nChange-Id: I13cbd71fd229db09418c6dcacfec5a13bbb44b2e\n"
    },
    {
      "commit": "56178b8fcbeed358ce2361708c0e91d6707ec016",
      "tree": "d62df8e57ccd3bc552b8cddde0701fc95736b8a8",
      "parents": [
        "e9a24d0a85e628d197cb5d75915ccb3b27bab8c4",
        "775873a66a946fae2b0535abb51df9817bd1b20c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 15 18:23:29 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 15 18:23:29 2016 +0000"
      },
      "message": "Merge \"Use NativeAllocationRegistry for Paint, Canvas, and Bitmap\""
    },
    {
      "commit": "dfb8cb4580aef56a1f1e286389cdddf24c96792b",
      "tree": "a0c7d7278941b6a79e617cee1c7eac5ded963d77",
      "parents": [
        "5d125f2b7c774916efa91c345ceacf710e8f98f4"
      ],
      "author": {
        "name": "Winson",
        "email": "winsonc@google.com",
        "time": "Thu Jan 14 12:53:28 2016 -0800"
      },
      "committer": {
        "name": "Winson",
        "email": "winsonc@google.com",
        "time": "Thu Jan 14 15:43:38 2016 -0800"
      },
      "message": "Resetting the native shader instance when the shader changes.\n\nChange-Id: Ib4f8f02d2b777049072e33eabf07d00945c08779\n"
    },
    {
      "commit": "253331c051d4d60ff452a8dc5b33641e8634280e",
      "tree": "d2549a0a0dedcbea99d5ba09860ce671388d0ef5",
      "parents": [
        "b79151759ac59bcb6f8f76188d9af7b3155ae2ff"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 14 13:18:39 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 14 13:18:39 2016 -0500"
      },
      "message": "Clarify interaction between setPivot() and setPivotRelative()\n\nChange-Id: I108df5170f702b4938b4fe7fa35ed42d4a8a2d5d\n"
    },
    {
      "commit": "775873a66a946fae2b0535abb51df9817bd1b20c",
      "tree": "3332481895daef49a3ec85891fd6f087dd9280e4",
      "parents": [
        "58647664d74384261f34095f33f5e24a1508b72e"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 29 12:37:39 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 13 16:14:33 2016 -0800"
      },
      "message": "Use NativeAllocationRegistry for Paint, Canvas, and Bitmap\n\nBug: 23130675\nChange-Id: I3fbd84ba417ac63df75f87ee2c56e3e7f3c9eb46\n"
    },
    {
      "commit": "0ef12aefe548e0d9472e2c23ab3374197a28b6bc",
      "tree": "4f8e6ee397a021fcf8928485c09aa3889e0635d5",
      "parents": [
        "c754dffe1980cb6c3be96fb258b046dfcdf82353"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jan 12 09:47:09 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jan 12 09:47:09 2016 -0500"
      },
      "message": "Clean up LayerDrawable, refactoring only\n\nUses consistent naming and ordering for padding and inset calculations.\nUpdates documentation to include UNDEFINED_INSET as public API, since we\nreturn the value and will accept the value as a valid param. Flattens\nout RTL logic for readability.\n\nChange-Id: Ie704e2e5fc7f5763500ebe1217ddbbf4d0c5ef86\n"
    },
    {
      "commit": "c03c596a537df81bcb0ab4629e56c2ce1be4c0ed",
      "tree": "081cc1e118707a1ba8e64a5147275f5cf70f53a3",
      "parents": [
        "5942cc59abbdd68fdb46139247a20b961f0c633d",
        "51b75386a8f6a90e833002d2d1fed928039841e7"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Fri Jan 08 15:47:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 15:47:32 2016 +0000"
      },
      "message": "Merge \"Deprecate mCancel in BitmapFactory.Options API\""
    },
    {
      "commit": "51b75386a8f6a90e833002d2d1fed928039841e7",
      "tree": "5367cc9d9404670f2240d392e725776c035b79ff",
      "parents": [
        "167a623c45575b33166bc3a02d5f68243e09cf07"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Jan 07 16:37:38 2016 -0500"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Jan 07 17:56:24 2016 -0500"
      },
      "message": "Deprecate mCancel in BitmapFactory.Options API\n\nThis is a follow-up to:\nhttps://googleplex-android-review.git.corp.google.com/#/c/837260/\n\nBUG:26266063\nChange-Id: I4a5a9c7bd1f04f27f096ce74668d1509791e1952\n"
    },
    {
      "commit": "0671f05fa94a234652c1cf3c6e0c2e123566f76f",
      "tree": "545681675943069237f41946695283dc85ec02fa",
      "parents": [
        "55e20d502f3037920de6598e2350ba9c35216589"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 07 16:37:39 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 07 16:37:39 2016 -0500"
      },
      "message": "Revert ripple background fast-enter behavior to M style\n\nNo longer fast-enters the background for unbounded ripples.\n\nBug: 25602850\nChange-Id: I3250505c1de04a72fb764174abf269e247e21578\n"
    },
    {
      "commit": "7ee860c4164bb2b763376ff2c130a9be2766d26c",
      "tree": "4f7f0582722d04e1f0ca02353836083c253ad337",
      "parents": [
        "6d6f0a1c97219a361f7bda2b35ef6e3244a4d507",
        "eda57925cafdf1dab451e70052dea27846f368b4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 06 18:32:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 06 18:32:50 2016 +0000"
      },
      "message": "Merge \"Add missing @deprecated comments to canvas methods\""
    },
    {
      "commit": "8190e5dca4d1ea42e34728122f4fd8c91013c8f9",
      "tree": "fb0a44bf0402c770d8156a30e9da1def71a9fc7d",
      "parents": [
        "a7ca3e73bfb9e95bd3e87c7d194f044bb16dd9e5",
        "841f6e19ba8289c8c0953cbfdbad60590eda3c32"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jan 05 00:54:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 05 00:54:36 2016 +0000"
      },
      "message": "Merge \"Avoid calling invalidateSelf() from draw call\""
    },
    {
      "commit": "841f6e19ba8289c8c0953cbfdbad60590eda3c32",
      "tree": "7d54fa2046825fe88b9e09034320cea64344b7cb",
      "parents": [
        "bd0d937303ae54d8a5bb5f08080c4164302daefc"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jan 04 14:32:00 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jan 05 00:53:07 2016 +0000"
      },
      "message": "Avoid calling invalidateSelf() from draw call\n\nBug: 26329675\n\nChange-Id: Ieb76b6f63a5139f6033ca9baa9ba6fac36ae466c\n"
    },
    {
      "commit": "e3b8f255cf8e74cccaee49235333994f51852125",
      "tree": "7132e29fe5472849583512b847233f3c6076fecb",
      "parents": [
        "46ca282851ef12755a64810658a6043e70d6db5d",
        "5e2496bcee239ce9ebeff6022b7badf81d87492c"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Mon Jan 04 22:55:38 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 04 22:55:38 2016 +0000"
      },
      "message": "Merge \"Make BitmapFactory.Options API Changes\""
    },
    {
      "commit": "5e2496bcee239ce9ebeff6022b7badf81d87492c",
      "tree": "378b283d57c77b92b8d1f941c9935ba9ec99b3f9",
      "parents": [
        "ca9c0d428aebd0506d7cd13e4a6d3c0e99f35233"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Fri Dec 18 13:07:01 2015 -0500"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Mon Jan 04 17:20:17 2016 -0500"
      },
      "message": "Make BitmapFactory.Options API Changes\n\nThis changes the documentation for inPreferQualityOverSpeed,\ninDither, and requestCancelDecode().\n\nThese changes are a result of modifying the backends of\nBitmapFactory and BitmapRegionDecoder to be faster, higher quality,\nand to use standard libraries.\n\nBUG:26266063\nBUG:25556965\nChange-Id: I9008fd276a38c737e242bcc6930ffe4e36d9fd1d\n"
    },
    {
      "commit": "4bbc2931263b232fba61807fca00e127573eff42",
      "tree": "04ea8fe74ecd7c92c28d797f73c87a9cdde0bbf1",
      "parents": [
        "701662547341269d610ac5f093e449a4c7078e43"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Dec 01 17:59:40 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Dec 28 16:08:38 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 3 of MANY\n\n- Refactored VPathRenderer \u0026 VectorDrawableState\n- Moved all the VD rendering into native\n- Set up hooks for VD\u0027s property changes in JNI for animated VD\n\nTODO: JNI calls can be further reduced when we convert the animation\nin AVD to use RenderNodeAnimator, in which case animation will be\ndriven from native and therefore most of the JNI hooks for changing\nVD\u0027s properties during animation will no longer be needed.\n\nChange-Id: I52021f4d7bea057b83ace54085d870dd45acae0f\n"
    },
    {
      "commit": "bb9f686b40743df2642b7d3b7778dbf7284ae665",
      "tree": "739c0a8bb1458793decc646a901adff34804adba",
      "parents": [
        "b819f8983f72b0642a3e1f889a3de31d35484c22"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Dec 01 14:44:24 2015 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Dec 21 09:54:57 2015 -0800"
      },
      "message": "Allow a print service to specify per printer icons, description and\ninfo-activities\n\nThe icon is loaded from the discovery session only when it is displayed\nto avoid having to store too many icons in memory.\n\nAlso the icons are not maintained in the historical printers. Only if\nthe printers are available nice icons are shown. A historical printer is\nupdated with the appropriate properties (including icon) once it becomes\navailable.\n\nBug: 24135005\nChange-Id: Iec389bab514b024634be8fb5fc8928371cba8740\n"
    },
    {
      "commit": "eda57925cafdf1dab451e70052dea27846f368b4",
      "tree": "58f824865e09d72b43166026230fd7d86d0d3919",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:37:44 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:42:51 2015 -0800"
      },
      "message": "Add missing @deprecated comments to canvas methods\n\nbug:25311154\n\nChange-Id: Ie89e2160969eb7b4187f28ab4b0342804cf67724\n"
    },
    {
      "commit": "92c11864c7b4901db90f88ec025d9a773454e7f6",
      "tree": "492292d78b45261bd32c325eb851bdef8fa971a4",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:11:24 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:11:24 2015 -0800"
      },
      "message": "Correct drawLines annotations\n\nChange-Id: I161e419a3ce427e10d802ba692679ad671e23dde\n"
    },
    {
      "commit": "8349b7a063824dcbf3291d308aafd1dfbae3c76c",
      "tree": "82887b37bbdb10291bf12f4c86ad2486dc0d5f07",
      "parents": [
        "9161c75874027724fede7de895acb9d49e4da8c5"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Sat Dec 12 00:10:10 2015 -0500"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Sat Dec 12 05:57:14 2015 +0000"
      },
      "message": "Use \u0027index\u0027 instead of \u0027ttcIndex\u0027 for attribute name.\n\nThere are two reasons for this. First, the name \u0027ttcIndex\u0027 is over\nspecific, there are many indexed font containers in addition to ttc,\nsuch as fon, pfr, bdf, and dfont. There may be others in the future.\nSecond, Skia implemented this attribute with the name \u0027index\u0027 quite\nsome time ago. By naming this attribute \u0027index\u0027 even existing apps will\nbe able to use this attribute (including Chrome).\n\nBUG: 10861108\nChange-Id: I68d2b69fad304d93313f96bf3365af71906dfe69\n"
    },
    {
      "commit": "ac3f10f153319e2494fb57a90360031f148e404c",
      "tree": "ebb81caf85cea226baa0d2ffd1f87bd8143ccd85",
      "parents": [
        "f0fc0c835e5e0af4fdf3bf82f112f6bffe105c9d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 18:23:37 2015 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 18:23:37 2015 -0800"
      },
      "message": "Fix invalid API use of XmlPullParser.getAttributeValue.\n\nThe 1st argument of the getAttributeValue is a namespace of the xml.\n\nBug: 10861108\nChange-Id: I73fd15eca7101b745870ca7b6509b1dbfcc9b0d7\n"
    },
    {
      "commit": "3fa667e22401bf3ba96957fe31167bf05d164c55",
      "tree": "6f6c8e229cee9c42dea938c38c7c7a5c017ba76e",
      "parents": [
        "794a18f5a215787570329018c50e2fa08133f893"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 14:30:37 2015 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 16:50:44 2015 -0800"
      },
      "message": "Introduce ttcIndex attribute into system font configuration.\n\nttcIndex is used for specifying index of the TrueType Collection.\nNo user visible change is expected with this CL.\n\nBUG: 10861108\nChange-Id: I76a1c890164bb55a7ece7b9c7db2ce2bac3f8b89\n"
    },
    {
      "commit": "44581ff4db54bbaa30365ed210e67a0369576100",
      "tree": "87865e92a84aa4a88f3c5d82610970113993762c",
      "parents": [
        "718e16ad5779ec509e7bffa12f7c044e2f165aad"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 07 17:15:24 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Dec 09 11:20:32 2015 -0800"
      },
      "message": "Camera: add RAW_PRIVATE format\n\nAlso add necessary plumbing for RAW_PRIVATE to work for ImageReader.\n\nBug: 25596619\nChange-Id: Ic90f3f44264ac46fae1fafbc27ac64b5319f0970\n"
    },
    {
      "commit": "3899902fe751d841e0dc6c7e5c2700bd85f4fb44",
      "tree": "38fbfbc25127e40b312ecbdf0152dbfeb4ba06fb",
      "parents": [
        "adf2b4d669240e801f2c505c115e8a7ffd6e5dad",
        "cfc607cf57d453f977c9c4bf09b41ac481c4bbec"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Dec 09 03:28:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 09 03:28:21 2015 +0000"
      },
      "message": "Merge \"Introduce cache mechanism for LocaleList.\""
    },
    {
      "commit": "ea4bef7386ca6c6260f292bf006d16a99b93f698",
      "tree": "46cb39ff6e2cb693bb0c8cf9620cd75241f96b36",
      "parents": [
        "d427047d98ad90c60198e90385a0152c16ee3f20"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Dec 02 15:51:10 2015 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Dec 08 16:25:00 2015 -0800"
      },
      "message": "Removed duplicate content from group notification header\n\nPreviously the headers all had duplicate content, which is\nnow optimized to look visually more appealing.\n\nChange-Id: I38ed8db1985fd8a9470888e1b7e1e6b0f2e23b19\n"
    },
    {
      "commit": "d35c13df6e9befe6e63a10f7ef83183e7682affa",
      "tree": "2b7871e1ea84244f522a130fefd9f16592c07efd",
      "parents": [
        "2acf063da08dfff69f184c9a6a90a7a5fe60d818",
        "c078c605ab904b0e4a5d793cbeffd78c340f2816"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 19:49:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 19:49:56 2015 +0000"
      },
      "message": "Merge \"Attach drawable resource ID and name to getDrawable() exceptions\""
    },
    {
      "commit": "c078c605ab904b0e4a5d793cbeffd78c340f2816",
      "tree": "1be842dc5f315e3f04c4e98dbc48bfa71dd8b107",
      "parents": [
        "c72b3101ee368d2a9943e4436ede679acfa38f92"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 14:49:13 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 14:49:13 2015 -0500"
      },
      "message": "Attach drawable resource ID and name to getDrawable() exceptions\n\nWraps the entire getDrawable() method in a try/catch block. Clears the\nstack trace from the re-thrown exception, since we only need the trace\nfrom the original exception.\n\nAlso clears stack traces from re-thrown RuntimeExceptions in applyTheme\nimplementations.\n\nChange-Id: I92396abf9e748eef78777174b297a09e118f5e70\n"
    },
    {
      "commit": "cfc607cf57d453f977c9c4bf09b41ac481c4bbec",
      "tree": "8c77b689bdeef7721a7248955c306dfe1907c90e",
      "parents": [
        "39a275b3980b5ea75e060da540229b95a47333f7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Dec 02 10:53:18 2015 +0900"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Dec 07 16:50:20 2015 -0800"
      },
      "message": "Introduce cache mechanism for LocaleList.\n\nSetting the LocaleList to the native Paint object is not a lightweight\noperation since it needs to propagate a string object to the native code\nwhich then needs to parse it for making minikin language list.\n\nTo avoid performance regressions, cache the minikin language ID in\nandroid.graphics.Paint and send the LocaleList with cached ID\ninstead of a string the next time native code is called.\n\nBUG: 25122318\nChange-Id: Ib5ce8bcff8a1c0a2b1a1c3d1868ea8be5a0e642f\n"
    },
    {
      "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"
    }
  ],
  "next": "57bbbaca0b1485772b4dff724a1f84be013ee042"
}
