)]}'
{
  "log": [
    {
      "commit": "2b6db8d2789444ab9a3b9a897190835d357e56f6",
      "tree": "d9e4b76d2f5178c348065145f3b992f07e96b1bc",
      "parents": [
        "a24322afc6e9130671683c24eb662e44b8e0e645",
        "746a9fee937969af9be7e060335e26e098971615"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 08 21:40:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 21:40:22 2018 +0000"
      },
      "message": "Merge \"ImageDecoder: Add getters. Rename setAsAlphaMask\" into pi-dev"
    },
    {
      "commit": "7d968346bf8e2c2e6814cf7ecb25894ced2b23db",
      "tree": "a631e01e43a45935da7688685495c014c796f9df",
      "parents": [
        "f3fc9a62cd5a84ecaab2830e51ba1f435ab30ae9",
        "abe50314163dcc8faf05cf21d649899146bbdbdc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 08 21:16:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 21:16:47 2018 +0000"
      },
      "message": "Merge \"Stop using finalizer in Typeface and FontFamily\" into pi-dev"
    },
    {
      "commit": "746a9fee937969af9be7e060335e26e098971615",
      "tree": "321a38d59f4a6b0ebcb595c7df7c377cafa374e2",
      "parents": [
        "b6956c92bcd8dedcff9706435412ae6d8a7735cb"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 08 10:32:10 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 08 14:22:56 2018 -0500"
      },
      "message": "ImageDecoder: Add getters. Rename setAsAlphaMask\n\nBug: 73788928\nTest: I1606cbb4e71579160ffaef12c1ed738fad882cd1\n\nThis will allow Kotlin developers to treat the setters as properties.\n\nPart of the motivation for the rename is that \"getAsAlphaMask\" sounds\nlike it returns an alpha mask itself. Rename both to\n_etDecodeAsAlphaMask.\n\nChange-Id: I8f9b04f8381840490b662c3bcd37a95442af8110\n"
    },
    {
      "commit": "b577d00c356d30afa08d895454790070e1d0bf74",
      "tree": "cf0831c3875275d09eb306a0751129a80cc9ee34",
      "parents": [
        "2da6c9aa8b1f031f9b4b74d38eba4145fb2fba3b",
        "32b64217a97db96deeb4872bc2626f64d1c43f1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 23:58:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 23:58:24 2018 +0000"
      },
      "message": "Merge \"Setting the alpha on the full bitmap for AdaptiveIcon instead of individual layers\" into pi-dev"
    },
    {
      "commit": "abe50314163dcc8faf05cf21d649899146bbdbdc",
      "tree": "d3ecb92ae8bd5664922fb7859f759c80795270ee",
      "parents": [
        "1e36211a9633c2f0a87701e0f9bf78291514da03"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 20 14:49:59 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Mar 07 11:46:13 2018 -0800"
      },
      "message": "Stop using finalizer in Typeface and FontFamily\n\nUse NativeAllocationRegistry instead.\n\nVerified this doesn\u0027t cause performance regressions:\n\nStaticLayout creation time:\n MeasuredText Balanced Hyphenation  :    721,055 -\u003e    723,812: (+0.4%)\n MeasuredText Balanced NoHyphenation:    527,880 -\u003e    505,843: (-4.2%)\n MeasuredText Greedy Hyphenation    :    476,982 -\u003e    460,241: (-3.5%)\n MeasuredText Greedy NoHyphenation  :    471,074 -\u003e    459,013: (-2.6%)\n RandomText Balanced Hyphenation    : 18,566,915 -\u003e 18,514,633: (-0.3%)\n RandomText Balanced NoHyphenation  :  7,697,772 -\u003e  7,658,458: (-0.5%)\n RandomText Greedy Hyphenation      :  7,648,606 -\u003e  7,602,026: (-0.6%)\n RandomText Greedy NoHyphenation    :  7,643,946 -\u003e  7,618,898: (-0.3%)\n\nMeasuredText creation time:\n NoStyled Hyphenation               : 18,377,293 -\u003e 18,521,296: (+0.8%)\n NoStyled Hyphenation WidthOnly     : 17,852,099 -\u003e 17,889,073: (+0.2%)\n NoStyled NoHyphenation             :  7,608,972 -\u003e  7,614,311: (+0.1%)\n NoStyled NoHyphenation WidthOnly   :  7,194,461 -\u003e  7,192,043: (-0.0%)\n Styled Hyphenation                 : 15,396,698 -\u003e 15,352,501: (-0.3%)\n Styled Hyphenation WidthOnly       : 14,356,020 -\u003e 14,379,205: (+0.2%)\n Styled NoHyphenation               : 14,926,657 -\u003e 14,971,723: (+0.3%)\n Styled NoHyphenation WidthOnly     : 13,964,537 -\u003e 13,874,324: (-0.6%)\n\nStaticLayout draw time:\n MeasuredText NoStyled              :    644,795 -\u003e    635,241: (-1.5%)\n MeasuredText NoStyled WithoutCache :    637,943 -\u003e    616,369: (-3.4%)\n MeasuredText Styled                :    866,664 -\u003e    860,322: (-0.7%)\n MeasuredText Styled WithoutCache   :    917,795 -\u003e    897,164: (-2.2%)\n RandomText NoStyled                :    538,196 -\u003e    533,253: (-0.9%)\n RandomText NoStyled WithoutCache   :  7,012,076 -\u003e  7,047,498: (+0.5%)\n RandomText Styled                  :  3,011,941 -\u003e  2,999,661: (-0.4%)\n RandomText Styled WithoutCache     :  3,486,225 -\u003e  3,462,493: (-0.7%)\n\nBug: 70185027\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases\n\nChange-Id: I7ebb8a219a8eb07c8ad9fa432e8454e4e06be386\n"
    },
    {
      "commit": "32b64217a97db96deeb4872bc2626f64d1c43f1b",
      "tree": "2b00ab0d911b96d872d9fa72fb2b47e4dd1fa894",
      "parents": [
        "292d895fb2406ac66da0d6cf2c955fd3bf0fd00d"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Wed Mar 07 09:15:12 2018 -0800"
      },
      "committer": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Wed Mar 07 10:11:56 2018 -0800"
      },
      "message": "Setting the alpha on the full bitmap for AdaptiveIcon instead of individual layers\n\nTest: atest FrameworksCoreTests:AdaptiveIconDrawableTest\nBug: 72798522\nChange-Id: I3862942bf6f2c4767c293f09ad14725b5f0fbb2b\n"
    },
    {
      "commit": "5e8447f74dd371bd6e3079c126eff1d5c3df2e4b",
      "tree": "e701389beb0d1d8e11ad41ba4603886ddfc82367",
      "parents": [
        "999e97f405b8f01b12a6fb8e844d33dc807813fa"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 05 14:22:51 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 05 15:06:40 2018 -0500"
      },
      "message": "Draw AnimatedImageDrawable mirrored if desired\n\nBug: 73529437\nTest: I27af7c3b2e08fa50bc19e08930d970931ce4b5e9\n\nIf isAutoMirrored, and the layout direction is RTL, make\nAnimatedImageDrawable draw flipped.\n\nChange-Id: I9a3436ef4cb9df2845a67663a2503c2c1a3dba89\n"
    },
    {
      "commit": "6de55b88f7542cbce90e53b53f4b66a6ceaaad4b",
      "tree": "64983fba34d52d4b70dfbea6b4b6dc7cee73ee78",
      "parents": [
        "c9aa856559ca3b08c9409164b2f86c218c71505f"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 16:11:37 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 02 16:11:37 2018 -0500"
      },
      "message": "AID: Change loop to repeat and set from xml\n\nBug: 73529437\nTest: I60fbee6d3610070413e8c46f363ec3c19c2e7c52\n\nAllow setting AnimatedImageDrawable\u0027s loop count in xml. Use\n\"repeatCount\" to match the existing attr used by other objects, and\nchange the Java api from \"loop\" to \"repeat\".\n\nCache the repeat count in the State object for the situation where we\ninflate but are waiting on a theme, so that when we get a src we can\napply the existing repeat count.\n\nChange-Id: Ie723fe9a40c64dd0e1e8fd7b5d5cf81e5c5ccd0d\n"
    },
    {
      "commit": "c9aa856559ca3b08c9409164b2f86c218c71505f",
      "tree": "a259a18afb69259207a20a52c45a17db3251b1f9",
      "parents": [
        "b60ca84e23ea6ae0e8b05323f9a601963e20eaab"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 26 10:28:03 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 02 16:11:36 2018 -0500"
      },
      "message": "Make OnHeaderDecodedListener NonNull\n\nBug: 73788928\nTest: No change in behavior; no new tests.\n\nThere is already an overload for both decodeDrawable and decodeBitmap\nthat allows not using an OnHeaderDecodedListener, so require calls to\nthe method that includes a parameter for it to contain a non-null\nversion.\n\nThrow an exception if OnHeaderDecodedListener is null. Move\nimplementation to Impl methods to share code without lint warnings.\nRename the non-static decodeBitmap to decodeBitmapInternal, to\ndistinguish it from the others.\n\nChange-Id: I12c0a35786d8d1267044ac09b5c9203cdfb7175a\n"
    },
    {
      "commit": "fd81bcf7cebf389a56bd20eaf2a80fa28619d8fa",
      "tree": "fb6844c22b038a820bc6b8f8b986802b9b1c5291",
      "parents": [
        "458970dab9ad093c1a72a227e3602d354e2dea48",
        "0e9418eff657d6bcedb4aa3be6c0ec869aa87032"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Mar 01 21:21:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 21:21:02 2018 +0000"
      },
      "message": "Merge \"Recommend res/animator/ for animator style res in AVD\""
    },
    {
      "commit": "0e9418eff657d6bcedb4aa3be6c0ec869aa87032",
      "tree": "f201588d39e6be98248b43cff04293762d1aa1c8",
      "parents": [
        "d205cde576894f36f86e6944cde4ebcdbf46120a"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Mar 01 11:11:44 2018 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Mar 01 11:24:47 2018 -0800"
      },
      "message": "Recommend res/animator/ for animator style res in AVD\n\nBUG: 74074384\nTest: Visual inspection\nChange-Id: Ifd268efd85124c7597b5b135a3dbe13d009dc917\n"
    },
    {
      "commit": "3fe18d9c92d25f36fba0b47026fca406391e33a8",
      "tree": "74ca09c10f5311fec57a6e5b8682ec41f8c327fb",
      "parents": [
        "893ef8db21f6db5810629b6babf4e3921e7c9882",
        "4367534058a07fd79ef1bbfec4e27f34275ab5c7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 21:22:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 21:22:30 2018 +0000"
      },
      "message": "Merge \"slice() the ByteBuffer passed to ImageDecoder\""
    },
    {
      "commit": "0e35073ec9d02677f189e96b734d87d9dba650bd",
      "tree": "3ac9d162c72efb8fbc274290f9650a9596535fb0",
      "parents": [
        "67e5ac94cd5fb230c01cfddde100f67f450b15e9",
        "7b0b97a42ae4e72e1b2285524db8cfc0442e8b81"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Feb 28 20:01:09 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 20:01:09 2018 +0000"
      },
      "message": "Merge \"Add APIs to look into whats in an Icon\""
    },
    {
      "commit": "67e5ac94cd5fb230c01cfddde100f67f450b15e9",
      "tree": "c04c8022a0e8b758a428831e71aac3f20bed17d4",
      "parents": [
        "6158952c30497fa10bed5f7955cfb25c394e7593",
        "979b884a040fa211383eec1457530f4f3dc4cc3c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 19:55:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 19:55:15 2018 +0000"
      },
      "message": "Merge \"deprecate EmbossMaskFilter\""
    },
    {
      "commit": "824095856be2745050d5c45d91bd88492f2940f4",
      "tree": "c38cef9cfe52d1ae70ec9619217138404f89bd81",
      "parents": [
        "f10f40b03c33f757b228877f305c5d7302d88c82",
        "5f7e948ad808d3f9c84482594e0da45b4181a6e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 19:05:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 19:05:29 2018 +0000"
      },
      "message": "Merge \"Allow chaining ImageDecoder\u0027s setters\""
    },
    {
      "commit": "f10f40b03c33f757b228877f305c5d7302d88c82",
      "tree": "478eb611423f29439eee0acb7d2b19e8ee8a5f26",
      "parents": [
        "afab611ad03a6a9f6d9c61bd9269525f12c1b4d4",
        "a38b2135a4bf4368734567a73d2e56f1c318fee9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 18:47:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 18:47:03 2018 +0000"
      },
      "message": "Merge \"setPreferRamOverQuality -\u003e setConserveMemory\""
    },
    {
      "commit": "bf6edacac900e4f889dde292474e0e3fecb8d689",
      "tree": "46d09a422ca469bad68aa0ac3143933fb4a50898",
      "parents": [
        "5197f9cce0dcf5e8a30290fa9353e46e29ab92cc",
        "e245116af39f58288b3003f221fc0f151b0fea05"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 01:21:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 01:21:41 2018 +0000"
      },
      "message": "Merge \"New attribute textFontWeight for selecting weight in the font family\""
    },
    {
      "commit": "7b0b97a42ae4e72e1b2285524db8cfc0442e8b81",
      "tree": "6c22406ae6997200f473b21e2ad8eba8e3948c68",
      "parents": [
        "465f2c7b40ab23338ed047f020b8727404003d86"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Feb 27 13:34:42 2018 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Feb 27 18:02:23 2018 -0500"
      },
      "message": "Add APIs to look into whats in an Icon\n\nTest: cts\nBug: 73943728\nChange-Id: Iefbb4cecad5dd4abfcfc4d2085b0df6b62392305\n"
    },
    {
      "commit": "e245116af39f58288b3003f221fc0f151b0fea05",
      "tree": "8628b5349189016eb0f2ef505f7cb33c404a86d7",
      "parents": [
        "f42a1080d51887fdffcec1da3de3cdd9ab8ab93c"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 22 11:26:39 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 27 11:39:13 2018 -0800"
      },
      "message": "New attribute textFontWeight for selecting weight in the font family\n\nNote that AppCompatTextView doesn\u0027t work well with this attribute since\nit overwrites the selected Typeface.\n\nBug: 63135308\nTest: atest android.widget.cts.TextViewFontWeightTest\nChange-Id: I76ee5e3007ea5f96249d2a0bfb66ff5975c62522\n"
    },
    {
      "commit": "979b884a040fa211383eec1457530f4f3dc4cc3c",
      "tree": "55415e01a4f9b7b44a7b043cd2df04112e8ae023",
      "parents": [
        "ddd4ca1e1b3b2c07d585f6c3aaa503e520c330dd"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Feb 26 14:49:30 2018 -0500"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Feb 26 21:38:54 2018 +0000"
      },
      "message": "deprecate EmbossMaskFilter\n\nTest: make\n\nBug: 14646735\nChange-Id: Ic724954318e1ad6b0a61a29ec5dd1e926f93f8ab\n"
    },
    {
      "commit": "62f0800ef4f41f97ddb18b755a63c01fea67b9fa",
      "tree": "ff481db0298598b2acb3a384e40e9a73d788398b",
      "parents": [
        "f42a1080d51887fdffcec1da3de3cdd9ab8ab93c"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 26 12:32:52 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Feb 26 17:53:31 2018 +0000"
      },
      "message": "Add prefix to ImageDecoder.Allocator\n\nBug: 73788928\nTest: No change in behavior; no new tests\n\nThis will allow the generated JavaDocs to include these in setAllocator.\n\nChange-Id: Icd109ddf45e8809da1a0980924a6f4feccefcac2\n"
    },
    {
      "commit": "4367534058a07fd79ef1bbfec4e27f34275ab5c7",
      "tree": "4f9c9773a7e7d38855e5865315211c61fb4e26b1",
      "parents": [
        "5f7e948ad808d3f9c84482594e0da45b4181a6e5"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 14:01:09 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 26 10:11:17 2018 -0500"
      },
      "message": "slice() the ByteBuffer passed to ImageDecoder\n\nBug: 73788928\nTest: I7d5082ba7319c6c069dde5d0efb22af6e92dd243\n\nThis way the input\u0027s position is unaffected. Update the docs to reflect\nthe new behavior.\n\nChange-Id: I7212948ee289ea8da1be9fe81d3f4bc9296e3e61\n"
    },
    {
      "commit": "08ddee7303b945b65bc97998b2ade9a5943acbba",
      "tree": "483a715b52e0a7e4aa6160eefc88a75b216eed80",
      "parents": [
        "f46aade7d85196b6f3807ae0a7f4703458aa7fa3",
        "1474b78888012a5b89e2a486ff0148cacd94300c"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 20:39:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 20:39:21 2018 +0000"
      },
      "message": "Merge \"Add AnimatedImageDrawable.getLoopCount\""
    },
    {
      "commit": "5f7e948ad808d3f9c84482594e0da45b4181a6e5",
      "tree": "e10b1abfd6a2968b46d4d1d3ee698012174733f3",
      "parents": [
        "a38b2135a4bf4368734567a73d2e56f1c318fee9"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 13:22:29 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 13:45:23 2018 -0500"
      },
      "message": "Allow chaining ImageDecoder\u0027s setters\n\nBug: 73788928\nTest: None\nChange-Id: Ica9ff0738e6929268d83353b9caedd27e3e99ddc\n"
    },
    {
      "commit": "a38b2135a4bf4368734567a73d2e56f1c318fee9",
      "tree": "6f4ff371bfe270be8789e7614ba9b0986f02cee0",
      "parents": [
        "1474b78888012a5b89e2a486ff0148cacd94300c"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 12:27:27 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 12:36:29 2018 -0500"
      },
      "message": "setPreferRamOverQuality -\u003e setConserveMemory\n\nBug: 73788928\nTest: Ic4198306aae7f11a935aeeb970c8e05fbe440e7f\nChange-Id: Ia2d2a559c652647ab4ed86b99833d33224f453b9\n"
    },
    {
      "commit": "e06975dd271a98b85fc63315211f6321b1119aee",
      "tree": "1e7ebc481561467628f20dd57bc2214629923695",
      "parents": [
        "62d3645d812aebfdfac027ed5db2d65f2851cdac",
        "7f66873e0edfb9a4ad6b463c2839508f3453ad57"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 14:45:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 14:45:54 2018 +0000"
      },
      "message": "Merge \"Fixes for inflating AnimatedImageDrawable\""
    },
    {
      "commit": "1474b78888012a5b89e2a486ff0148cacd94300c",
      "tree": "41cc9bb8cc95f79fda968a4ec42c2c52f9db32bf",
      "parents": [
        "7f66873e0edfb9a4ad6b463c2839508f3453ad57"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 09:38:12 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 23 09:43:00 2018 -0500"
      },
      "message": "Add AnimatedImageDrawable.getLoopCount\n\nBug: 73791004\nTest: Id0335f15fdf0ebdc16d1edcabca547b9399c506f\nChange-Id: I1c048196e45b91a1039c1f89e2176592765d2967\n"
    },
    {
      "commit": "7f66873e0edfb9a4ad6b463c2839508f3453ad57",
      "tree": "2e1599d3bf3e037b1e806d096241ca4017b90140",
      "parents": [
        "04fe7e607e8b53c4653b22de4792588421c8a4c6"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Feb 21 16:14:37 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Feb 22 11:23:24 2018 -0500"
      },
      "message": "Fixes for inflating AnimatedImageDrawable\n\nBug: 73529437\nTest: I7907f5dd7eb8d4ab72b8e9ddcbcbfc7aa8cb05ae\n\nSupport AutoMirroring, from inflation and setting manually.\n\nEnsure that AnimatedImageDrawable always has a State object, even if\nit has no mNativePtr. If it has no mNativePtr, throw an Exception when\ntrying to use it.\n\nRequire that inflation have a valid src, unless it is waiting on a theme\n(like BitmapDrawable).\n\nChange-Id: I5b22cdbf4b57862d6ccc5750a677168287860f9f\n"
    },
    {
      "commit": "9bdd2e6151aa7a70bb4a12e91e7f68959b6334cb",
      "tree": "45d1f1c29c520c0b701f883f9b8ebe8f3f0e43b8",
      "parents": [
        "2ebb02123122d6ef3b0cf5c115c2ea4e19319496"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 21 11:02:20 2018 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 21 11:02:20 2018 -0800"
      },
      "message": "Handle window surface insets\n\nBug: 69413152\nTest: PixelCopy CTS tests\nChange-Id: Ie26c38e462fbc6c19669d33efaec5251f40f75bd\n"
    },
    {
      "commit": "e68ba070bbc68b6a336c1f7b02bbfdc02375defc",
      "tree": "87937a3fd2c87302569150bde738b936899a6b6c",
      "parents": [
        "67190cf8eb5337975ae17160f2ef2d1c245f1947",
        "beafa1f9d2845ee9b5ca352087de03ed0afe7db7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 20 21:14:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 21:14:53 2018 +0000"
      },
      "message": "Merge \"Reorganize MeasuredText API (2nd)\""
    },
    {
      "commit": "67190cf8eb5337975ae17160f2ef2d1c245f1947",
      "tree": "cbd2d401442b2873c0651bfac9dfea76f0aec65a",
      "parents": [
        "39fadb122c7f2ef46b198ec951971a6f5718dd1e",
        "fe2ab67894ddfeb379cbd971a4e8af77480c5a7a"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Feb 20 21:08:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 21:08:14 2018 +0000"
      },
      "message": "Merge \"Deprecate Movie.java\""
    },
    {
      "commit": "75c515effa72b2e7af774ee2c513cff7ec1dbd0e",
      "tree": "021ecc5abab118d42fc249fae4b69819f9f651cc",
      "parents": [
        "ff43d08eb0cb899b3bcb3126f59d36e2fd06f20c",
        "8ed124d57ee4a5c0cbc7b7b1b67f1f6496630396"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 20 17:04:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 17:04:14 2018 +0000"
      },
      "message": "Merge \"Implement AnimatedImageDrawable.getColorFilter\""
    },
    {
      "commit": "fe2ab67894ddfeb379cbd971a4e8af77480c5a7a",
      "tree": "d34b7d47160a280f995286bd2266986b54490fbe",
      "parents": [
        "04fe7e607e8b53c4653b22de4792588421c8a4c6"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Feb 20 11:35:49 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Feb 20 11:38:11 2018 -0500"
      },
      "message": "Deprecate Movie.java\n\nBug: 27847286\nTest: none\n\nNow that we have a framework replacement, deprecate this little-used\nclass.\n\nChange-Id: Iedec214c7eb729ccb77d2b4818971393938b2295\n"
    },
    {
      "commit": "beafa1f9d2845ee9b5ca352087de03ed0afe7db7",
      "tree": "fc74171bcb29ea1e720d9b16d195d344e998c310",
      "parents": [
        "c4c7f9bf1c93c7499240dacea7116786397ed76b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 21:39:24 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Feb 16 19:42:00 2018 -0800"
      },
      "message": "Reorganize MeasuredText API (2nd)\n\nThis is 2nd attempt of I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\n- Introduce PrecomputedText.Param which holds all text layout parameters.\n- Add API to get PrecomputedText.Param from TextView.\n- Remove MeasuredText.Builder and add PrecomputedText.create method instead.\n- Remove setRange from MeasuredText since it is not for normal use case.\n  (It can not be used for TextView)\n\nBug: 67504091\nBug: 72861572\nTest: bit FrameworksCoreTests:android.text.\nTest: atest CtsWidgetTestCases:EditTextTest \\\n    CtsWidgetTestCases:TextViewFadingEdgeTest \\\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest \\\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest \\\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest \\\n    CtsTextTestCases\n\nChange-Id: Ie73bce52c6c673cda58973ddad04627a7cf2e5e9\n"
    },
    {
      "commit": "96fccbe20a25def71229a714d6be54ca43644ec3",
      "tree": "35f645b7defefecbe7bb080b504a86ac030a5a3f",
      "parents": [
        "0f888de06b3dcbb73a410578d48539ca970f4f3b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 16 13:18:30 2018 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 16 13:18:30 2018 -0800"
      },
      "message": "Yet more alpha tweaks for Ripples\n\nChange-Id: If714a90d847882e04863723e1849e12a8f987fac\nFixes: 72173993\nTest: API demos controls tests, clicked stuff, mouse \u0026 kbd used.\n"
    },
    {
      "commit": "299b0e4b4eb330723be4fa4df3cfd2dcadb3be44",
      "tree": "e9220edd8f161f58474434fe0a90fc3e037f4076",
      "parents": [
        "1cfc06a1e501f60f2573306f48d6fcff3f85c237",
        "513031d15b78579e39d59b71ab5a1b0afabc5544"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Feb 16 11:25:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 11:25:23 2018 +0000"
      },
      "message": "Merge \"Reland \"Call ImageDecoder directly in ResourcesImpl\"\""
    },
    {
      "commit": "513031d15b78579e39d59b71ab5a1b0afabc5544",
      "tree": "294b795b5476c92c8701875dcfabd7f5508628a3",
      "parents": [
        "5f8b250f1a2dc69eac726d4011d66322f8f192f7"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Feb 15 15:31:45 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Feb 15 21:48:55 2018 +0000"
      },
      "message": "Reland \"Call ImageDecoder directly in ResourcesImpl\"\n\nThis reverts commit 0f05b4895d0e09eb0c59065c30dd04bb884a1983.\n\nBug: 73083791\nTest: CTS (I08618dcd7707e5857ed8f8f01fd78b4129cd5804)\n\nChange-Id: I8a95725c8453d94f406c2c14d2c3555dc1c2901f\n"
    },
    {
      "commit": "2f1b06b58fc3c496832afc9b6ceeb2a36ef4bfa6",
      "tree": "52f83f8f311f4dab750bf2c9dcdf71addd0e7fdf",
      "parents": [
        "ee3a2ba97204f7d23c733504991d930aefd9fe7b"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Feb 15 10:40:33 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Feb 15 14:14:25 2018 -0500"
      },
      "message": "Reland \"Use ImageDecoder for NinePatchDrawable and BitmapDrawable\"\n\nThis reverts commit ac9c8f7c1e4cc608ff78217b7849351d7f77d90c.\n\nBug: 73083791\nBug: 73364985\n\nDon\u0027t scale NinePatchDrawable if bitmap has no density (including fix\nfor 73364985).\nFixed bugs around density and input streams.\n\nUpdate PointerIcon to account for the fact that BitmapDrawable no longer\nscales its Bitmap up at decode time. PointerIcon now handles the\nscaling. This is necessary because PointerIcon never draws its Bitmap.\nInstead, native code uses the Bitmap\u0027s internal SkBitmap without\naccounting for density.\n\nTest: Ran CTS:\n- CtsUiRenderingTestCases\n- CtsGraphicsTestCases\n  - I2d3976061d164ab4d58209db1320917f272a1958\n- CtsViewTestCases\n- ThemeHostTests\n\nChange-Id: I3e0c11195622d65f084ce79dad887504630177ca\n"
    },
    {
      "commit": "f0b0a10de5fda0aa6b3f4e35b96a2cb5705828ca",
      "tree": "2255327bd15262adbb5c7905878a904cda3d897b",
      "parents": [
        "c0451c36f9c91a081566980a11dd899b3066eb7a",
        "4e90fa262d57c1c1ee72166e2ddfce391696ca24"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 15 03:56:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 03:56:04 2018 +0000"
      },
      "message": "Merge \"Revert \"Reorganize MeasuredText API\"\""
    },
    {
      "commit": "4e90fa262d57c1c1ee72166e2ddfce391696ca24",
      "tree": "0b38575786a462224d2cddd07355649c6c939015",
      "parents": [
        "acc788a9525ab1759fb1a81100b6161a22b5b97d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 13 21:40:01 2018 +0000"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Feb 14 17:03:16 2018 +0000"
      },
      "message": "Revert \"Reorganize MeasuredText API\"\n\nThe last change needs more discussion and found some edge cases. Revert and make small step-by-step changes.\n\nBug: 73091756\n\nThis reverts commit 7fd36d19e309ea515b4048cfaabb8035ceab7baf.\n\nChange-Id: I89ff52a70cf6a5d6c553afa20f83719e1f9eb726\n"
    },
    {
      "commit": "72698e6f3971e315edec0919a68bbc225905f5cb",
      "tree": "aa39da74173d6bbd80c06187deecceab502e443c",
      "parents": [
        "42362cfc0873a72a5bd38a11bd97e3960c83079b",
        "ac9c8f7c1e4cc608ff78217b7849351d7f77d90c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 20:13:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 20:13:04 2018 +0000"
      },
      "message": "Merge \"Revert \"Use ImageDecoder for NinePatchDrawable and BitmapDrawable\"\""
    },
    {
      "commit": "7fd36d19e309ea515b4048cfaabb8035ceab7baf",
      "tree": "30db8688e29ada27b365300ed08014a220464517",
      "parents": [
        "d3905e654452c68390835e31fcb752884e57a67b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 21:39:24 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Feb 12 20:50:41 2018 -0800"
      },
      "message": "Reorganize MeasuredText API\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\n- PrecomputedText is no longer a Spanned.\n- Introduce PrecomputedText.Param which holds all text layout parameters.\n- Add API to get PrecomputedText.Param from TextView.\n- Remove MeasuredText.Builder and add PrecomputedText.create method instead.\n- Remove setRange from MeasuredText since it is not for normal use case.\n  (It can not be used for TextView)\n\nHere is a performance scores: (median, walleye-userdebug, N\u003d20)\n\nStaticLayout creation time (w/o patch -\u003e w/ patch)\n PrecomputedText Balanced Hyphenation  :    743,615 -\u003e    737,145: (-0.9%)\n PrecomputedText Balanced NoHyphenation:    551,544 -\u003e    542,715: (-1.6%)\n PrecomputedText Greedy Hyphenation    :    500,343 -\u003e    499,601: (-0.1%)\n PrecomputedText Greedy NoHyphenation  :    497,987 -\u003e    492,587: (-1.1%)\n RandomText Balanced Hyphenation       : 19,100,592 -\u003e 19,135,289: (+0.2%)\n RandomText Balanced NoHyphenation     :  8,015,088 -\u003e  7,954,260: (-0.8%)\n RandomText Greedy Hyphenation         :  7,950,915 -\u003e  7,877,424: (-0.9%)\n RandomText Greedy NoHyphenation       :  7,939,337 -\u003e  7,863,471: (-1.0%)\n\nPrecomputedText creation time (w/o patch -\u003e w/ patch)\n NoStyled Hyphenation                  : 18,935,638 -\u003e 18,925,422: (-0.1%)\n NoStyled Hyphenation WidthOnly        : 18,469,726 -\u003e 18,978,413: (+2.8%)\n NoStyled NoHyphenation                :  7,940,792 -\u003e  7,919,127: (-0.3%)\n NoStyled NoHyphenation WidthOnly      :  7,463,230 -\u003e  7,922,643: (+6.2%)\n Styled Hyphenation                    : 14,822,501 -\u003e 14,809,017: (-0.1%)\n Styled Hyphenation WidthOnly          : 13,891,770 -\u003e 14,656,617: (+5.5%)\n Styled NoHyphenation                  : 14,511,134 -\u003e 14,301,503: (-1.4%)\n Styled NoHyphenation WidthOnly        : 13,495,345 -\u003e 14,264,314: (+5.7%)\n\nStaticLayout draw time (w/o patch -\u003e w/ patch)\n PrecomputedText NoStyled              :    663,974 -\u003e    661,610: (-0.4%)\n PrecomputedText NoStyled WithoutCache :    648,294 -\u003e    648,766: (+0.1%)\n PrecomputedText Styled                :    879,322 -\u003e    852,770: (-3.0%)\n PrecomputedText Styled WithoutCache   :  1,084,570 -\u003e  1,110,147: (+2.4%)\n RandomText NoStyled                   :    565,682 -\u003e    555,435: (-1.8%)\n RandomText NoStyled WithoutCache      :  9,070,533 -\u003e  9,064,825: (-0.1%)\n RandomText Styled                     :  2,955,202 -\u003e  2,962,008: (+0.2%)\n RandomText Styled WithoutCache        : 12,242,325 -\u003e 12,228,573: (-0.1%)\n\nBug: 67504091\nBug: 73091756\nTest: bit FrameworksCoreTests:android.text.\nTest: atest CtsWidgetTestCases:EditTextTest \\\n    CtsWidgetTestCases:TextViewFadingEdgeTest \\\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest \\\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest \\\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest \\\n    CtsTextTestCases\nChange-Id: I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n"
    },
    {
      "commit": "ac9c8f7c1e4cc608ff78217b7849351d7f77d90c",
      "tree": "cbd084fe38c2aa39789ce355ca174bb88557c616",
      "parents": [
        "90f285ba517995f391494279d12a7cdb4bd024c2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 12 11:45:01 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 12 12:36:49 2018 -0500"
      },
      "message": "Revert \"Use ImageDecoder for NinePatchDrawable and BitmapDrawable\"\n\nTest: CTS tests\n\nThis reverts commit 5aec67ca1baaa5ce7af5062cec0437a72969d2f9.\n\nReason for revert: b/73166619\n\nBug: 73166619\nChange-Id: Ic8b2a83abf5567119c8b6af1ec00445a5a6a9cc2\n"
    },
    {
      "commit": "7cc9c01db7fce67e683fe6f1550c81549962fa02",
      "tree": "403ef1e84eefed3f7723ed9bf6b022a9e38205a2",
      "parents": [
        "14810faac07bd5b7fff9acd93ba23e31eff18445",
        "46dd24a710ee93ef9d75ea74e8a196e213f2e1da"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Fri Feb 09 22:47:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 09 22:47:41 2018 +0000"
      },
      "message": "Merge \"Fix imports in text related graphics classes\""
    },
    {
      "commit": "46dd24a710ee93ef9d75ea74e8a196e213f2e1da",
      "tree": "a8e858685b8ddc154ec40c3dfe64cb80095d5089",
      "parents": [
        "bcaeb104c2d678a1d35aed925f6b9570223216b0"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Fri Feb 09 12:10:34 2018 -0800"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Fri Feb 09 12:35:22 2018 -0800"
      },
      "message": "Fix imports in text related graphics classes\n\nTest: atest CanvasTest\nTest: atest TypefaceTest\nTest: atest PaintTest\n\nChange-Id: I0d022e39a68be1b22d3036e928eaec1929789261\n"
    },
    {
      "commit": "25d7f46aa938fff0eb782fb867a99bb7ba0b6e21",
      "tree": "be98028258c503f4078c165fdea22c8acdd88a8c",
      "parents": [
        "bde353c36f908c71842683f2c9e7d0565beb4be9",
        "0f05b4895d0e09eb0c59065c30dd04bb884a1983"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 09 03:47:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 09 03:47:26 2018 +0000"
      },
      "message": "Merge \"Revert \"Call ImageDecoder directly in ResourcesImpl\"\""
    },
    {
      "commit": "88f284a3d311b8ec8196df19d5542baa3d9a0b57",
      "tree": "99cfc764894d680112be7f0c2c373842f0958db3",
      "parents": [
        "ef0f689bbf4669bad49dd863a148e671448dabb1",
        "ceb269362175e90899e8bdcad4319b91ee13abb6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 09 01:30:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 09 01:30:23 2018 +0000"
      },
      "message": "Merge \"Change Resources.getDrawable nullability\""
    },
    {
      "commit": "7717e22c85fd2eaba39f1dc38c65fb7f723882f4",
      "tree": "36a98afb1180490da3e2db3e0e54344ed4a39b86",
      "parents": [
        "fcd3c57e194ba0fafa2de673f2d4fae6a05ef91e"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Mon Feb 05 18:04:11 2018 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Feb 08 23:04:47 2018 +0000"
      },
      "message": "Draw text with a hairline stroke as if it is fill style\n\nDew to a side effect of HWUI opengl pipeline, the hairline stroke\nis not respected, but it is drawn as a fill style. Implement the\nsame behaviour for skiagl pipeline with SDK API 27 and older.\nOn SDK released with Android P, the hairline stroke is respected.\n\nBug: 72494357\nTest: Ran duolingo app\nChange-Id: I48bdcf3ddec4bf65b5e93e01c5002177c4e3da90\n"
    },
    {
      "commit": "0f05b4895d0e09eb0c59065c30dd04bb884a1983",
      "tree": "0f53d6d84013544d7d3ad8aac3b937c5eec05f00",
      "parents": [
        "40c59fdef0087ea0325e447ae0ee113cc8ca7c15"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Feb 08 21:14:32 2018 +0000"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Feb 08 21:14:32 2018 +0000"
      },
      "message": "Revert \"Call ImageDecoder directly in ResourcesImpl\"\n\nThis reverts commit 40c59fdef0087ea0325e447ae0ee113cc8ca7c15.\n\nReason for revert: b/73083791\n\nChange-Id: I044e534be07c5fd18c99dcc65a14b72eaf1fecd5\n"
    },
    {
      "commit": "ceb269362175e90899e8bdcad4319b91ee13abb6",
      "tree": "58fbb363ff7787c769df57bbaa565efb2f49cff6",
      "parents": [
        "bc48bd8f6137955b99f51562ab4959783f827e22"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Feb 01 15:51:34 2018 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Feb 08 13:11:38 2018 -0800"
      },
      "message": "Change Resources.getDrawable nullability\n\nResources.getDrawable() was annotated @Nullable because there was one\nvery particular path where Bitmap decoding would fail and trigger a null\nreturn.\n\nAs part of the switch to ImageDecoder, that path was changed to now throw\nan IOException, which will result as a NotFoundException to the caller of\ngetDrawable.\n\nThis CL annotates that path as @NonNull to reduce pain of dealing with\n@Nullable method that was very unlikely to be null in practice.\n\nAlso fixes many other missing nullability annotations, and relabel\nmany @Nullable paths that would never return null in practice as\n@NonNull.\n\nBug: 69543526\nTest: ResourcesTest\n\nChange-Id: Ib01eca970c5c9969998ce5b265b120aa7048b41a\n"
    },
    {
      "commit": "ed78ab7ec9a44d47d4614d4a382142208a748b24",
      "tree": "7c16199384919571a2890cccd854cf0bb9de1f92",
      "parents": [
        "3303512c62b2ac29d0223fefa44bf3a5935aeffc",
        "92aef5d9fea5f3445ffe9cd110dcd62c0375f02b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 08 19:37:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 08 19:37:35 2018 +0000"
      },
      "message": "Merge \"Clamp ripple starting x/y further\""
    },
    {
      "commit": "8ed124d57ee4a5c0cbc7b7b1b67f1f6496630396",
      "tree": "c078e8d37d148724109c27c6758a24c340ed38a6",
      "parents": [
        "db4c5bc8a1875aeecc644e30ae851f44b15b6653"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 30 17:16:52 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Feb 08 11:37:31 2018 -0500"
      },
      "message": "Implement AnimatedImageDrawable.getColorFilter\n\nTest: CTS: Ie9766f24164d6b035944b1fe82c2d285482ad1d2\n\nChange-Id: I7f2cb0da918ae67c7a5906a478012fa25678294c\n"
    },
    {
      "commit": "92aef5d9fea5f3445ffe9cd110dcd62c0375f02b",
      "tree": "5257ebf507d0d27abddbca454ab872d5365bf310",
      "parents": [
        "400e08ddc70191930734fa77f356b738c86b7196"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 07 14:34:33 2018 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 07 14:36:02 2018 -0800"
      },
      "message": "Clamp ripple starting x/y further\n\nEnsure that the start x/y is clamped to accomidate\nthe animations\u0027 starting radius as well\n\nBug: 72173993\nTest: Clicked on controls in API demos\nChange-Id: I2a56a240a9cd0f77bdc458930d1a844611ea7148\n"
    },
    {
      "commit": "d192911e95e054948790c6e189a7da0d6e1a5b1d",
      "tree": "8d2213c46b05507c869aeea5713b3d6bb3def844",
      "parents": [
        "0ab4ea3ef2a097db5c209acc11a2f6590b6e6eeb"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Feb 06 16:22:01 2018 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Feb 07 19:27:52 2018 +0000"
      },
      "message": "Turn off AA while notification expanding animation is running\n\nTurn off AA from GriadientDrawable, while drawing with SRC\ntransfer mode. This CL speeds up drawing by avoiding intermediate\ntexture buffer in skia.\n\nBug:72804165\nTest: Measured performance with systrace on opening a notifiation.\nChange-Id: Icc69de90d81e8b1c4492f97722f72e7440d9acac\n"
    },
    {
      "commit": "349f1487fe06e87c1e8480b1d6b9f79f8e01e243",
      "tree": "cf3cb78ba497423bda88c0af38e3cd17e489bc26",
      "parents": [
        "b5bca1dc92220e34cabd257f354d4e9725e7148a",
        "5de17526b2cfea0e5ddccd8eff663f48f154c738"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Feb 07 13:02:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 07 13:02:31 2018 +0000"
      },
      "message": "Merge \"Deprecate createFromResourceStream with BitmapFactory.Options\""
    },
    {
      "commit": "bc38a217b963bf2b64128c32c2a721ac23fccc2c",
      "tree": "3e3fd01cf5cc8184160346d609fac89a98d3909f",
      "parents": [
        "44dbca0999d1c20237383ff9a2199a21ccc4d4d4",
        "40c59fdef0087ea0325e447ae0ee113cc8ca7c15"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 06 18:34:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 06 18:34:40 2018 +0000"
      },
      "message": "Merge \"Call ImageDecoder directly in ResourcesImpl\""
    },
    {
      "commit": "40c59fdef0087ea0325e447ae0ee113cc8ca7c15",
      "tree": "a1eb2bd7e4d0f9fa5c01611c1c4e17b946026300",
      "parents": [
        "34b58512cbec4b77803d412e4ce089a95dd1fec2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 20:39:37 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Feb 06 10:21:36 2018 -0500"
      },
      "message": "Call ImageDecoder directly in ResourcesImpl\n\nTest: Existing tests\n\nAdd a new (hidden) ImageDecoder.Source that accepts an AssetInputStream.\nThis allows us to create an AnimatedImageDrawable without fear of the\nclient closing the stream.\n\nCall it from ResourcesImpl instead of Drawable.createFromResourceStream.\n\nChange-Id: I07e00ca60c97538335a6310e830b73211fd8e7bb\n"
    },
    {
      "commit": "dbeee4e4aa74a953b10a5262065cb24d604d647a",
      "tree": "026facacc3eea4cade2965c87b7cc0353029cf81",
      "parents": [
        "27a6db482ed648437862ba733daa20bd30068789"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Feb 05 15:47:13 2018 -0800"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Mon Feb 05 16:42:23 2018 -0800"
      },
      "message": "Update Typeface.createFromFile/Asset\n\nThis CL updates Typeface.createFromFile and Typeface.createFromAsset so\nthat they would use the Typeface.Builder. To keep the behavior similar\nto previous behavior, the existence of the given font file is checked,\nand an exception is thrown if the file does not exist.\n\nTest: atest FrameworksCoreTests:TypefaceTest\nTest: atest android.graphics.cts.TypefaceTest\nTest: atest CtsGraphicsTestCases:PaintTest\n\nBug: 72834540\nChange-Id: Ibe9907440130ca91369b16c6cbac503f4a34e301"
    },
    {
      "commit": "7a4d3d9d02e4482ec48d88e21af1f810b7315ca9",
      "tree": "39c087de705a7d9ae3b44f483fcb013e04b1278a",
      "parents": [
        "4b909212b334e33550be113b9463aebbe1856ddc",
        "120960e4669866817a28379393ce545c04404a04"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 05 18:23:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 18:23:18 2018 +0000"
      },
      "message": "Merge \"Lazily create AnimatedImageDrawable\u0027s runnable\""
    },
    {
      "commit": "120960e4669866817a28379393ce545c04404a04",
      "tree": "76038096a992711487916f17afe8d3ac59716ef8",
      "parents": [
        "34b58512cbec4b77803d412e4ce089a95dd1fec2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 30 17:16:13 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Feb 05 11:48:55 2018 -0500"
      },
      "message": "Lazily create AnimatedImageDrawable\u0027s runnable\n\nTest: manual\n\nThis is only necessary for the software case. No need to create it for\nthe more typical case of drawing in hardware.\n\nChange-Id: I0f041d59445f874160eeea5b13a54fd89fa26df8\n"
    },
    {
      "commit": "fdd755df14e79b99c6c79a28eea1999b27df9718",
      "tree": "d70018beb669ac3c8e96f469ae7a5edb230a8df8",
      "parents": [
        "a43f7fde7951d8b50e60c33a4ca4e5efe602304a",
        "046a99ebbb90f9ecdead7b057ef99764a1d295b9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 02 19:51:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 19:51:41 2018 +0000"
      },
      "message": "Merge \"Use ImageDecoder in ImageView.getDrawableFromUri\""
    },
    {
      "commit": "5aec67ca1baaa5ce7af5062cec0437a72969d2f9",
      "tree": "2499dde6284af23353b8a73854bc8d23cad50742",
      "parents": [
        "34b58512cbec4b77803d412e4ce089a95dd1fec2"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Jan 30 16:56:15 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Feb 02 10:26:57 2018 -0500"
      },
      "message": "Use ImageDecoder for NinePatchDrawable and BitmapDrawable\n\nDon\u0027t scale NinePatchDrawable if bitmap has no density.\nFixed bugs around density and input streams.\n\nUpdate PointerIcon to account for the fact that BitmapDrawable no longer\nscales its Bitmap up at decode time. PointerIcon now handles the\nscaling. This is necessary because PointerIcon never draws its Bitmap.\nInstead, native code uses the Bitmap\u0027s internal SkBitmap without\naccounting for density.\n\nTest: Ran CTS:\n- CtsUiRenderingTestCases\n- CtsGraphicsTestCases\n- CtsViewTestCases\n\nChange-Id: I030b4bb89c66b0102ccea2d85f5271197558d14e\n"
    },
    {
      "commit": "81f6fa18583899359462818391639c3495b06652",
      "tree": "e0878e3e65812d4b732cf312e6412e840a7281f3",
      "parents": [
        "aa2c46cc81b87f443e800617097ad60212fbdaf4",
        "716f38177ee1401373ced8d1f665431bb7a57d14"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 02 00:25:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 00:25:54 2018 +0000"
      },
      "message": "Merge \"Support recording HW Bitmaps in Picture\""
    },
    {
      "commit": "5d446ec5b986566f88c9049231e3d2ec858005f2",
      "tree": "ff48bf86e55694d5776a554ff2572bc6e5e8dcdf",
      "parents": [
        "4d41f291273710cfe0f33ed04c962c964308c5b4",
        "fcd2af9ca8ab027bc85d17711ce5c36c7851e1d9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 22:44:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 22:44:30 2018 +0000"
      },
      "message": "Merge \"Stop supporting broken font fallback\""
    },
    {
      "commit": "716f38177ee1401373ced8d1f665431bb7a57d14",
      "tree": "ef80b0dd31c8cbb2dbb90663da81bc4c42c0636e",
      "parents": [
        "e53c1a1b6bb37e9356121d5d3a6e979c125432ff"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 04 15:09:33 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 01 10:35:42 2018 -0800"
      },
      "message": "Support recording HW Bitmaps in Picture\n\nBug: 34881007\nTest: bit CtsGraphicsTestCases:*\nTest: bit CtsUiRenderingTestCases:.testclasses.HardwareBitmapTests\n\nChange-Id: Ic751c356682ea3db17a1b031ec46106a1a2ab918\n"
    },
    {
      "commit": "5de17526b2cfea0e5ddccd8eff663f48f154c738",
      "tree": "3b13e00d2d3ea2d31a3d55b92c57a6b9c46f95b5",
      "parents": [
        "ce9bcc4977a8f7eca00674dd5292f191e3ca98fa"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 11:10:40 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 19:34:58 2018 -0500"
      },
      "message": "Deprecate createFromResourceStream with BitmapFactory.Options\n\nBug: 63909536\nTest: none\n\nThis version is never used internally with a non-null Options object.\nThe Options object prevents us from taking advantage of the new\nImageDecoder.\n\nChange-Id: I867f482249a0a6f4b37220b597ef38abf0684360\n"
    },
    {
      "commit": "beaf5d919fa7986b96968d2282458aca9dc05b13",
      "tree": "de91acda541e710cee3a287e030e069d8b5965be",
      "parents": [
        "ce9bcc4977a8f7eca00674dd5292f191e3ca98fa"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 26 11:03:54 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 19:26:28 2018 -0500"
      },
      "message": "Fixes for animationEnd in AnimatedImageDrawable\n\nBug: 63908092\nTest: Manual\n\nIf the animation is running on the render thread, post a message (in\nJNI) to call the listener.\n\nUse a weak reference in the native listener so that it does not create\na cycle.\n\nDon\u0027t add a listener if it\u0027s already in the list. Remove the native\nlistener when the Java listeners are all removed.\n\nCall onAnimationEnd when the animation is stopped manually.\n\nChange-Id: I5dc070089fb1cf399ac3316292592f614f2738f0\n"
    },
    {
      "commit": "046a99ebbb90f9ecdead7b057ef99764a1d295b9",
      "tree": "44794bba855b9d00b894db6de6ef035dfc68843c",
      "parents": [
        "ce9bcc4977a8f7eca00674dd5292f191e3ca98fa"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 14:59:29 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 31 15:43:49 2018 -0500"
      },
      "message": "Use ImageDecoder in ImageView.getDrawableFromUri\n\nBug: 63909536\nTest: Existing CTS tests\n\nImageDecoder will bypass the InputStream if possible, allowing it to be\nmore efficient. In addition, it handles density scaling differently;\ninstead of using more RAM to scale the image up, it results in scaling\nat draw time.\n\nChange-Id: Ied7c0865a736f9ef0de367299264e18ccc3e0b92\n"
    },
    {
      "commit": "fcd2af9ca8ab027bc85d17711ce5c36c7851e1d9",
      "tree": "c3dac80edba5e9f6a189dbd9eb350f74c52f0ea6",
      "parents": [
        "fad69a64d9ff401c027d094bd00eaf0014b86971"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jan 30 19:09:28 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Jan 31 15:14:47 2018 +0000"
      },
      "message": "Stop supporting broken font fallback\n\nThe supporting broken font is over engineering and it works the same as\ndefault font fallback in most cases.\nRemoving fallback logic and return default fallback.\n\nTest: bit CtsTextTestCases:*\nTest: bit CtsGraphicsTestCases:*\nTest: ./gradlew appcompat-v7:connectedDebugAndroidTest\nTest: ./gradlew support-compat:connectedDebugAndroidTest\nBug: 65024629\nChange-Id: Ib3fc0d638c6aee904cdf865082f8d5ae7d31ba48\n"
    },
    {
      "commit": "df2491a454976ab8eccc737c25d96fdc0f18e7f7",
      "tree": "ee235ec12886f0d1912aab419f13db0b87ec608c",
      "parents": [
        "7db9d2213978caf51d3a7d5a865bd4a2f9411be7",
        "1996dbb19cd43d0ffa034cafe460fe27342e584e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 31 01:16:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 31 01:16:21 2018 +0000"
      },
      "message": "Merge \"Make AnimatedImageDrawable.start reset\""
    },
    {
      "commit": "8307014768ed59432d9af734817ba0fb73fbc496",
      "tree": "c0b1b19aded70ea83e0be0bdd14268473c0ca972",
      "parents": [
        "cf40a9ab819a3a6a38e69149d20d76c0d691f9ae",
        "5b7f426ff04820f81877ccb696bf6245dede89e7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 18:43:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 18:43:06 2018 +0000"
      },
      "message": "Merge \"Use a separate thread to decode AnimatedImageDrawable\""
    },
    {
      "commit": "1996dbb19cd43d0ffa034cafe460fe27342e584e",
      "tree": "09f79f046cd99b10fc49543bf01345e7cbc45c8c",
      "parents": [
        "5b7f426ff04820f81877ccb696bf6245dede89e7"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Jan 29 19:51:35 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Jan 29 21:08:56 2018 -0500"
      },
      "message": "Make AnimatedImageDrawable.start reset\n\nBug: b/63908092\nTest: Manual: Ie18811ba29a1db163aca08472b04ae185e9344f0\n\nIf the animation has already started and stopped (via stop()), restart\nthe animatino on a call to start().\n\nChange-Id: I0a14a1e643f32469fe5519949ee8ef046107e9a8\n"
    },
    {
      "commit": "5b7f426ff04820f81877ccb696bf6245dede89e7",
      "tree": "8609bad328fc4a720ef2c880680bffe4bb3074f1",
      "parents": [
        "86356ec7a688f703242b7529b920de2207050704"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 26 11:03:54 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Jan 29 21:08:18 2018 -0500"
      },
      "message": "Use a separate thread to decode AnimatedImageDrawable\n\nBug: 63908092\nTest: Manual: Ie18811ba29a1db163aca08472b04ae185e9344f0\n\nDepends on https://skia-review.googlesource.com/#/c/skia/+/101544. That\nchange removes the Skia class\u0027s time checks, and leaving it up to the\nclient to keep track of the time. In this case, the client wants to keep\ntrack of the time because it only wants to update while it is being\ndrawn. If it goes off screen (for example), it will just resume where it\nleft off when it returns on screen. This allows for smooth animations.\n\nIf an AnimatedImageDrawable is being drawn to a SkiaRecordingCanvas,\ndecode on the new (lazily-created) AnimatedImageThread.\n\nWhen running, always decode one frame ahead on the AnimatedImageThread\nso that it will be ready when it is time to display.\n\nDuring prepareTree, update the time and check whether there is a new\nframe ready to draw or the next frame needs to be decoded. In either\ncase, return true. The next frame to be decoded will be triggered by\nonDraw.\n\nChange-Id: If447976e9df417060a950f658dbca9cf7980dd02\n"
    },
    {
      "commit": "fdb54e3a0d4d139d046af51db41c2168fdd59ab2",
      "tree": "005124134e0687b7d357b650f47c8c185fc80f27",
      "parents": [
        "c6b7d7c4c45a146ff167639d4c7143cc08ff2d47",
        "0b49f5725cabd64d27960b1b017e5c009f701cf8"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Jan 29 11:24:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 29 11:24:40 2018 +0000"
      },
      "message": "Merge \"Do not close InputStream from InputStreamSource\""
    },
    {
      "commit": "0b49f5725cabd64d27960b1b017e5c009f701cf8",
      "tree": "1b3249b8f57972e958477efb015cabc57b6f03ae",
      "parents": [
        "d66cfdfc9a13be412a5a832149071ea3154e4a6f"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 23 11:38:23 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Jan 29 01:49:13 2018 +0000"
      },
      "message": "Do not close InputStream from InputStreamSource\n\nTest: I28f82285c0341aff7192eb0157e0de4b97cda577\n\nThis is called by public methods that pass along an InputStream. As\nsuch, it is possible that the client was planning to continue reading\nfrom the InputStream, so do not close it.\n\nChange-Id: Iaa53c44d578c1311315616c8fd931bed40290a92\n"
    },
    {
      "commit": "c4533b708535debe3ea9d95f86a044c44b9dbafc",
      "tree": "3c369f9d057a8da08bd4791ce31148d856b83b41",
      "parents": [
        "150cca8777faea4e57ac956c7d4cf09a612d649a",
        "127d31a6842b6cca49885c3607e7ea35b1885b6f"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Jan 26 11:16:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 26 11:16:04 2018 +0000"
      },
      "message": "Merge \"Expose AnimatedImageDrawable\""
    },
    {
      "commit": "d41477f494ab03e5f8837effd681a77ad9a2c5db",
      "tree": "d34777c73cc5d5d67e1a7d607f545af1e76a571b",
      "parents": [
        "8e725bbad2780e74c7c974f9513efb71c6ecbab4",
        "de4de0e204a028f8f8608d7fd649fe1a60784c4e"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Jan 25 16:05:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 16:05:15 2018 +0000"
      },
      "message": "Merge changes from topic \"notification_launch\"\n\n* changes:\n  Added the reply draft as an extra to the content intent\n  Launching notification settings correctly inline\n  Launching Notification animations inline\n"
    },
    {
      "commit": "6834ec8e54978d076fcf9c414d52f6cb173c24fc",
      "tree": "cb6b8e5d5b136cfc7bdb77405fd8fa46cad58aa0",
      "parents": [
        "c5afaca974c24dff6d49f5b134cece3ad9b7a546",
        "057c91a20dda36776b7f0bfc60bfce4331d83ab5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 05:41:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 05:41:21 2018 +0000"
      },
      "message": "Merge \"Fix start/pause behavior for AnimatedImageDrawable\""
    },
    {
      "commit": "9548a1b04e9ccf08305c131d26024339c8d8be94",
      "tree": "e70874d382fdc073bbc9db23972bd17e4b13813a",
      "parents": [
        "c1a378f2d631d6555d066543c2ee7ca3984de530",
        "9c6acbd2485e0d63c9b91315215d6fd788931591"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 25 03:04:07 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 25 03:04:07 2018 +0000"
      },
      "message": "Merge \"BitmapDrawable: Suppress errorprone warning\" am: 25e50ccccb am: 822e828971\nam: 9c6acbd248\n\nChange-Id: I4846f6b91fadbbd650e925c70215dea4d4459278\n"
    },
    {
      "commit": "9c6acbd2485e0d63c9b91315215d6fd788931591",
      "tree": "c680851f5a5e6db0ab5ee7a3624d4af85fc1c11b",
      "parents": [
        "5fab14313b55cd8c76080241c9f43851d27eb850",
        "822e8289716e5d28f15b2dd7eb8848760a280851"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 25 02:48:37 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 25 02:48:37 2018 +0000"
      },
      "message": "Merge \"BitmapDrawable: Suppress errorprone warning\" am: 25e50ccccb\nam: 822e828971\n\nChange-Id: I0481e40c91e5848fc7ab551a794269d9379cbcc9\n"
    },
    {
      "commit": "127d31a6842b6cca49885c3607e7ea35b1885b6f",
      "tree": "2d39d271ce583b28acc2618abea0fc850a07efc4",
      "parents": [
        "057c91a20dda36776b7f0bfc60bfce4331d83ab5"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 19 12:29:47 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 24 19:20:18 2018 -0500"
      },
      "message": "Expose AnimatedImageDrawable\n\nBug: 63908092\nTest: I85979ae3d8c6a6dae6e4299dc3be291e12024290\n\nImplement Animatable2, adding listeners for starting and ending the\nanimation.\n\nAdd setLoopCount for changing the loop count.\n\nAdd the ability to inflate from XML, by using the name of the class or\n\"animated-image\", which mimics \"nine-patch\", \"bitmap\" etc.\n\nMove internal variables to a State class so that they can be transferred\nto a default constructed AnimatedImageDrawable.\n\nChange-Id: Ice8149e7de55f7ffb4b4ba9dd9c856582fc42bc9\n"
    },
    {
      "commit": "2627d72e61ff68b237d243e2b10ab85eb8dd6edf",
      "tree": "9fde24cbe23d6024792c43a2251a448f400a2bce",
      "parents": [
        "65b79f7edba9dd6c8a34f2f753a08113dafcd553"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Jan 19 12:16:49 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Jan 24 23:29:28 2018 +0000"
      },
      "message": "Launching Notification animations inline\n\nUsing the new control mechanism introduced in order\nto coordinate notification launches and smoothly\ntransform the notification into the launching window.\n\nBug: 69168591\nTest: add notification, launch it\nChange-Id: Ib2d671c65f276ec596a2f07edf64d65bf27a2882\n"
    },
    {
      "commit": "c04c265dd57e0fe2c880e529cc5cfc8164180009",
      "tree": "0571d650ef5c586c07797ebb18affdf15b46df40",
      "parents": [
        "b2b547454bb7bf7258e40929f7fe8721c858be79",
        "9f074eeee677232b9b2140d1b484697766741a4d"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jan 24 23:09:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 23:09:53 2018 +0000"
      },
      "message": "Merge \"Fix bug in ImageDecoder which provided the incorrect density to NinePatchDrawables\""
    },
    {
      "commit": "ab802003b9e38215dc1feb570a174cf1556882de",
      "tree": "50d902c89ff49feb84962ea1cf5207165e66e42d",
      "parents": [
        "3741b3499f2a45a31931e658a39ae65a619945b9",
        "783f961d2fa6f916009844dafeaa08ffaf96a4d3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 22:07:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 22:07:13 2018 +0000"
      },
      "message": "Merge \"Compute full text layout in MeasuredText and use it for drawing\""
    },
    {
      "commit": "6e618d6034f9ab23ea2a2dea1bc468d026f518eb",
      "tree": "5b8923d1e34cc4d5583949e46f236e2b54a24958",
      "parents": [
        "8b4e2ddc414ac9420f95487377eb83ddf22da324",
        "1954cf52fa5d7af120a36cd66eb56280aac0194d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 24 21:51:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 21:51:06 2018 +0000"
      },
      "message": "Merge \"Limit ripple alpha to 50%\""
    },
    {
      "commit": "8272fe83e08e62da398c9d18bd0eefa3c5167f10",
      "tree": "3002a8cf53d0efde3e936c220de97fee69069693",
      "parents": [
        "2a8c24be18dfc3d7cb3f405bee898613b23a212e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 24 13:25:22 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 24 13:25:22 2018 -0800"
      },
      "message": "BitmapDrawable: Suppress errorprone warning\n\nSuppress a warning for constructor-chaining not using all parameters.\n\nBug: 72451126\nTest: m javac-check RUN_ERROR_PRONE\u003dtrue\nChange-Id: Ie47dec119ec578b79d866d9c5041bb7b68eac146\n"
    },
    {
      "commit": "4e2b139b82089e0f1a4ca79f4a06431d9a2ebfbb",
      "tree": "78bf3595e07f5e638c214540f4037bfcbdc46ad2",
      "parents": [
        "21037e95e2ea49e55a2679d3a96c2dd8e02743c9",
        "1a5648a2cd3b50e7c8355a35d3cee2ef994dcb99"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Wed Jan 24 19:45:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 19:45:03 2018 +0000"
      },
      "message": "Merge \"Revert \"Make ellipsize retry if text doesn\u0027t fit\"\""
    },
    {
      "commit": "057c91a20dda36776b7f0bfc60bfce4331d83ab5",
      "tree": "0cef3d342870bbb2aac29eeab881a10e742420d8",
      "parents": [
        "5511634f52fe7b760b1819f06bcd1c4d4acc9cd2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 24 13:02:16 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 24 13:05:17 2018 -0500"
      },
      "message": "Fix start/pause behavior for AnimatedImageDrawable\n\nBug: 63908092\nTest: HwAccelerationTests\n\nDo not start the animation at creation time\n\nWhen starting, first update the time, so it doesn\u0027t think we skipped a\nbunch of frames if we\u0027re resuming.\n\nContinue storing the SkPicture when stopped, so that we can continue to\nshow the same frame, without a jump.\n\nChange-Id: I5ac77f2561fc9f42f8f69ebfbee21fe647cfc75a\n"
    },
    {
      "commit": "9f074eeee677232b9b2140d1b484697766741a4d",
      "tree": "b2942b2417d6666b8f20f3f298a6441dea785940",
      "parents": [
        "d997d191edf668de177496e4e00e69d7d3c6b001"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jan 24 11:57:38 2018 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jan 24 17:35:14 2018 +0000"
      },
      "message": "Fix bug in ImageDecoder which provided the incorrect density to NinePatchDrawables\n\nBug: 72381918\nTest: ThemeHostTests\nChange-Id: I7679d4a8d9c3495fd7b24536f54d23bfef007f26\n"
    },
    {
      "commit": "0c60f4357feebd83b7553640c125d0f8ef9c5eda",
      "tree": "d25aa21679a46e81d664e9afe0f089c4d69f6e59",
      "parents": [
        "08a45549af12d725b8df34f504bcc876b1a3cd28",
        "e7addfc99909b8e304f5e3ec3bda4cd938197fc2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 15:57:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 15:57:44 2018 +0000"
      },
      "message": "Merge \"Revert \"Use ImageDecoder for BitmapDrawable\"\""
    },
    {
      "commit": "e7addfc99909b8e304f5e3ec3bda4cd938197fc2",
      "tree": "9e7af0af73fbcbd2f4d34c545d7f725c4bf168a0",
      "parents": [
        "d66cfdfc9a13be412a5a832149071ea3154e4a6f"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 23 17:17:36 2018 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Jan 24 13:33:06 2018 +0000"
      },
      "message": "Revert \"Use ImageDecoder for BitmapDrawable\"\n\nBug: 72381918\nTest: Covered by existing tests\n\nThis CL seems to have broken the theme tests. In addition, it changes\nthe behavior of a couple of cases of passing InputStreams to the\nframework. Previously, the framework used BitmapFactory, which did not\nclose the InputStreams, but ImageDecoder does.\n\nPlanning to reland along with the fix for closing in ag/3497523 and the\nfix for the theme tests.\n\nThis reverts commit 66c6d78908e0203a497c2e97398c824b2591ea19.\n\nChange-Id: I4ac6d0f2e1e2bb0925ae71c141bfe8a0d37e6a16\n"
    },
    {
      "commit": "2d14213849d6df70d0fa80319ab4ffc08743a683",
      "tree": "7a0a91fc95fda72f4d7fd360db5eb1cd31989bc1",
      "parents": [
        "e1350ba9ea74b5389c4bf154ca24c0f35bca56ad"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Jan 22 10:25:26 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Jan 24 13:11:39 2018 +0000"
      },
      "message": "Initial implmentation of AnimatedImageDrawables on the RenderThread.\n\nThe current implementation schedules the next frame of the images\nto be decoded after the current frame completes but potentially\nschedules tasks that will result in a no-op execution if a new\nframe is not yet needed.\n\nTest: HwAccelerationTest\nChange-Id: I0510cb5a1b801abd651327e924deb586af0306d6\n"
    },
    {
      "commit": "1a5648a2cd3b50e7c8355a35d3cee2ef994dcb99",
      "tree": "9fa2ad9a18c97a8e701ede0e8b5c70ed3b8f2fac",
      "parents": [
        "262cdf0f2724aaeade73a6c9e7b7466e0adf1007"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Jan 23 16:40:06 2018 -0800"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Jan 23 18:25:36 2018 -0800"
      },
      "message": "Revert \"Make ellipsize retry if text doesn\u0027t fit\"\n\nThis reverts commit e88b5df5b7aaf5a5f654805eb5e5e4c2f09afaa8.\n\nTest: bit FrameworksCoreTests:android.text.StaticLayoutTest\nTest: bit FrameworksCoreTests:android.text.DynamicLayoutTest\nTest: bit FrameworksCoreTests:android.text.TextUtilsTest\nTest: bit CtsTextTestCases:*\nTest: atest FilesActivityUiTest\n\nBug: 71599479\nBug: 31537595\nBug: 64156587\n\nChange-Id: I1afa77a4b90b9b822b409a3f4721c45d0c0a6664\n"
    },
    {
      "commit": "783f961d2fa6f916009844dafeaa08ffaf96a4d3",
      "tree": "749a0be8667f01370596ecf9961e5dfce5a4da17",
      "parents": [
        "52d3b672503c988858339181d5b7791179b09184"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sat Jan 20 12:11:13 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jan 23 17:45:55 2018 -0800"
      },
      "message": "Compute full text layout in MeasuredText and use it for drawing\n\nThe full layout is required for drawing text on UI thread.\nTo save this work, store the full layout result in MeasuredText and\ncompose the final layout from stored full layout if possible.\n\nCurrently justification/hyphenation is not supported but works normally\nas before. Nothing changes on existing non measured text.\n\nStaticLayout creation time for no style text (w/o patch -\u003e w/ patch, N\u003d30)\n  MeasuredText Balanced Hyphenation  :    721,297 -\u003e    720,657: (-0.1%)\n  MeasuredText Balanced NoHyphenation:    550,588 -\u003e    546,069: (-0.8%)\n  MeasuredText Greedy Hyphenation    :    503,582 -\u003e    498,009: (-1.1%)\n  MeasuredText Greedy NoHyphenation  :    502,344 -\u003e    498,507: (-0.8%)\n  RandomText Balanced Hyphenation    : 19,351,802 -\u003e 19,176,024: (-0.9%)\n  RandomText Balanced NoHyphenation  :  8,033,830 -\u003e  7,973,336: (-0.8%)\n  RandomText Greedy Hyphenation      :  7,957,335 -\u003e  7,927,316: (-0.4%)\n  RandomText Greedy NoHyphenation    :  7,988,884 -\u003e  7,929,717: (-0.7%)\n\nStaticLayout.draw time for no style text (w/o patch -\u003e w/ patch, N\u003d30)\n  MeasuredText NoStyled              :    644,453 -\u003e    660,684: (+2.5%)\n  MeasuredText NoStyled WithoutCache :  9,251,919 -\u003e    648,992: (-93.0%)\n  MeasuredText Styled                :  3,092,353 -\u003e    870,702: (-71.8%)\n  MeasuredText Styled WithoutCache   : 12,544,014 -\u003e  1,114,557: (-91.1%)\n  RandomText NoStyled                :    582,167 -\u003e    572,092: (-1.7%)\n  RandomText NoStyled WithoutCache   :  9,167,670 -\u003e  9,056,447: (-1.2%)\n  RandomText Styled                  :  3,064,490 -\u003e  3,029,028: (-1.2%)\n  RandomText Styled WithoutCache     : 12,314,863 -\u003e 12,283,026: (-0.3%)\n\nTest: minikin_test\nTest: bit CtsTextTestCases:*\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nTest: bit FrameworksCoreTests:android.text.MeasuredParagraphTest\nBug: 63897135\n\nChange-Id: I7e6ec5c953d7d0f767aba4f61f94e62b6f3a3a2b\n"
    },
    {
      "commit": "e5de9aa4a9bab9c4d8288212d6352a65e9808737",
      "tree": "29241057465fc1743302354e1717c798c40ce3eb",
      "parents": [
        "e7193038c2a743c696a465acb87b73c6080ae691"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 10 20:56:51 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Jan 22 21:41:28 2018 -0500"
      },
      "message": "Unhide ImageDecoder\n\nImageDecoder is a new way to decode Bitmaps (or Drawables) that\nstreamlines common use cases of BitmapFactory.\n\nBug: 63909536\nBug: 63908092\nTest: I0f36ce34c968fd7fae4d8edebabea3a421859615\n      Ib2877276da8464b5f3eef0bbb848de202c90e97e\n      I8d1672180d8325ae1caf44f0bbf41036b94e6253\n      I405ebc86f7b6b019e0f040f1d4afe2e9d4354e5d\n      Iaeb7c27bafb351932f0fabe59461ef50b1e2424a\n\nChange-Id: Iee236ac73e0bc37ef6903a8150c0d2c84e5cf906\n"
    },
    {
      "commit": "cbb60724cf81d2c95cd78e967a61ec4cba2924b2",
      "tree": "0786994a2554c5e8b36aae657d834e39dafb880d",
      "parents": [
        "b56074b37b66d7044e4e0e2c10e9c50a99585792",
        "66c6d78908e0203a497c2e97398c824b2591ea19"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Jan 19 22:10:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 22:10:53 2018 +0000"
      },
      "message": "Merge \"Use ImageDecoder for BitmapDrawable\""
    },
    {
      "commit": "1954cf52fa5d7af120a36cd66eb56280aac0194d",
      "tree": "9a89104baf18858629e34bbb14daaaa71cfe45d1",
      "parents": [
        "2baa9ab4be183ac1e432f08e8b5549d0bfa180c2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 19 13:51:24 2018 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 19 13:51:24 2018 -0800"
      },
      "message": "Limit ripple alpha to 50%\n\nMany themes appear to have forgotten to set\nthe alphas value on the color state list they\npass to RippleDrawable. The previous implementation\nalways divided the alpha by 2 which resulted in\nthe accidentally opaque color being 50% opacity instead.\n\nTo match that behavior without adding back the\nunusual divide by 2 we simply cap the alpha to 128.\n\nSimilarly we surpress the hover \u0026 focus events if\na press is already in progress, which prevents a funky\nbackground flicker on views with FOCUSABLE_AUTO that\ngain focus part way through a click event.\n\nAlso fixes a bug where rapid tapping resulted in the\nhardware animation appearing to not play as it had\na start value of 0 instead of paint.getAlpha()\nSoftware animation already has this correct behavior,\nso no changes needed for the fallback path.\n\nBug: 72173993\nTest: tested hangouts, pin entry\nChange-Id: I7110779234422e82cdd5d737aa00c1280b13760c\n"
    },
    {
      "commit": "66c6d78908e0203a497c2e97398c824b2591ea19",
      "tree": "66458b84cfc27a4d08bd0490beea4f1df8ddaf86",
      "parents": [
        "671cce2605ed50c9aba73ab5bd530cb7741c53cd"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jan 12 16:40:52 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Jan 19 15:10:05 2018 -0500"
      },
      "message": "Use ImageDecoder for BitmapDrawable\n\nIf required due to density mismatches the ImageDecoder will not\nupscale the image at decode time, but instead will decode at the\nbitmaps default size and upscale at draw time.  This can be a\nsignificant memory savings for low-dpi assets being used on a high-dpi\ndevice.\n\nHowever, if the provided asset has a higher dpi level than the bitmaps\ndefault density then we will match BitmapFactories behavior and downscale\nthe bitmap to match the default density.\n\nBug: 63909536\nTest: CtsGraphicsTestCases\nChange-Id: I189306b7a3b706bed32bb267970ade27a57c0e7f\n"
    },
    {
      "commit": "244c6a65e9fe2c309295ec2d0d99e8d6068e614a",
      "tree": "db997aa4a0c2574f3f2f001a010eaa17b236b2b4",
      "parents": [
        "8f2fffd809690bbef2593fbf45bc3d86a9ceedab",
        "545faa4c4c1a74360ed27f81cdc6dce1c7a067e4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 01:03:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 01:03:55 2018 +0000"
      },
      "message": "Merge \"Treat missing font in fallback chain\""
    },
    {
      "commit": "545faa4c4c1a74360ed27f81cdc6dce1c7a067e4",
      "tree": "19e5858a50c606cf794bf3dc30cdd08594999e65",
      "parents": [
        "3fb6ea960f2cfd859c0c8207e5e5a470cb512a28"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 11:06:34 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jan 18 11:06:34 2018 -0800"
      },
      "message": "Treat missing font in fallback chain\n\nBug: 72159040\nTest: bit FrameworksCoreTests:android.graphics.TypefaceSystemFallbackTest\nChange-Id: I481a51811d228b87c9eb07b536a95cb699f1669c\n"
    }
  ],
  "next": "671cce2605ed50c9aba73ab5bd530cb7741c53cd"
}
