)]}'
{
  "log": [
    {
      "commit": "f6bdfbc9795a452f54819b1ed7ec5c334221d089",
      "tree": "b2c58249b87f7ad6efada3a71039a3eb1d534ffc",
      "parents": [
        "08dd510f3d41a4296ecf85f1bd387cd7235d6013",
        "5035238d95dcbe487dd08f11804829de9615bc1b"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Aug 03 21:12:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 21:12:44 2018 +0000"
      },
      "message": "Merge \"Support theme attrs in non-stateful CSL for VD\""
    },
    {
      "commit": "5035238d95dcbe487dd08f11804829de9615bc1b",
      "tree": "10390cd53cef12bef17d37a3b84d5fb4982d6d05",
      "parents": [
        "602542f8e0a5bfda88fe36fb07d84dd1318df0e2"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jul 24 22:55:26 2018 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Aug 03 01:36:49 2018 +0000"
      },
      "message": "Support theme attrs in non-stateful CSL for VD\n\nBUG: 111446567\nTest: ag/4686005\nChange-Id: Ic79b13b62252d6ff294984ae82aec09708c9ba68\n"
    },
    {
      "commit": "ef855275fc20acf86a62b2afb0d6adf219b82195",
      "tree": "b9e5ba4db6bff17d6589e0dbc4356b0a5c948d24",
      "parents": [
        "f0cbf3d2f6ec833430fb2dd979e32c3a06fc02bd",
        "88930f1df469793f3f3d977396762fb217d34583"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Aug 02 23:41:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 23:41:44 2018 +0000"
      },
      "message": "Merge \"Introduce FontFamily and its builder\""
    },
    {
      "commit": "410c9d7396c099d9da0de2372abd8c5ae1330a83",
      "tree": "12db54e3dfaea559dd7dbf9dfb6dc22be3f8e34b",
      "parents": [
        "3ffd79569c4f782044c8d452a20319cf2ea8e394",
        "8530853158cf6b12023c47430fdffda5668d545b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 02 19:28:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 19:28:44 2018 +0000"
      },
      "message": "Merge \"Remove unneccessary #isHardwareAccelerated\""
    },
    {
      "commit": "88930f1df469793f3f3d977396762fb217d34583",
      "tree": "55b6b36370755e1f2a19f1e41dbc1a2e5493425a",
      "parents": [
        "e20cd739c8da023f3e472ee7b6084665c668b523"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jul 24 17:09:23 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Aug 02 11:04:44 2018 -0700"
      },
      "message": "Introduce FontFamily and its builder\n\nThis CL is a ground work of the new Typeface construction API and\nnobody uses this class except for CTS now.\nI\u0027ll add new builder in Typeface to be able to create Typeface\nfrom this FontFamily.\n\nBug: 72665240\nTest: atest FontFamilyTest\nTest: CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\n\nChange-Id: I15d412c367037554d911fc9e20c0cfb44aefb89a\n"
    },
    {
      "commit": "8530853158cf6b12023c47430fdffda5668d545b",
      "tree": "44116ae80c115cfd29faf4601f767732834d3029",
      "parents": [
        "209d21be019e1bc38e61eba48120fcac2657faf6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 01 16:39:22 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 01 16:39:22 2018 -0700"
      },
      "message": "Remove unneccessary #isHardwareAccelerated\n\nTest: CameraTests#testBasicTranslate\nChange-Id: I2b5378edc3c975609bd1b427eac5677f87f601ac\n"
    },
    {
      "commit": "39c212abc6fa5fb176df679599ed962951f26001",
      "tree": "0f9186e4574d88f06b16b60dbe6bcaee8671339c",
      "parents": [
        "38663ab205875109af41f54c8a46915ef1bdc231",
        "902341345b52aea0cda7876525cf0c317900ac45"
      ],
      "author": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Wed Aug 01 11:18:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 01 11:18:13 2018 -0700"
      },
      "message": "Merge \"Docs: fixed typo\" into pi-dev am: 63e36667da\nam: 902341345b\n\nChange-Id: I41d0f700ebf4f6e47af90ca1af6738144f3fc3ff\n"
    },
    {
      "commit": "0d649f291ab9ae6d3666ecb293ea20b41b46c1a8",
      "tree": "d7937844479e8a62e9654e200994af61ad036865",
      "parents": [
        "234a2cc0e99747dbcd5959030a801432cb165db8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Jul 31 14:29:22 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Jul 31 14:29:22 2018 +0100"
      },
      "message": "Add @UnsupportedAppUsage annotations\n\nFor packages:\n  android.graphics\n  android.graphics.drawable\n  android.graphics.drawable.shapes\n  android.graphics.fonts\n  android.graphics.pdf\n\nThis is an automatically generated CL. See go/UnsupportedAppUsage\nfor more details.\n\nExempted-From-Owner-Approval: Mechanical changes to the codebase\nwhich have been approved by Android API council and announced on\nandroid-eng@\n\nBug: 110868826\nTest: m\nChange-Id: I7fc1162d2c63df8751a4660607e8ce72070efed8\n"
    },
    {
      "commit": "a1b12c82a1b466967ef285f53ddc6850243e4d84",
      "tree": "bda1d080b4eddb9858af1c3eb90e85a6748552be",
      "parents": [
        "5d97dd31f0ff192be94f507b8cfb3c339c7f4409",
        "a1c21c0a022f0d47cbda40929e5c2eaf78c48f0c"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Sun Jul 29 03:16:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 29 03:16:22 2018 +0000"
      },
      "message": "Merge \"Introduce Font and its builder class\""
    },
    {
      "commit": "42d27af0daf4c01022e4c6466d81f7fb6ff18191",
      "tree": "2cb15492bf9f35c148324456b148065808cf3cfa",
      "parents": [
        "5ad001eb4f5152cf8d534608ebd2d369e383e8b9"
      ],
      "author": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Fri Jul 27 12:07:27 2018 -0700"
      },
      "committer": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Fri Jul 27 12:07:27 2018 -0700"
      },
      "message": "Docs: fixed typo\n\nTest: make ds-docs\n\nBug: 111817624\nChange-Id: I908e06419ab56220b41be6f821cff3258691b3b9\n"
    },
    {
      "commit": "6f11c6e7e220fe9379015931f5a6ea76feccfe1e",
      "tree": "ca5615e729566b427bb37e9b4e3152ac5395a3f9",
      "parents": [
        "a71bee878e1308724a0f4d32d845bf60883e4ba7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jul 24 11:26:18 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Jul 27 11:08:43 2018 -0700"
      },
      "message": "Extract native methods into isolated classes\n\nStaticLayout/MeasuredParagraph uses native methods which is a pain point\nof porting TextView to JetPack.\nTo make minimize the dependency to the native methods, extract native\nmethods and put them into a thin wrapper class.\n\nThe performance impact is limited:\n\nandroid.text.StaticLayoutPerfTest:\n    PrecomputedText Balanced Hyphenation  :    602 -\u003e    644: ( +42, +7.0%)\n    PrecomputedText Balanced NoHyphenation:    457 -\u003e    476: ( +19, +4.2%)\n    PrecomputedText Greedy Hyphenation    :    397 -\u003e    412: ( +15, +3.8%)\n    PrecomputedText Greedy NoHyphenation  :    397 -\u003e    411: ( +14, +3.5%)\n    RandomText Balanced Hyphenation       : 17,594 -\u003e 17,715: (+121, +0.7%)\n    RandomText Balanced NoHyphenation     :  7,146 -\u003e  7,236: ( +90, +1.3%)\n    RandomText Greedy Hyphenation         :  7,125 -\u003e  7,196: ( +71, +1.0%)\n    RandomText Greedy NoHyphenation       :  7,099 -\u003e  7,187: ( +88, +1.2%)\n  draw\n    PrecomputedText NoStyle               :    614 -\u003e    628: ( +14, +2.3%)\n    PrecomputedText Style                 :    778 -\u003e    826: ( +48, +6.2%)\n    RandomText NoStyle                    :    537 -\u003e    540: (  +3, +0.6%)\n    RandomText Style                      :    786 -\u003e    759: ( -27, -3.4%)\n\nBug: N/A\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\n\nChange-Id: I976df4db63be241af395dd30dd94182f76bdae53\n"
    },
    {
      "commit": "a1c21c0a022f0d47cbda40929e5c2eaf78c48f0c",
      "tree": "8989fec359529a2907b1fb72374a331fb85553e6",
      "parents": [
        "a71bee878e1308724a0f4d32d845bf60883e4ba7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Jul 20 15:57:39 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 26 16:38:44 2018 -0700"
      },
      "message": "Introduce Font and its builder class\n\nThis CL is a ground work of the new Typeface construction API and\nnobody uses this class except for CTS.\nI\u0027ll add FontFamily class to be able to bundle these Font clases\nand register to the Typeface.\n\nBug: 72665240\nTest: atest FontTest\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\n\nChange-Id: I68555a8b4bd6dd770ba7baae72d9a3777b2087a5\n"
    },
    {
      "commit": "fc09c9ee91a0418099a92d5565ff6a4d4abe7ec2",
      "tree": "bec7ecdc6083932a520bad81488985a38723e52a",
      "parents": [
        "edf3e1fa2effc158d3be00a6e75fc06a6925362b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Jul 18 15:53:48 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 19 10:37:33 2018 -0700"
      },
      "message": "Introduce FontFileUtil\n\nFontFileUtil provides style analysis of font file.\nThis CL also introduce a basic test functionality of font families.\n\nTest: atest android.graphics.FontFileUtilTest\nBug: 72665240\nChange-Id: I967d56eb37ee0e4c6d59f59c301a4a6f009fad2d\n"
    },
    {
      "commit": "22c3c8d52edae5e2869ea9ad2d86123fa97312cf",
      "tree": "3631a0cd16c5a37e5345c788e892467781be99a5",
      "parents": [
        "a03a99208e4f1495db256dab4c4dc2c78b77f508"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 05 12:50:58 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Wed Jul 18 19:07:02 2018 +0000"
      },
      "message": "Annotate Region with nullability annotations\n\nAnd a missing override or four.\n\nBug: 78245676\nTest: none\nChange-Id: Ib089a1e4b23ae8bd84b44b4638ee2f505ab760ba\n"
    },
    {
      "commit": "30d287aa8b2bc494bfe0a21845ef20c5f1961333",
      "tree": "471ee08d0ef54229762b6c1703b9e40161e5a6d5",
      "parents": [
        "3e2d62bd86e91f3dc62a8c323b84c4b90bf1d79e"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 05 12:47:13 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Wed Jul 18 12:11:47 2018 -0400"
      },
      "message": "Annotate Point/PointF with nullability annotations\n\nAnd a missing override or four.\n\nBug: 78245676\nTest: none\nChange-Id: I0293eaeb4ec9659b8ee09ac29351f995bb166dbc\n"
    },
    {
      "commit": "07cbe91d2950ae592d6b862f9ddf40af7919ed58",
      "tree": "06a1f7e639f6b2ad4a1064f74edf9dcca83fe170",
      "parents": [
        "4d41f42bfd4883195e0e5c41193ccb40c77615b0",
        "ad824eb7a892ca4b23c5ff4d124a9cbee31699e2"
      ],
      "author": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Wed Jun 13 11:41:18 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 13 11:41:18 2018 -0700"
      },
      "message": "Merge \"docs: repaired link to internal section\" into pi-dev am: bcae0ff7a2\nam: ad824eb7a8\n\nChange-Id: I0c4d86cf6d6cf2465f01e209edf3b47c6c6bb4a2\n"
    },
    {
      "commit": "22dbf294bb0cc3bf4975a6836d3ad74b2f22a0b4",
      "tree": "a9a6016d89291dc34197e3e159755aab428d5555",
      "parents": [
        "bae9b1a71cb271166bf28c52dbd6a2092401f5bc"
      ],
      "author": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Thu Jun 07 10:41:49 2018 -0700"
      },
      "committer": {
        "name": "Laura Davis",
        "email": "laurabd@google.com",
        "time": "Thu Jun 07 13:29:41 2018 -0700"
      },
      "message": "docs: repaired link to internal section\n\nTest: make ds-docs\n\nBug: 79236136\nChange-Id: Idf48cf7a055a0aa3841d6b4d0540724b43c61241\n"
    },
    {
      "commit": "1aa6c61b8b39e7e72c05f776adac9e51267b5a29",
      "tree": "3d3778723636335f7f2e06b5e317dec323a4ce12",
      "parents": [
        "1a0d68003d3f07b961a83ad53a9266020ac20a6d"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 05 13:00:08 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Wed Jun 06 13:58:19 2018 +0000"
      },
      "message": "Annotate Path with nullability annotations\n\nBug: 78245676\nTest: none\nChange-Id: Ibf906c35245cef35505f6286472a01f6a2751f1c\n"
    },
    {
      "commit": "dfda4ea9aa46f845e7349da29370e522f9dedb91",
      "tree": "a3d84dc1602efbbd1db9bd406164dd230bebafea",
      "parents": [
        "c2baedb5309094d116fe2ddd29e7058fdd9934de"
      ],
      "author": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 05 12:44:36 2018 -0400"
      },
      "committer": {
        "name": "Jake Wharton",
        "email": "jakew@google.com",
        "time": "Tue Jun 05 19:03:56 2018 -0400"
      },
      "message": "Annotate Rect/RectF with nullability annotations\n\nAnd a missing override or eight.\n\nBug: 78245676\nTest: none\nChange-Id: I4476646f03f88753db358d01a6ad65a0982a160f\n"
    },
    {
      "commit": "93e87cf197e8bdda2020ebb2ec1ecfa831429b65",
      "tree": "91b53ee7faae3ce1511d27fc119ac12c5661ada3",
      "parents": [
        "ac809dc4a36ffe94818052ebf8ea7e7d96fb4b35",
        "39636318cad95ef8e720f6837aa18fd781f3696c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 01 16:02:30 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 01 16:02:30 2018 -0700"
      },
      "message": "Merge \"Ensure picture isn\u0027t recording in createBitmap\" into pi-dev am: c4f520ddb6\nam: 39636318ca\n\nChange-Id: If964e798cf39c03cb6d2232d103dbd7bf4941d5a\n"
    },
    {
      "commit": "44fc6317f11d75b8126a52a763c415c4fabd6ff4",
      "tree": "498d7e511873407b51597419db9b9c450544626c",
      "parents": [
        "1031bf5f761304987e6a2c5bbb5743a65c3253bf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 01 12:39:50 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 01 12:55:13 2018 -0700"
      },
      "message": "Ensure picture isn\u0027t recording in createBitmap\n\nPicture#draw() will silently due an #endRecording() if it\nwasn\u0027t called. Bitmap.createBitmap doesn\u0027t do this until\nafter it\u0027s too late.\n\nSo do an up-front #endRecording() to ensure state is\ngood to go\n\nBug: 80539264\nTest: HardwareBitmapTests#testReadbackThroughPictureNoEndRecording\nChange-Id: Ic66c41462e88880b73c5093d7541c4ce3d71adeb\n"
    },
    {
      "commit": "f8adae1b33b7cfc38b5bdf770e06cae1a6b30b6c",
      "tree": "0fb495defa9a1d911285f6b278f6209badab8206",
      "parents": [
        "a41a7094ac17ae3e88e3cb0757a30548bcbcc40f"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu May 24 15:25:08 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu May 24 15:31:20 2018 -0400"
      },
      "message": "Cleanup Bitmap#recycle\n\nTest: Build, CTS\n\nmNativePtr can never be 0 (it is final, and the constructor prevents\nsetting it to 0), so do not check for it. nativeRecycle only ever\nreturns true, so make it return void.\n\nChange-Id: Ib94c0304ca7303d6899f085e64be7c051908d173\n"
    },
    {
      "commit": "117f0c2833d08750a6ed5cdb3160e3fb86f76b71",
      "tree": "96becd2b51cacff4e963fe69c9c9298672212226",
      "parents": [
        "15c6708f23ff68f74f484c91749b786496db7930",
        "6353ff5bb55e706b9eda91ec4cc66d25b1b0eaa8"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu May 17 13:16:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 17 13:16:13 2018 -0700"
      },
      "message": "Merge \"AnimatedImageDrawable: Eliminate unnecessary calls to redraw\" into pi-dev am: a2113aa4ad\nam: 6353ff5bb5\n\nChange-Id: I5258721b49834aba58e9bf19162e6a4588f68f0f\n"
    },
    {
      "commit": "4afdd1caa4ff5f0890c3f4d73c6d475f9e06cefd",
      "tree": "5273aecef15d3644e794416ababff8cbaacddd94",
      "parents": [
        "1936031cbe804fc53eb7529b3fd60f3457cb1780"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 14 14:59:30 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed May 16 18:51:07 2018 -0400"
      },
      "message": "AnimatedImageDrawable: Eliminate unnecessary calls to redraw\n\nBug: 78866720\nTest: Manual + systrace; existing CTS\n\nPreviously, we set hasAnimations to true when the AnimatedImageDrawable,\nso that we would get a call to redraw. But if the image does not need to\nshow its next frame yet, the redraw was unnecessary.\n\nInstead, add a new field to TreeInfo::Out, representing the delay time\nuntil the image will need to be redrawn - i.e. when the duration of the\ncurrent frame has passed. Each call to prepareTree will post at most one\nmessage to redraw, in time for the earliest animated image to be\nredrawn. Post the message for one rendered frame ahead of time, so that\nwhen it is time to show the next frame, the image has already gotten the\nmessage to update.\n\nOn a screen with a single animated image, this drops the number of calls\nto dispatchFrameCallbacks to as infrequent as possible. It is called\nonly when we need to draw a new frame of the image. On a screen with\nmultiple animated images, the calls may be redundant, but they will not\nbe more frequent than they would be without this change.\n\nSwitch to nsecs_t and systemTime internally, matching the rest of HWUI.\n\nRemove mDidDraw and related. Its purpose was to prevent advancing the\nanimation while the image is not being drawn. But it isn\u0027t really\nnecessary. If it\u0027s not drawn, onDraw is not called, which is where we\ntrigger decoding. And onDraw already has a defense against getting too\nfar ahead - if its timer indicates that it should skip a frame or show\nit very briefly, it will back up its timer. More importantly, mDidDraw\ncaused a bug, when combined with less frequent redraws. If the display\nlist containing the drawable doesn\u0027t need to be redrawn for other\nreasons, the drawable\u0027s timer never advanced, so its animation stopped.\n\nFix software drawing. Compute the milliseconds in the future to draw the\nnext frame, and add that to SystemClock.uptimeMillis() to compute the\ntime to pass to scheduleSelf.\n\nChange-Id: I13aab49922fa300f73b327be25561d7120c09ec4\n"
    },
    {
      "commit": "5d678b6486c8459e153d57d2a9169340c1671b68",
      "tree": "59aec9bcff3ba3225708c87850726b07f0ac47bb",
      "parents": [
        "49689d7c75b2615607447d63a1290f2bfa0cd31d"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue May 01 17:04:21 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Wed May 09 10:51:36 2018 -0700"
      },
      "message": "Update Drawable API to expose getOpticalBounds method as well as\nthe Insets class\n\nUpdated all Drawable implementations to remove the @hide annotation\n\nFixes: 78942648\nTest: Re-run CtsGraphicsTestCases and updated Drawable CTS tests to\nverify getOpticalBounds implementations\n\nChange-Id: Id9b6bbbe15173e310bbf44184b4678fb29ef1cd8\n"
    },
    {
      "commit": "8ed9796bd558f45eff63d8d8bbd5a96a33d21a2c",
      "tree": "b209d733c28cca5300fe6bc38856d6a2ebf9ea6d",
      "parents": [
        "3089754d45011d4c760b7684ae8ca0fe5c9cad7b",
        "e44e7fd612e59046fd6cc6600e55e7bcf5ac63f4"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue May 01 22:50:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 22:50:38 2018 +0000"
      },
      "message": "Merge \"Updated documentation of StateListDrawable#addState in order to indicate that sharing a Drawable across multiple Views/Drawables can lead to undefined rendering behavior\""
    },
    {
      "commit": "d5a51a82b4dd73d3584f2a651fd8bac589cea364",
      "tree": "6ae40323196d900d5018c55146f8c521830cb583",
      "parents": [
        "c1b66305a627199e69ae78e977e2e256c399aef2",
        "4f614c886404166012b8f001512564c9254fe12d"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue May 01 21:42:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 21:42:30 2018 +0000"
      },
      "message": "Merge \"Removed the @hide annotation on various StateListDrawable APIs to better match the API surface exposed in ColorStateList.\""
    },
    {
      "commit": "e44e7fd612e59046fd6cc6600e55e7bcf5ac63f4",
      "tree": "8e6547c6eec1272004c4dc5dbd71716ba83da10c",
      "parents": [
        "aab0b2f06b625ce3a0ce742c301c53b1174bfa4b"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Mon Apr 30 16:08:55 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue May 01 14:22:53 2018 -0700"
      },
      "message": "Updated documentation of StateListDrawable#addState in order to indicate\nthat sharing a Drawable across multiple Views/Drawables can lead to\nundefined rendering behavior\n\nBug: 70594326\nTest: Re-ran CtsGraphicsTestCases\n\nChange-Id: Ia6923886c809b6d81ead43becd8c725ae79ee999\n"
    },
    {
      "commit": "f4c79874e9da8c8e0d95025a33d241cff1475e96",
      "tree": "7e5bb66c3ab4e838ee963873c94980d935c5daba",
      "parents": [
        "5a594b480d6b3bd311ed701d0e74b76ed94c850e",
        "2a6fb346dccd50eb800aaaedad2a74991c706a00"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 01 17:36:09 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 17:36:09 2018 +0000"
      },
      "message": "Merge \"Stop copying PrecomputedText buffer\""
    },
    {
      "commit": "2a6fb346dccd50eb800aaaedad2a74991c706a00",
      "tree": "55966b1dcdc08cacb621a6410f99b879774cb69c",
      "parents": [
        "9f359cc213713ec21bad23ff0fb424d02efe02a8"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 30 16:32:18 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 30 17:18:50 2018 -0700"
      },
      "message": "Stop copying PrecomputedText buffer\n\nPrecomputedText already has a copy of the text. No need to copy the\nbuffer.\n\nandroid.text.StaticLayoutPerfTest:\n  draw\n    PrecomputedText NoStyle: 610 -\u003e 616: (  +6, +1.0%)\n    PrecomputedText Style  : 811 -\u003e 831: ( +20, +2.5%)\n    RandomText NoStyle     : 547 -\u003e 544: (  -3, -0.5%)\n    RandomText Style       : 730 -\u003e 744: ( +14, +1.9%)\n\nBug: 72461923\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\nChange-Id: I4b9d1c003f127a796d7d4f0d4aecfa7d016b89f6\n"
    },
    {
      "commit": "4f614c886404166012b8f001512564c9254fe12d",
      "tree": "b19476aa3e86f5e1ee35eb259cbb73ac4728e9a4",
      "parents": [
        "8be6c780e3e09f50f31b5b4f9285402be61aefab"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Fri Apr 27 11:20:35 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Fri Apr 27 22:06:14 2018 +0000"
      },
      "message": "Removed the @hide annotation on various StateListDrawable APIs to better\nmatch the API surface exposed in ColorStateList.\n\nRemoved the @hide annotation for the following StateListDrawable APIs:\n--getStateCount\n--getStateSet\n--getStateDrawable\n--getStateDrawableIndex\n\nFixes: 30325322\nTest: Re-ran StateListDrawable CTS tests and added tests to verify each\nof the newly exposed APIs\n\nChange-Id: If93a017b6cf690fc38381a234bf3bd19d0bfc675\n"
    },
    {
      "commit": "c18bcee38f1d4a443fa35eb9e02a5bd751eb54ec",
      "tree": "af79385d32a1b0048a74ad773883d20d03247f43",
      "parents": [
        "d2b4be098d05549dfb3d7f96f179dd42eeb3e271",
        "8f0335fdec4360f4b78481c9843e9c4513504cde"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Apr 25 11:34:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 25 11:34:51 2018 -0700"
      },
      "message": "Merge \"Temporarily allow StackView to use a canvas.clipRectUnion\" into pi-dev am: 7a7b2369fe\nam: 8f0335fdec\n\nChange-Id: Id22c0ad948b9aecfc0844ab0ad9b0d9eb376febb\n"
    },
    {
      "commit": "7a7b2369fe999c8ad9712eadafcbbc31b695daa6",
      "tree": "96df33b8a9697b458abbc516f2a5746f85be836b",
      "parents": [
        "3f9aaad4dc6e801c7af68757d3661b58bcd122a2",
        "2ad19e51463f2f4b5633fa9c155fd9fc75f387a6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 25 17:36:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 25 17:36:47 2018 +0000"
      },
      "message": "Merge \"Temporarily allow StackView to use a canvas.clipRectUnion\" into pi-dev"
    },
    {
      "commit": "88363dfc70170d3560efe9db8117567555e4e830",
      "tree": "0cc32d2cc084f7bce224969efe4b6f2ef205523f",
      "parents": [
        "74e0961f0c4be8459176154ecf13c103c8ac6c68",
        "1bf1d5a24090ce712cd9437ebcd07ea3519a91f3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 24 20:53:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 24 20:53:29 2018 +0000"
      },
      "message": "Merge \"Updated ColorDrawable to implement getColorFilter\""
    },
    {
      "commit": "33bd4a883fc963a3dfd13fe8418c8a7cfc3d59c5",
      "tree": "57c112afa1e867cc00741b9219c132f1f64c3f81",
      "parents": [
        "81c41376fb5baedd11480e7fd24a15ad3b69b576",
        "ac2454c90532a929239a41e110498c2a7c5add61"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Apr 24 13:42:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 24 13:42:36 2018 -0700"
      },
      "message": "Merge \"Fix rounding of padding in NinePatchDrawable\" into pi-dev am: eabeec49c4\nam: ac2454c905\n\nChange-Id: Ia2693ba87ed07a79315282ed5ab7f6c89cb11c6e\n"
    },
    {
      "commit": "eabeec49c4de290071d27c272071b3151ff6e502",
      "tree": "ed0683b098015e5ce61122ee3f213d4b0e6b8cb5",
      "parents": [
        "dc34eb605520a7f4f9401c4569a2573171111e9d",
        "4534745f53e10952b706bd22fb0c2a29bcbb75e0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 24 19:58:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 24 19:58:53 2018 +0000"
      },
      "message": "Merge \"Fix rounding of padding in NinePatchDrawable\" into pi-dev"
    },
    {
      "commit": "1bf1d5a24090ce712cd9437ebcd07ea3519a91f3",
      "tree": "f50d87efd8c9d3d0631576b9fc737e97cf1de6b8",
      "parents": [
        "bccd17118982e8c47be9b95d8f6597181e7d5091"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Mon Apr 23 17:13:06 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue Apr 24 12:34:15 2018 -0700"
      },
      "message": "Updated ColorDrawable to implement getColorFilter\n\nColorDrawable previously did not implement getColorFilter despite having\na proper setColorFilter implementation. Updated ColorDrawable to support\ngetColorFilter returning the corresponding ColorFilter configured on\nit\u0027s paint.\n\nChange-Id: Iabc3cd1b9110f5c3ec25e26a31966e2a43f8fb16\nFixes:78476471\nTest: Re-ran CtsGraphicsTest\n"
    },
    {
      "commit": "e7b5129c1e7ab73b854a2f260a2e77e7d965b4cb",
      "tree": "ab799b753d58e698f9276e6bba2aee4a9e780fe9",
      "parents": [
        "d75cf83aa68fef1b107fd6c0b52d8367f441916c"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Thu Apr 12 17:55:31 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Sun Apr 22 22:12:48 2018 -0700"
      },
      "message": "Updated Bitmap mutablity documentation and removed Bitmap#mIsMutable\nflag\n\nUpdated Bitmap java and native implementation to redirect queries of\nmutability to the native implementation provided by Skia. Updated\ndocumentation of Bitmap.createBitmap method to accurately describe\nmutability of the Bitmap result based on various inputs.\nRemoved flag from Bitmap class in favor of querying jni API directly.\nUpdated Bitmap constructor to no longer utilize mutable parameter\nprovided by jni call. Created hidden setImmutable method that invokes\ncorresponding native method to flip the Bitmap\u0027s mutability flag.\n\nFixes: 65560449\nTest: Re-ran CTS tests and updated Bitmap tests to verify mutability of\nall creation methods\n\nChange-Id: I1b0b9de2fc15369b4e3f83512b866915387ac926\n"
    },
    {
      "commit": "dba97ba1479bccb3535dc38196930beac4352c16",
      "tree": "652509acd344f73c18b73203e791f2db9b59e04f",
      "parents": [
        "3ebda73095ec765b35fe724387266ef40a72bbb2",
        "d4c4d946ae830fbd0f4486f5205be912ef84a1f5"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Sun Apr 22 19:59:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Apr 22 19:59:01 2018 -0700"
      },
      "message": "Merge \"Made the DrawableWrapper return the right ColorFilter\" into pi-dev am: cf893ac40c\nam: d4c4d946ae\n\nChange-Id: I064ead2161ed1c1a0b91141fdf828eb6c9d7ce1d\n"
    },
    {
      "commit": "cf893ac40cf66f85cec575166e862c9ef2250735",
      "tree": "50741d4cd1b104e810c48ee689c659ac0e646539",
      "parents": [
        "e71fb69ec9551029959ae2cc75ca2de2a2be3652",
        "c85057c14c7679c177555914dcf81159614c5769"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Apr 23 02:26:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 02:26:58 2018 +0000"
      },
      "message": "Merge \"Made the DrawableWrapper return the right ColorFilter\" into pi-dev"
    },
    {
      "commit": "4a3d9ff120dcb72acfb5ea67e7f72a8044626246",
      "tree": "eef0c6556e5b422c02c0789eb826dfe4f9fe3c6f",
      "parents": [
        "6ea78de2f2e1be861a7617f217cdb61b1bdc191c",
        "03d4aeda3792364d20f79b1fef9e07786b7615f7"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Apr 20 08:07:53 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 08:07:53 2018 -0700"
      },
      "message": "Merge \"Defer resizing invisible stacks while drag resizing\" into pi-dev am: 5e12ebfffd\nam: 03d4aeda37\n\nChange-Id: Ic4e21bcd38e09cd237fcf149ba308bfdbf77240d\n"
    },
    {
      "commit": "a6d6aab0e0c2cb297cda9ad6a94bbe934ba515f6",
      "tree": "2271fdac43c7c2d160c8904d861bbf4c24f3f633",
      "parents": [
        "e3a34816dc844bb6c5e41fd9ab3cd671f7eb3400"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Apr 19 18:58:22 2018 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Apr 20 15:09:02 2018 +0200"
      },
      "message": "Defer resizing invisible stacks while drag resizing\n\nWorks around a source of jank when drag resizing in split\nscreen mode: instead of immediately resizing the (potentially\nnumerous) invisible secondary stacks, we defer that until\nthe user lets go of the handle.\n\nChange-Id: I3b9faa83005fa86185d4e51b2849e3a826b7f6a9\nFixes: 78214347\nTest: Open a gazillion (resizeable) tasks. Enter split screen. Drag handle, verify there is no jank\nTest: atest RectTest\n"
    },
    {
      "commit": "c85057c14c7679c177555914dcf81159614c5769",
      "tree": "97cfebe572f38d2c714a4a877e9c000cd1408c0c",
      "parents": [
        "f2b624c1406241d62703c9d8c64a3b3565d75729"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Apr 19 10:11:18 2018 +0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Apr 19 10:48:02 2018 +0800"
      },
      "message": "Made the DrawableWrapper return the right ColorFilter\n\nPreviously it simply returned null\n\nTest: atest cts/tests/tests/graphics/src/android/graphics/drawable/cts/DrawableWrapperTest.java\nChange-Id: Ia4694e8dee08449262bbe1cfd719795fd86e1ee0\nFixes: 78252558\n"
    },
    {
      "commit": "2ad19e51463f2f4b5633fa9c155fd9fc75f387a6",
      "tree": "a9ac54febeb80616fe919812da35e832703a937e",
      "parents": [
        "a3a1e8ad79874be92b91df4255263c617fee5da6"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Apr 18 15:03:09 2018 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Apr 18 16:19:59 2018 -0400"
      },
      "message": "Temporarily allow StackView to use a canvas.clipRectUnion\n\nStackView currently expands the clip of the view which is a prohibited\noperation in API Level 28.  This CL currently allows this specialized\nuse case to work in this situation until we can update StackView\nto not clip to its bounds and then just intersect with this clip\nprovided by its parent.\n\nTest: CtsWidgetTestCases\nBug: 77642155\nChange-Id: Icc003ad3946bb226368ec2030d4707753f4f55e9\n"
    },
    {
      "commit": "4534745f53e10952b706bd22fb0c2a29bcbb75e0",
      "tree": "8ee31da6e358401607527f2e349d2b32bebb27a1",
      "parents": [
        "e5d97dd6f9e10c21568ae96a000e58834015bee9"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 13 11:57:08 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 13 13:12:49 2018 -0400"
      },
      "message": "Fix rounding of padding in NinePatchDrawable\n\nBug: 73088142\nTest: Test app at https://buganizer.corp.google.com/issues/73088142#comment6\nTest: GridWidgetTest.testItemDecorationAndMarginsAndOpticalBounds\n\nIn computeBitmapSize, treat padding as a size in scaleFromDensity. This\nresults in rounding instead of truncating. This matches the way optical\ninsets are handled. It also matches the padding we would have gotten if\nwe had scaled at decode time.\n\nChange-Id: I7d3a83ba824b8dc81187ce9b2d9889d4a87f88ac\n"
    },
    {
      "commit": "17133935aa538a0029e8f92b4dd8c0a7b14db60a",
      "tree": "5e1310eb67ddca7bd7aa33c9dbb1f6ea64c29842",
      "parents": [
        "a1f254dcc376f52182dc2109b12ae28148a99299",
        "85ff47e3fc50aca0befb16b233f7cac2630a0d73"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 00:13:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 00:13:05 2018 +0000"
      },
      "message": "Merge \"Removed hidden mutable APIs from PorterDuffColorFilter\""
    },
    {
      "commit": "85ff47e3fc50aca0befb16b233f7cac2630a0d73",
      "tree": "5a2f1f7a7bdb9799f8657e0e0a1a21cdfd68e5f0",
      "parents": [
        "02adb97ec2eccb84f7ad5f0b16b8f091c3e3641a"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Mon Apr 09 09:54:48 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue Apr 10 19:37:19 2018 +0000"
      },
      "message": "Removed hidden mutable APIs from PorterDuffColorFilter\n\nRemoved PorterDuffColorFilter#setColor and PorterDuffColorFilter#setMode\nas the public facing ColorFilter API is immutable. These framework\ninternal APIs were causing issues with Drawables as updates to state of\nthe ColorFilter would not be propagated up to the Drawable to cause an\ninvalidation.\n\nFixes: 77723600\nTest: Ran atest on SystemUITest and CtsGraphicsTest modules\n\nChange-Id: I935c9e35ffa225735b951bb3b1eb753ea5815a84\n"
    },
    {
      "commit": "94f25a6515bc545a69738e056af75617ee721167",
      "tree": "61cd3493fe5ef57b56ae28a130b8384585541f22",
      "parents": [
        "28bad11b8d3962313c9154af5300e6be07b2052a"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Mon Apr 09 17:01:39 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue Apr 10 12:32:00 2018 -0700"
      },
      "message": "Updated DrawableWrapper implementation to support the hidden setXfermode\nmethod to delete the corresponding Xfermode to the wrapped drawable\n\nAdded coretest to verify the hidden API properly propagates the Xfermode\nto the wrapped drawable\n\nChange-Id: I1f14105b7019b57bfcdd7182bb50ea2465c91ffe\nFixes: 30840201\nTest: Ran atest on coretests\n"
    },
    {
      "commit": "9f5da239370b356044aed790a2badf598b28a562",
      "tree": "3b62175c1a47449f8d18f505c7b3485039c8cfa2",
      "parents": [
        "325f7284d9b45d1a673b69dc8bf64d4d33b32305",
        "24187a720b48e40f35129cd633a902f5515b3b42"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 09 10:08:12 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 10:08:12 2018 -0700"
      },
      "message": "Merge \"Add common weight name to the API description\" into pi-dev am: 1cf0b6cbfd\nam: 24187a720b\n\nChange-Id: Ic9c045e3045f329185444044628d4943fdeebfab\n"
    },
    {
      "commit": "1cf0b6cbfd056f848dd5837bcf9d18eb5f577a8e",
      "tree": "bf72ef8aa6ea8c8ab5f491b9fffff5c95a1bd48e",
      "parents": [
        "d565f049575cb63fef1b92c47599da928a118112",
        "f2944cd61b84913c6c821594b289e7af9746efff"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 09 16:46:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 16:46:26 2018 +0000"
      },
      "message": "Merge \"Add common weight name to the API description\" into pi-dev"
    },
    {
      "commit": "f2944cd61b84913c6c821594b289e7af9746efff",
      "tree": "abda315d6e8213dd138d5c98e2bcb75ba41cd9ce",
      "parents": [
        "7790a2f2d1b5d7bd25b182fd58047a2a2bda5caf"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 02 11:45:34 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 09 14:29:41 2018 +0000"
      },
      "message": "Add common weight name to the API description\n\nBug: 76448718\nTest: m docs\nChange-Id: Id0ce0b2bcbf4f6b0cf1aa97c4d2c3c5117dc62c2\n"
    },
    {
      "commit": "366e1e716dc0e6cd05d5042293474875a90d07bb",
      "tree": "085109020469726b586bc386a22fe2044c088e37",
      "parents": [
        "dd7a80f26e4414727877a9331720bcc47a83b2e6",
        "c13c945b19d397e29457e4285618b4727cfff858"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 05 16:19:52 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 16:19:52 2018 -0700"
      },
      "message": "Merge \"Never scale nine-patches in ImageDecoder\" into pi-dev am: 9cb6759072\nam: c13c945b19\n\nChange-Id: I437c33c878db8c6bc4cbd3cd3d6989908bc6ff89\n"
    },
    {
      "commit": "9cb6759072eefacb114782ebdfc3b779693535de",
      "tree": "41fe12e356499c9e8019322efd18a2aa61cfb4de",
      "parents": [
        "ec3f8260defc91e27912a10457de6bff992c8739",
        "7d940ba43d15836ccf32f373c778eebffacf1f5a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 22:42:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 22:42:39 2018 +0000"
      },
      "message": "Merge \"Never scale nine-patches in ImageDecoder\" into pi-dev"
    },
    {
      "commit": "4ce55ba63f2d2d8d2537a10e7e7e59fdf86dd95b",
      "tree": "2b4a39ba544445130ff6f5f78d58875a78673166",
      "parents": [
        "acdfc1df62db44772eaf1ec3c782302a70b02a2a",
        "5a22b40803b250d7e6ea3776be5023d5f82764f4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 21:51:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 21:51:47 2018 +0000"
      },
      "message": "Merge \"Added line to mark the mGradientIsDirty flag to true in order to recompute GradientDrawable drawing bounds\""
    },
    {
      "commit": "fc7f4c89edff850f9935599448ebd69dbbf6b796",
      "tree": "0da713d256870aa39bbaae5f890a62ef736b956c",
      "parents": [
        "ed611e913ff08cf41dd7095d1cdbdb9862b04d53",
        "844ecb325a552e2a20b6d255bdf7cdd1574f40ec"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 05 14:24:49 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 14:24:49 2018 -0700"
      },
      "message": "Merge \"Rename set/get-ConserveMemory\" into pi-dev am: d2c218f78a\nam: 844ecb325a\n\nChange-Id: Ieb7c02b42c77230173688e493e3e2b5549279de1\n"
    },
    {
      "commit": "d2c218f78a0a42717337aa49d3b7fa5390afa9ad",
      "tree": "1ae17e86440f3e91018db9a7caa08a94e4a94e3c",
      "parents": [
        "d8a6f0cd9493a154c8727ceb295395c0a8370866",
        "ac959199e5cf553a1b42a486e91918ead4394ff5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 20:44:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 20:44:58 2018 +0000"
      },
      "message": "Merge \"Rename set/get-ConserveMemory\" into pi-dev"
    },
    {
      "commit": "5a22b40803b250d7e6ea3776be5023d5f82764f4",
      "tree": "5cb54f864e1a3bfe2c72d845de0c5595ba9dfb3c",
      "parents": [
        "424c84ce16d1557a009fd26d7aa5817a3518f7c0"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Thu Apr 05 10:29:47 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Thu Apr 05 10:43:28 2018 -0700"
      },
      "message": "Added line to mark the mGradientIsDirty flag to true in order to\nrecompute GradientDrawable drawing bounds\n\nUpdated logic in GradientDrawable#setStrokeInternal to set the\nmGradientIsDirty flag to true when the stroke is changed in order to\nhave ensureValidRect be called and recompute the drawing bounds\nconfigured on mRect. In the event that a stroke width is defined, the\ndrawing rect must be inset by half the stroke width. Otherwise the\nstroke will be drawn at the edges of the boundary and be clipped.\n\nBug: 70915849\nTest: Ran test app provided in bug and confirmed that modifying the\nstrokeWidth on a pre-existing GradientDrawable matches the behavior of a\nbrand new GradientDrawable instance used as the background on a view\n\nChange-Id: Icaa53d936589a9b4790f89e894f1d745c6e4fe43\n"
    },
    {
      "commit": "7d940ba43d15836ccf32f373c778eebffacf1f5a",
      "tree": "d222386969f4546b870ffbec5799449dc9554cd6",
      "parents": [
        "ac959199e5cf553a1b42a486e91918ead4394ff5"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 04 16:19:33 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 05 12:50:32 2018 -0400"
      },
      "message": "Never scale nine-patches in ImageDecoder\n\nBug: 76448902\nBug: 70889348\nTest: Manual + CtsThemeHostTestCases\n(Ica5e7e81848c3880accee922ee6f1cc9e26262ca)\n\nScaling a nine-patch requires scaling its divs. When the scale factor is\nnot an integer, we have to round. This gets out of sync with the way the\ndecoder scaled the image, resulting in stretching or keeping fixed the\nwrong portions of the image. Making this worse, when we scale down, we\nend up with divs colliding with each other, and we have to arbitrarily\nadjust them further so they do not collide.\n\nNinePatchDrawable and the drawing code already know how to handle\ndrawing from the originally-sized image and do a better job stretching\nappropriately, so allow them to do their job.\n\nWe already do something similar for Bitmaps created by ImageDecoder on\napps targeting P and above - instead of scaling them up, we allow the\nBitmapDrawable\u0027s scaling code to handle density differences. We\npreserved the old behavior (scale up) on apps targeting pre-P because\nthose apps may rely on the size of the Bitmap contained in a\nBitmapDrawable without accounting for its density (see Bug: 74061412).\nBut that is not an issue for NinePatchDrawables, which do not allow\npeeking at their internal Bitmaps.\n\nRewrite ImageDecoder.computeDensity. There is no need for it to be\nstatic, since it takes an ImageDecoder as a parameter and reads its\nfields, including the new field mIsNinePatch. Set mIsNinePatch in the\nconstructor to avoid another down call into native. Split up the\nconditions that result in returning srcDensity without calling\nsetTargetSize for clarity.\n\nRemove ImageDecoder constructor from the graylist. It was accidentally\nadded due to the fact that it is called transitively from public APIs.\n\nChange-Id: I3c5ddd67f3352c991515f30ce1c477c9a608833f\n"
    },
    {
      "commit": "de80e55325f7354c57a72d4494a3678eff72a5ae",
      "tree": "91c857a3e6d95688aafb3c9d153652288c0c3e13",
      "parents": [
        "6858acd4421bd1e808712004c38731f6bdbb4c94",
        "4cd2ed60679a118103ab314e35cae5dccb60c6b0"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Apr 05 06:58:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 06:58:01 2018 -0700"
      },
      "message": "Merge \"Add docs for setTargetSize and setTargetSampleSize\" into pi-dev am: d9cb59629d\nam: 4cd2ed6067\n\nChange-Id: I4717b7a453469bd5c204cca2294675a2a01aa8a6\n"
    },
    {
      "commit": "d9cb59629d13cd641e786dcdc6c6d82983b2bed3",
      "tree": "5807684870c03dc416091f6bec77f8d3d82bf94f",
      "parents": [
        "c83cf90166120435e09a1dd4a436e095622b071c",
        "d97e26428d1c61759910a1b983d5e316c9b893a1"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Apr 05 13:29:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 13:29:38 2018 +0000"
      },
      "message": "Merge \"Add docs for setTargetSize and setTargetSampleSize\" into pi-dev"
    },
    {
      "commit": "b04d93366c3464d1e22eb4c11cab5475944885bb",
      "tree": "fb6af977edbcc1cf86e7e9927553cb41379a4f54",
      "parents": [
        "28a368d3146daece0c9fdb8a687f9c3bb0279328",
        "a2d61be939735686da64823c0c817359f9bd289a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 00:26:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:26:20 2018 +0000"
      },
      "message": "Merge \"Modified ShapeState#newDrawable to pass a deep copy of ShapeState\""
    },
    {
      "commit": "ac959199e5cf553a1b42a486e91918ead4394ff5",
      "tree": "26955b51b22eda40305856687558fb0530cdd7ad",
      "parents": [
        "d97e26428d1c61759910a1b983d5e316c9b893a1"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 04 17:01:59 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 04 19:58:30 2018 -0400"
      },
      "message": "Rename set/get-ConserveMemory\n\nBug: 76448408\nTest: Ie83dbdeab5cc3dcd6bd56dd874412ed67eb52c02\nChange-Id: I714b159bb70a48e5644801cc7fef8e32ee93896a\n"
    },
    {
      "commit": "14516dba6230765639fe1db3d8136348bd5d9c8f",
      "tree": "40b8edb373e7f9da60cfd02d8b919e1a219bb41c",
      "parents": [
        "27cc5aa2fdc73e715398eeb41a089da7d9bc7648"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Wed Apr 04 14:45:43 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Wed Apr 04 14:45:43 2018 -0700"
      },
      "message": "Updated GradientDrawable setColor(ColorStateList) implementation to\nmatch corresponding documentation to fall back to\nsetColor(Color.TRANSPARENT) in the event that null is passed as the\nColorStateList parameter\n\nRefactored implementation to directly call setColor(Color.TRANSPARENT)\nif setColor(null) is invoked, otherwise configure the solid colors and\nthe fill Paint color to the ColorStateList and resolved color for the\ngiven state\n\nBug: 64951083\nTest: Compiled, flashed an updated build of master onto taimen and\nre-ran tests with updated implementation in GradientDrawableTest\n\nChange-Id: Ia7e9a995fc78e49d601931ca6af81470d90f8439\n"
    },
    {
      "commit": "a2d61be939735686da64823c0c817359f9bd289a",
      "tree": "53e9f9c29cf43408ca15f24da7441b31fd734090",
      "parents": [
        "27cc5aa2fdc73e715398eeb41a089da7d9bc7648"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue Apr 03 16:18:40 2018 -0700"
      },
      "committer": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Wed Apr 04 13:23:46 2018 -0700"
      },
      "message": "Modified ShapeState#newDrawable to pass a deep copy of ShapeState\n\nBecause ShapeState#newDrawable passes a reference to the existing\nShapeState instance, modifications to a single ShapeDrawable instance\naffect all instances of the ShapeDrawable obtained through\nShapeState\n\nBug: 74570674\nTest: Tested by flashing a local build onto a Taimen and running\nthe sample application provided in the corresponding bug to verifying\nthat both usages of OvalShape within the sample app produce the same\nvisual result\n\nChange-Id: I10a8aac8eb51d551a13f2b6292f0cd84bff84045\n"
    },
    {
      "commit": "d97e26428d1c61759910a1b983d5e316c9b893a1",
      "tree": "84a4cd34a4963249338cd1e982f80a6d586f282c",
      "parents": [
        "d84c652a4ebbdd8a42d09e28e2d3d83962a0350d"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Apr 03 11:55:55 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Apr 03 11:59:29 2018 -0400"
      },
      "message": "Add docs for setTargetSize and setTargetSampleSize\n\nBug: 77507530\nTest: No change in behavior, no new tests\n\nAdd @Px and @IntRange annotations, and be explicit that setTargetSize\nrefers to pixels. Add a comment to setTargetSampleSize that is like\ncalling setTargetSize with particular values, to try to make it clear\nhow the two are related.\n\nChange-Id: Ie7e9429bc8c548f44d382358c161425f666ba82f\n"
    },
    {
      "commit": "ab600d979f9259875c4229d383308f2f05c9a09b",
      "tree": "4bf3d2cc9432eb7723a79189f61b76c46e36f1c0",
      "parents": [
        "22bed6dacbc455d2752ef2f8844cc60f71a07a60",
        "de054456f217e26d18a41689268e11134177a1c6"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Apr 03 08:12:58 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 03 08:12:58 2018 -0700"
      },
      "message": "Merge \"Update javadocs for ImageDecoder and related\" into pi-dev am: 8880a9e0b9\nam: de054456f2\n\nChange-Id: I69f828620f62848193dc14850c07ad87c20ded49\n"
    },
    {
      "commit": "8880a9e0b9a7cf703df328ac54f2acc3df0322dc",
      "tree": "b06e3b6f76755499fbc07d46130e9adbd7692a83",
      "parents": [
        "600fe676f7a164107a7501451483f5ffc2bbdd12",
        "d84c652a4ebbdd8a42d09e28e2d3d83962a0350d"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Apr 03 14:43:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 14:43:01 2018 +0000"
      },
      "message": "Merge \"Update javadocs for ImageDecoder and related\" into pi-dev"
    },
    {
      "commit": "1aefca09ebc0473d86c5ce218023b727b0fc022b",
      "tree": "d09877f33c5aa9cea7ae9aca64f2ef569ba2980a",
      "parents": [
        "e0b8a7ec6cc695d97d5d090fb4493cdc8560c895",
        "c13bf7776936f21258cb14f513f8cd6e83c007b6"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Apr 02 23:19:26 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 02 23:19:26 2018 +0000"
      },
      "message": "Merge \"Merge \"Restore saveLayer APIs back into the public API.\" into pi-dev am: ffe1c2a266\" into pi-dev-plus-aosp\nam: c13bf77769\n\nChange-Id: I1d93eb9fadc99f578e7162a6aae82d6eb612a3b8\n"
    },
    {
      "commit": "ffe1c2a266f5b4f2da93bdf0fadc3f40d74329d0",
      "tree": "2b972a5d44e4237bbf91ca17a2937c1f0ddf616d",
      "parents": [
        "07daad2dbffa9ce81a5c66adf7f12715bce5516a",
        "2d4f01ba7f544f1bd772239a0f19946b01ed98d9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 14:28:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 14:28:48 2018 +0000"
      },
      "message": "Merge \"Restore saveLayer APIs back into the public API.\" into pi-dev"
    },
    {
      "commit": "f648b2e6f2c2b04aee5a77dca18fd045dfe43363",
      "tree": "57596d1aa2aedfadf451f41df872ca02b18cd56a",
      "parents": [
        "025ab2900172afe41120e14a997566dcc2a9473f",
        "fe49dd165e1801819d25720ec76ff729ae8946bb"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Sat Mar 31 01:01:39 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 31 01:01:39 2018 +0000"
      },
      "message": "Remove chaining from ImageDecoder setters am: d9b53a097d\nam: fe49dd165e\n\nChange-Id: I1ca209b9bce4c50fdaf5b5a983669f0a305d022b\n"
    },
    {
      "commit": "d84c652a4ebbdd8a42d09e28e2d3d83962a0350d",
      "tree": "cd60e8651acd61721fa5b223768a540f7758dce8",
      "parents": [
        "d9b53a097d0eec2d1112b25a67b28c203e9251f9"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 14:56:07 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 20:13:39 2018 -0400"
      },
      "message": "Update javadocs for ImageDecoder and related\n\nBug: 76461699\nBug: 76448408\nTest: No change in behavior, no new tests\n\nAdd class level docs for ImageDecoder, including sample code. Update\nwording to be more clear and less wordy. Fix broken attempts at using\nsample code.\n\nIncorporate advice at go/android-api-guidelines and\nhttps://developers.google.com/style/api-reference-comments\n\nChange-Id: Iaf1334993f6cd2d3f6e53d3fb70ef9c7a95c9a76\n"
    },
    {
      "commit": "d9b53a097d0eec2d1112b25a67b28c203e9251f9",
      "tree": "2ffef9300a910c199773ce6a66b45a1f97fed67b",
      "parents": [
        "1e0a9b0b1b706e4ef31522cdbc7d3d5232e6c382"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Mar 27 07:47:07 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 15:02:56 2018 -0400"
      },
      "message": "Remove chaining from ImageDecoder setters\n\nBug: 76448408\nTest: Infeasible\nChange-Id: Ib0ef0a9a9b0f36481ed1bbb16ecaccd180df8915\n"
    },
    {
      "commit": "2d4f01ba7f544f1bd772239a0f19946b01ed98d9",
      "tree": "6d6ffbb82b8f18a9b04be33dfeac4fb3169a0cb9",
      "parents": [
        "d490937854d06e29d9214fc030b18b192ce946dd"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 29 16:04:32 2018 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 30 14:40:04 2018 -0400"
      },
      "message": "Restore saveLayer APIs back into the public API.\n\nThe saveLayer APIs are restored from @removed but will treat input\nas ALL_SAVE_FLAGS and generate exceptions on newer API levels.\n\nWe internally used these calls in one situation that now use a\ndifferent @hide API to support the previous behavior until we\nrefactor that code.\n\nPartial revert of \"Remove deprecated android.graphics.Canvas APIs\"\nThis reverts commit 7b837616ae88cbdaf12600cee23b5188e5531937.\n\nBug: 77276963\nBug: 73777445\nTest: CtsGraphicsTestCases\nChange-Id: I7acd4ffd5ac41a58d2be8b48cf50119c2b896708\n"
    },
    {
      "commit": "3adb7aab60c82a2a3acffbf07f1138618b2891e3",
      "tree": "dca05ec877c215eaac715ce638a6d52ef22a4c6e",
      "parents": [
        "7466c1679a4c3dc53b9e2553e80c9cd6cc2299c8",
        "41a28e7fe6eb0310f1ec52540ff7313aca9fff05"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 14:56:36 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 14:56:36 2018 +0000"
      },
      "message": "Merge changes from topics \"DocumentSource\", \"ID_API\" into pi-dev am: 3c4e33a4fe\nam: 41a28e7fe6\n\nChange-Id: I99619af2463c8afd6c97725417994cdae0c8bbc6\n"
    },
    {
      "commit": "7466c1679a4c3dc53b9e2553e80c9cd6cc2299c8",
      "tree": "70806aaf0c465e50656ca0e095cde851ad128975",
      "parents": [
        "9ce6bf9cc01abcc7ae6ea5bc37472474412e0237",
        "02b9f36f5af0decf7c36c37657d1af5f420e494d"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 14:50:57 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 14:50:57 2018 +0000"
      },
      "message": "Rename getters and setters on ImageDecoder am: d62f27250a\nam: 02b9f36f5a\n\nChange-Id: I9048711149267eb20848e63a3f1f166d6f46e158\n"
    },
    {
      "commit": "02b9f36f5af0decf7c36c37657d1af5f420e494d",
      "tree": "5b8333a49cf9c2627059f8a0a3a340d85df7ddcc",
      "parents": [
        "6eb88411e66f62f326ac4ac68c6cee17f2ac0fdb",
        "d62f27250ab99d67242f1de293a31c12c397beb2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 14:23:17 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 14:23:17 2018 +0000"
      },
      "message": "Rename getters and setters on ImageDecoder\nam: d62f27250a\n\nChange-Id: I51fd44e48732f0eab0db60f829bece5c8760d38e\n"
    },
    {
      "commit": "3c4e33a4fe58a03a2cbb3183fe2bce161a5b9d3e",
      "tree": "bb6ada93e8f18038d29b3281b6647f54eaedb735",
      "parents": [
        "5d27097739612844a609b63664382e42c7bd189f",
        "0a87cb3128a7fe8a999544ec1187159d82aa09dd"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Mar 30 00:53:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 00:53:53 2018 +0000"
      },
      "message": "Merge changes from topics \"DocumentSource\", \"ID_API\" into pi-dev\n\n* changes:\n  Add documentation for ImageDecoder and its Source\n  Rename getters and setters on ImageDecoder\n"
    },
    {
      "commit": "0a87cb3128a7fe8a999544ec1187159d82aa09dd",
      "tree": "e0a2e019b43b9617ad86dc4f49563dc414506ee2",
      "parents": [
        "d62f27250ab99d67242f1de293a31c12c397beb2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 15:54:59 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 18:47:52 2018 -0400"
      },
      "message": "Add documentation for ImageDecoder and its Source\n\nBug: 76448408\nBug: 76462125\nTest: Iec21bad971dc9cffc807a412bb6329757c499baa\n\n- Document DecodeException.getSource\n- Add thread annotations\n- slice() ByteBuffer inside createImageDecoder, so it can be reused\n- Make ResourceSource thread safe by locking around mResDensity\n- Specify that OnHeaderDecodedListener is necessary for changing default\n  settings\n\nChange-Id: I3b55d3ba1b0a2276938cb521449bceb7aa9f96e2\n"
    },
    {
      "commit": "2542ce4f2b56006a3a0a9402d20ef8a8262f67c3",
      "tree": "85bb1ebe1cf01315ccfeaab586cdfe604a5f53a6",
      "parents": [
        "89da1ea3aca290cdd2ca0c16ac18800c66999963",
        "8f935b0fbb532e4bc7a9259548c6856e0e42e3e5"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 21:55:38 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 29 21:55:38 2018 +0000"
      },
      "message": "Merge \"Add in/out ColorSpace to ImageDecoder\" into pi-dev am: bf1fe9aecd\nam: 8f935b0fbb\n\nChange-Id: I1a0d03fb9ca51276dc1907fd4cd2d2685fc46a46\n"
    },
    {
      "commit": "bf1fe9aecd9a775204645f7e1dfe376dd42b7e87",
      "tree": "7561538d602a82446d5ae70c0604832b1100850a",
      "parents": [
        "275ea423a3dc18fef235a18f15474ddde1a057ca",
        "1a69f4598faef083d0123bb9b6bfcd6acfdec4e0"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 20:27:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 20:27:43 2018 +0000"
      },
      "message": "Merge \"Add in/out ColorSpace to ImageDecoder\" into pi-dev"
    },
    {
      "commit": "d62f27250ab99d67242f1de293a31c12c397beb2",
      "tree": "80f3a4aadee46db3a6c89f5b6f8f1fcdaaead864",
      "parents": [
        "1a69f4598faef083d0123bb9b6bfcd6acfdec4e0"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 14:52:29 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 15:35:30 2018 -0400"
      },
      "message": "Rename getters and setters on ImageDecoder\n\nBug: 76448408\nTest: Ib8782ff10072c81a5ed2a1031a70475fffee7ccf\n\n- Use \"is\" prefix for booleans instead of \"get\"\n- Reverse \"require\" and \"unpremultiplied\" for a more natural sound\n- Add \"Required\" to \"Mutable\" methods\n- Add \"Enabled\" to \"DecodeAsAlphaMask\" methods\n\nChange-Id: I644ddccd37898d89609e4534ece4ea70f74587c4\n"
    },
    {
      "commit": "1a69f4598faef083d0123bb9b6bfcd6acfdec4e0",
      "tree": "83f6a0313e55022743b339ad60884aa86fc26180",
      "parents": [
        "64481195e13e2dd7197fff569344e5a263b7871a"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 09:48:47 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 13:44:22 2018 -0400"
      },
      "message": "Add in/out ColorSpace to ImageDecoder\n\nBug: 76448408\nTest: I851173b771668f0e6712bebfe06bfb8559801199\n\nAdd ImageInfo.getColorSpace() for retrieving the default ColorSpace.\nThis matches BitmapFactory.Options.outColorSpace.\n\nAdd ImageDecoder.setTargetColorSpace() for choosing a new ColorSpace.\nThis matches BitmapFactory.Options.inPreferredColorSpace.\n\nRename setSampleSize to setTargetSampleSize to match setTargetSize and\nsetTargetColorSpace.\n\nChange-Id: If2f4e755dfc163f754849f896de24659198973db\n"
    },
    {
      "commit": "98d1b8b2d1b3152b2de29e530bf088c4a0d0fac4",
      "tree": "8e21a6e723a89d6f3b619ad0091c239310e6cb1b",
      "parents": [
        "fb2af92a4ee94f17c74a6cb54fb5b1b0b3bc8740",
        "6541c42146f62d440b8e7c8074ea8641a83dbdb7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 29 17:34:00 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 29 17:34:00 2018 +0000"
      },
      "message": "Merge \"Move Path to NAR\" into pi-dev am: 9434b66bf7\nam: 6541c42146\n\nChange-Id: I6cf9880e75ade2430af26eda7d9777ce81250168\n"
    },
    {
      "commit": "9434b66bf731a84ecb2d491f3bce4ffca07707af",
      "tree": "b2447094099efdc7753b9131f83a2d9601098832",
      "parents": [
        "2011f2333d1b9d0930223dbb3587a40e2d1b80bb",
        "205d83e108e4ff0442547cb30a8c2d83f69afa15"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 29 16:53:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 16:53:41 2018 +0000"
      },
      "message": "Merge \"Move Path to NAR\" into pi-dev"
    },
    {
      "commit": "eb366a01abba0bbae24fd2100c42766a5635aa0c",
      "tree": "4d34ca967b45a1de455a2fa70febf6e582d2f51c",
      "parents": [
        "87f6f24f4b6beb3260e2f37c578c80d5677e0650",
        "07e1c83bad1c25472f591bcd977532b4f23e16ca"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Mar 29 13:14:13 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 29 13:14:13 2018 +0000"
      },
      "message": "Merge \"Rename ImageDecoder.setResize\" into pi-dev am: 6078631927\nam: 07e1c83bad\n\nChange-Id: I8d5bd9332d982cf953947d888afd25c566ca5460\n"
    },
    {
      "commit": "205d83e108e4ff0442547cb30a8c2d83f69afa15",
      "tree": "3f05673762fd48a16fa52c5c0023581bb9615fdf",
      "parents": [
        "e1c76d71e747d9bb1e5ecdb2ffc5fe254cba174b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 28 14:36:58 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 28 14:36:58 2018 -0700"
      },
      "message": "Move Path to NAR\n\nBug: 74686528\nTest: PathTest#testUseAfterFinalize\nChange-Id: Ic1c9df6f1b63ea5795a6c3a54b8fc50fdaf0a5f4\n"
    },
    {
      "commit": "64481195e13e2dd7197fff569344e5a263b7871a",
      "tree": "fe52239224f5e4537f474ffe134cea98790c5443",
      "parents": [
        "ff23ffa8ff352b9c7178d19779783d7c231fabda"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Mar 28 09:17:42 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Mar 28 11:24:12 2018 -0400"
      },
      "message": "Rename ImageDecoder.setResize\n\nBug: 76448408\nBug: 73537624\nTest: Ib40d65c68a6c709b6456f2145ad8a5557a941494\n\nsetResize is two verbs, and \"resize\" implies we\u0027re changing the size of\nan existing object. In truth, the method specifies the desired size. So\nrename setResize(int, int) to setTargetSize, which clearly specifies the\nbehavior.\n\nRename setResize(int sampleSize) to setSampleSize.\n\nHide getSampledSize, which looks too similar to the newly named\nsetSampleSize. In addition, b/76448408 suggests hiding it. It isn\u0027t\nreally necessary anyway, since a client can just call setSampleSize - no\nneed to query and call setTargetSize manually.\n\nSince there is no way for a client to know that a RAW image couldn\u0027t be\ndecoded to the desired size (could previously be done with\ngetSampledSize), make setSampleSize do the extra scaling. This is a\nbetter API anyway.\n\nChange-Id: I84c29fdc6bdfb999a7f712fdc069304ae9676ba6\n"
    },
    {
      "commit": "93e2e97d1bc63f96d8fc20c98e6ac2773a8062f5",
      "tree": "5a3aafb83b6f71e1c113e71e2781f52469a789f4",
      "parents": [
        "7ac61994d84cdaedc848a867314c7c9afbe4f5a1",
        "d32b6e012a675709c3caa94d5e9b8d1d553e663c"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Mar 27 19:36:37 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 27 19:36:37 2018 +0000"
      },
      "message": "Merge \"Remove deprecated android.graphics.Canvas APIs\" into pi-dev am: 812e87ecba\nam: d32b6e012a\n\nChange-Id: I596d43c935516141b9c834c0af7441606d41a33a\n"
    },
    {
      "commit": "bef42cd87f6ac41688114678a70a2e410e238cb1",
      "tree": "be4b9a785c5660d15dd226157dd1b33d40b609cb",
      "parents": [
        "6d0412ee22d4d4991d98a564140e6b5a57c2a3b3",
        "b5afc250bcd22b6966ec66c28e1aa0a5f4e4e32f"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Mar 27 18:54:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 18:54:28 2018 +0000"
      },
      "message": "Merge \"Docs: add more detail to SurfaceTexture#getTimestamp\" into pi-dev"
    },
    {
      "commit": "b5afc250bcd22b6966ec66c28e1aa0a5f4e4e32f",
      "tree": "a9416e6fe33488977c27cb03d6fe37834643e1ba",
      "parents": [
        "620da5249ffcbebe10534e164006a85355b8a815"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Mar 23 09:43:42 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Mar 27 17:08:04 2018 +0000"
      },
      "message": "Docs: add more detail to SurfaceTexture#getTimestamp\n\nCopies language from \u003candroid/surface_texture.h\u003e that connects\nEGL/Vulkan presentation timestamps to SurfaceTexture#getTimestamp.\n\nIn the process, reorganized the existing language to talk about\ngeneral properties of the timestamp, and then talk about behavior of\nspecific producers instead of mixing them together.\n\nBug: 72755997\nTest: make docs\nChange-Id: I88253f9e23df7d7c4fe3c1c51ff2ac494da1913c\n(cherry picked from commit 63d2a0e00005e9b5bb6e62d752a23ef2e43b03d4)\n"
    },
    {
      "commit": "7b837616ae88cbdaf12600cee23b5188e5531937",
      "tree": "423bf476641da8b71234af88304bbec075a74b16",
      "parents": [
        "b429012907e8b48bf88c5ec5e91312c3379ca325"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 22 16:16:33 2018 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Mar 27 14:36:50 2018 +0000"
      },
      "message": "Remove deprecated android.graphics.Canvas APIs\n\nBug: 73777445\nTest: compile\nChange-Id: Ie68f2fbe3c3be82f3c20529d535875d4cc204b7c\n"
    },
    {
      "commit": "b132b4764950b73cb3b23e045ad700c7b78911b2",
      "tree": "414af27f1a92c0dd7492efed6fcdafe7e76be967",
      "parents": [
        "209305e5a0ce359e99b94db8fcff8e7bc06b641d",
        "5115645c5a2f69a92acbe9f943e74e926537ee19"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Mar 27 13:02:39 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 27 13:02:39 2018 +0000"
      },
      "message": "Merge \"Update AnimatedImageDrawable docs\" into pi-dev am: 6f5e83df3a\nam: 5115645c5a\n\nChange-Id: I8ba7f7eb28c5a03365c2b8cf79b846fe1f51b5a1\n"
    },
    {
      "commit": "6f5e83df3a519fd1806d85b412175516efbb6fea",
      "tree": "116e68315e10e2c1ab304e5eda3c2301434459c6",
      "parents": [
        "9f36c26f83cbb29c947c681c750340401e62e768",
        "53f09ee1f194849f02e62ddbf2137c3ea82b8ad7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 12:47:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 12:47:22 2018 +0000"
      },
      "message": "Merge \"Update AnimatedImageDrawable docs\" into pi-dev"
    },
    {
      "commit": "01e314882749d51c35cf0c446dc6c5d5a6a884f9",
      "tree": "a11e19a542508d8cd377de1209c310ee3cf15151",
      "parents": [
        "ed283cf2793ec27cbd8ec1f2b0425b260aad6bcd",
        "63d2a0e00005e9b5bb6e62d752a23ef2e43b03d4"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Mar 26 20:12:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 20:12:00 2018 +0000"
      },
      "message": "Merge \"Docs: add more detail to SurfaceTexture#getTimestamp\""
    },
    {
      "commit": "53f09ee1f194849f02e62ddbf2137c3ea82b8ad7",
      "tree": "09f55cab7adc862f6590e84ecfe12426c98d2c81",
      "parents": [
        "f344b3ead51d3ac96c60223cbc9a4a0bc7c61576"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 26 10:44:47 2018 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 26 10:44:47 2018 -0400"
      },
      "message": "Update AnimatedImageDrawable docs\n\nBug: 73529437\nTest: No change in behavior, no new tests\n\nDocument that it can be inflated from xml, and reference the attributes\nthat it supports.\n\nAdd a comment describing what the class does with respect to animation.\n\nUpdate the comment for start() to better reflect when the callback is\ncalled.\n\nChange-Id: I660cbc4e185dca8bc7a43a185f91ae0485ef8753\n"
    },
    {
      "commit": "4d8a8b556b05466c713510731a5c77eeee0fd156",
      "tree": "35c995473001f60d99bf15b98ba3712dcc99687f",
      "parents": [
        "a126cdf6320609a43c848a91fb6c693498c19f10",
        "de09a543f4d2d59b653aec6550b9fd9354990361"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Sat Mar 24 06:11:29 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 24 06:11:29 2018 +0000"
      },
      "message": "Merge \"Add missing computeOpacity call\" into pi-dev am: 3f5ab8bdf4\nam: de09a543f4\n\nChange-Id: I0da7e3181e4ca1f9b470e22ab68dc3f7eedee6de\n"
    },
    {
      "commit": "29c8b5458ac2f1d9b61412d1b9cf718c196c05df",
      "tree": "88960b77b7c4b34c7c76f6fe5611158808104a16",
      "parents": [
        "4341a66b03aa8ba03de09db4bd446312c47176be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 23 15:38:18 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 23 15:38:18 2018 -0700"
      },
      "message": "Add missing computeOpacity call\n\nChange-Id: I3b668842d4cd072a0625c32cae0a1ade0e322a7d\nFixes: 73285195\nTest: GradientDrawableTest#testGetOpacity\n"
    },
    {
      "commit": "63d2a0e00005e9b5bb6e62d752a23ef2e43b03d4",
      "tree": "ea4a1005bf516c2310ff430133d5d5eda51e7577",
      "parents": [
        "e944b1243b4c5893f616684fe0866e47c75a67a7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Mar 23 09:43:42 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Mar 23 11:23:14 2018 -0700"
      },
      "message": "Docs: add more detail to SurfaceTexture#getTimestamp\n\nCopies language from \u003candroid/surface_texture.h\u003e that connects\nEGL/Vulkan presentation timestamps to SurfaceTexture#getTimestamp.\n\nIn the process, reorganized the existing language to talk about\ngeneral properties of the timestamp, and then talk about behavior of\nspecific producers instead of mixing them together.\n\nBug: 72755997\nTest: make docs\nChange-Id: I88253f9e23df7d7c4fe3c1c51ff2ac494da1913c\n"
    },
    {
      "commit": "b8e9a15379628f9deaf178adc04a2c95cc403ca6",
      "tree": "866906a1aedf70e2c09a280c211d260509266374",
      "parents": [
        "e7834b5677020d5602a330129c598d229dfb35c9",
        "90405d02cdbe16ecea9853991c462125e3da2185"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Mar 23 11:52:49 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 23 11:52:49 2018 +0000"
      },
      "message": "Merge \"detect api version, and start respecting offsets\" into pi-dev am: dfdc379144\nam: 90405d02cd\n\nChange-Id: Ied06df3460e90779e3015e6ba64406a068df5472\n"
    },
    {
      "commit": "dfdc3791441ff6ede4b4ae36ecdc627561471a8e",
      "tree": "4cf002f60babda0c1990e8f7a6d161b65dacd965",
      "parents": [
        "0ed26bc8b1bf04e79a5abceb6f13cf509b9d105a",
        "322bc57a338ec650347084ef379860c19b29d1b4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 11:25:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 11:25:19 2018 +0000"
      },
      "message": "Merge \"detect api version, and start respecting offsets\" into pi-dev"
    }
  ],
  "next": "547a528421e931f6a6d3a286fa5180b1552e3913"
}
