)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "671cce2605ed50c9aba73ab5bd530cb7741c53cd",
      "tree": "5c7a608cd1d328a9580194b8e06269a4421416ee",
      "parents": [
        "8c9d8f2aec65e449005a4a69c54f691ebd514e52"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Sun Jan 14 16:52:17 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 17 17:06:57 2018 -0500"
      },
      "message": "Make ImageDecoder return animated Drawables\n\nBug: 63909536\nBug: 63908092\nTest: TODO\n\nIf ImageDecoder.decodeDrawable is called with an animated image Source\n(currently GIF or WebP), return an object of a new (hidden) Drawable\nsubclass. The new Drawable animates, and it implements Animatable (TODO:\nimplement Animatable2) so users have some control over the animation.\n\nIn addition to the normal features of Drawable, this new one supports\nmany of the features of ImageDecoder, including scaling, cropping and\nPostProcess, which enables circle masks/rounded corners and other\narbitrary after-effects. It does *not* support decoding directly to a\nHardware Bitmap, since it cycles through frames and reuses the same\nbitmap memory. But it could be made to use shared memory (TODO?).\n\nTODO: Use a better number for the native allocation registry\nTODO: Use the RenderThread to drive the animation, and remove decoding\non the UI thread.\nTODO: Add support for modifying the loop count\n\nAndroid.bp:\n- build new AnimatedImageDrawable.cpp\n\nAndroidRuntime.cpp:\n- register new native methods\n\nAnimatedImageDrawable.java\nAnimatedImageDrawable.cpp:\n- new Drawable that handles animated images\n\nCanvas.h, SkiaCanvas.h/.cpp\n- New virtual method and implementation for drawing SkAnimatedImages\n\nRecordingCanvas.h/.cpp\n- Stub implementation of drawing SkAnimatedImages\n\nImageDecoder.h/cpp\n- Allow code sharing with AnimatedImageDrawable.cpp\n  - postProcess\n  - access the ImageDecoder struct\n\nDepends on https://skia-review.googlesource.com/c/skia/+/94660 in Skia.\n\nChange-Id: Ie2ec98d9c52deda4d439c6ef8e5dea2861bb93a3\n"
    },
    {
      "commit": "8c9d8f2aec65e449005a4a69c54f691ebd514e52",
      "tree": "8ebe6020d3f3233da9acab263ac8f58f9092e4c8",
      "parents": [
        "21acc10b28a39892d49940e2d8d3331e1e7f67fd"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Sun Jan 14 14:41:46 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Jan 17 17:04:17 2018 -0500"
      },
      "message": "Ensure that PostProcess Canvas is released\n\nBug: 63909536\nBug: 63908092\nTest: CtsGraphicsTestCases (ImageDecoderTest)\n\nRefactor a method for calling postProcess from ImageDecoder. This will\nbe shared with the animated drawable (TODO). Call\nPostProcess.postProcess in Java inside a try block to ensure that the\nCanvas is released. Otherwise, a client could hold on to a pointer to\nCanvas and keep using it, even though we have removed its backing.\n\nIn addition, share code for calling nDecodeBitmap.\n\nChange-Id: I81ce2befce91ac1e27c78ad059c4b173a2c7e679\n"
    },
    {
      "commit": "2ae7857ee5cd4beaaf71cbe1f0b099a2d9192712",
      "tree": "fd3323cb60e842c7934796e291f1444009efd241",
      "parents": [
        "3b9567187e1a858d6d87c4a07399f8e9a93a09c0",
        "c782ad886f957408d70e5c77ccf0928bb85f60da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 20:53:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 17 20:53:40 2018 +0000"
      },
      "message": "Merge \"Report more specific error if codec creation fails\""
    },
    {
      "commit": "c782ad886f957408d70e5c77ccf0928bb85f60da",
      "tree": "b7158c04a6ca5687ce2d53ef6d8ae53b95f9c812",
      "parents": [
        "e7403b47c35d081d567672d3c94dce5c1d3aca4e"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Sun Jan 14 10:50:45 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Jan 17 14:33:23 2018 +0000"
      },
      "message": "Report more specific error if codec creation fails\n\nBug: 71578461\nTest: CtsGraphicsTestCases\n\nSwitch to SkCodec::MakeFromStream, and use its error code to determine\nthe Exception/error message. Then pass that to\nSkAndroidCodec::MakeFromCodec. This is essentially what happened\npreviously (minus error reporting).\n\nChange-Id: Iabaa61a4321d2f2e257db587013afda605b005b0\n"
    },
    {
      "commit": "66792c4833f2c5db584bb3fc40ac494035319289",
      "tree": "1d7f85951135ce456d242ed7ac891fb99281f47f",
      "parents": [
        "38e2249aa8ca423eb64f36d827bcfbefcdd84592",
        "2d0735fe91d9afc0be04d52b8a39c4d3a31cefb1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 16 17:54:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 16 17:54:12 2018 +0000"
      },
      "message": "Merge \"Update ripple alphas\""
    },
    {
      "commit": "2d0735fe91d9afc0be04d52b8a39c4d3a31cefb1",
      "tree": "1cf3300938da132d4f1172a2443eac5ec7f32aba",
      "parents": [
        "03033385afd531807c5f96a577f76f12a9a08431"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 10 16:12:19 2018 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 10 16:12:19 2018 -0800"
      },
      "message": "Update ripple alphas\n\nBug: 63635160\nTest: clicked, hovered, and focused stuff\nChange-Id: Ic3ba65b467706969c904d7fe313bd3d659dcc4af\n"
    },
    {
      "commit": "4f63341d73d2291909e7798e17bacfc62dbe6477",
      "tree": "a933828a598ec15cd1b446637b6309403658e87d",
      "parents": [
        "3101268dd8d7597e5df61093fce87fa914b2e717",
        "edf26d6e40f0723e70d7dcd147a2a2ce07c7c1cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 22:39:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 10 22:39:28 2018 +0000"
      },
      "message": "Merge \"Rename onException to onPartialImage\""
    },
    {
      "commit": "2f28dd71ec80031bf30305cedb3cf599dc73237d",
      "tree": "c6c6dc1d5ac33cdf94c3e72cad44830bc0a1ab48",
      "parents": [
        "536bce1de88a6493c98ca4abb25dd2fde201dbc9",
        "1fad09d4d3f43112abd842da4c94cf00fb1cb46d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 14:38:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 10 14:38:32 2018 +0000"
      },
      "message": "Merge \"Add ImageDecoder.ImageInfo.getMimeType\""
    },
    {
      "commit": "7fe2a370bcb29e3bd9509ee9686f8c8473e5f39f",
      "tree": "9d57eecdf298fc57a3f43b0fedfcb4636daab47b",
      "parents": [
        "260b9308afa51e4cad2eb33055964f5926db8c19",
        "b1cc8e64374832c8b296f609bebabff068ded460"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 12:53:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 10 12:53:04 2018 +0000"
      },
      "message": "Merge \"Additions and cleanups for ImageDecoder API\""
    },
    {
      "commit": "a13c47694fbe78f62252cd7d317ad4eff4e8868e",
      "tree": "d11553c391207bc3bc8593969525f79b12cf2219",
      "parents": [
        "151c52c009bf8c8c0d40a49a97042b6dc8880688",
        "76dc52ac36cfbe86ccc62e72fd9094bff2c42df0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 00:09:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 10 00:09:16 2018 +0000"
      },
      "message": "Merge \"Fix small but crashy edge case in Icon.scaleDown\""
    },
    {
      "commit": "edf26d6e40f0723e70d7dcd147a2a2ce07c7c1cc",
      "tree": "17bb337c732b79bf4254890becc806d46910dcdc",
      "parents": [
        "1fad09d4d3f43112abd842da4c94cf00fb1cb46d"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 09 16:55:24 2018 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 09 16:55:24 2018 -0500"
      },
      "message": "Rename onException to onPartialImage\n\nBug: 63909536\nTest: CTS: I8d1672180d8325ae1caf44f0bbf41036b94e6253\n\nIn ImageDecoder. The goal is to tell the client that there is a partial\nimage (which they can use if the callback returns true) and also allow\nthem to know why the image is partial.\n\nChange how the return value is handled. Instead of returning null, which\nis inconsistent with the rest of ImageDecoder, throw the Exception.\n\nChange-Id: I56c38a624c978aa6e6d00fc927b5e355bf9c718a\n"
    },
    {
      "commit": "1fad09d4d3f43112abd842da4c94cf00fb1cb46d",
      "tree": "674e9c5ee7f51ec1aa5bc1cdd284e4a9268e1249",
      "parents": [
        "b1cc8e64374832c8b296f609bebabff068ded460"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Dec 22 12:54:20 2017 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 09 16:54:22 2018 -0500"
      },
      "message": "Add ImageDecoder.ImageInfo.getMimeType\n\nBug: 63909536\nTest: CTS: Ib2877276da8464b5f3eef0bbb848de202c90e97e\n\nAllows a listener to determine the mimetype.\n\nChange-Id: I0d2aa32f2dbfb37dba97a896037c48814390273d\n"
    },
    {
      "commit": "b1cc8e64374832c8b296f609bebabff068ded460",
      "tree": "b97159f7378b955a5f3ae70dd2b19fd8fb4d020d",
      "parents": [
        "ed074fd70011cf804a14b5cf53ffd4b529c5f367"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Dec 22 11:56:59 2017 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Jan 09 15:52:49 2018 -0500"
      },
      "message": "Additions and cleanups for ImageDecoder API\n\nBug: 63909536\nTest: CTS: I0f36ce34c968fd7fae4d8edebabea3a421859615\n\nAdd overloads for null listener, byte[] without offset + length\nClean up comments\n\nChange-Id: I3dd1dae94cf1fe977d96fcae9b36cbed0adfe749\n"
    },
    {
      "commit": "5dfd8194b29aa15c7e17906ef0933d6f6ac10acb",
      "tree": "62d1d59b309bd56ba290ce86e5fa73b7871eedcb",
      "parents": [
        "7a085f9ea05126e959ab5de1ca810c1938072380",
        "ed074fd70011cf804a14b5cf53ffd4b529c5f367"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Jan 08 21:14:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 08 21:14:50 2018 +0000"
      },
      "message": "Merge \"Support using ImageDecoder with ContentResolver + URI\""
    },
    {
      "commit": "ed074fd70011cf804a14b5cf53ffd4b529c5f367",
      "tree": "86ee72779eb0ed8f5742d2dac992476c53e011c0",
      "parents": [
        "5c72a77bcaed8f399974f4edbf3d156a0ceb7cbb"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Dec 11 13:47:23 2017 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Jan 08 12:41:39 2018 -0500"
      },
      "message": "Support using ImageDecoder with ContentResolver + URI\n\nBug: 63909536\nTest: CTS: I0f36ce34c968fd7fae4d8edebabea3a421859615\n\nAdd ImageDecoder.createSource(ContentResolver, URI), allowing a client\nto decode images from files, content, resources, etc.\n\nPrefer using a file descriptor to using an InputStream so the input can\nbe cheaply seeked and rewound if necessary.\n\nMake ImageDecoder implement AutoCloseable to handle closing the input.\n\nMake decodeDrawable/decodeBitmap always return an object or throw an\nIOException. Avoid checking for a file in the Source constructor.\n\nFix a bug where inner Exception classes were not static.\n\nUpdate JavaInputStreamAdaptor to be usable by ImageDecoder:\n- previously it always swallowed exceptions. Allow them to propagate\n  (optionally) so that they can be reported back to the client.\n- Add refs to the InputStream and byte[]. ImageDecoder returns from\n  native and then uses the JavaInputStreamAdaptor again, making the\n  local refs go out of scope.\n- Hold on to the JavaVM and convert to the JNIEnv when necessary. Pass\n  local env pointers to avoid looking it up multiple times in one call.\n- If an exception is thrown inside the doRead() loop, return the number\n  of bytes successfully read.\n\nChange-Id: I869dad55521cf942efd010c06baf3f44c1c08374\n"
    },
    {
      "commit": "76dc52ac36cfbe86ccc62e72fd9094bff2c42df0",
      "tree": "7234c5f42a2de390cd67b9c6b757b86861e9c86b",
      "parents": [
        "ec397abf931a39ed1c3d36f0af4ee9a68b883b07"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Jan 04 17:50:18 2018 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Jan 04 16:55:24 2018 +0000"
      },
      "message": "Fix small but crashy edge case in Icon.scaleDown\n\nPlus a regression test which throws an Exception for the old version. It\nshouldn\u0027t be an issue in the real world because there\u0027s absolutely no\nreason any app should be creating 1920*3px icons.\n\nFound while porting the code somewhere else.\n\nTest: runtest -x ./core/tests/coretests/src/android/graphics/drawable/IconTest.java\nChange-Id: I1283d982507221914ddad1313e16f63af13e245a\n"
    },
    {
      "commit": "e72b5c5163d2928c61850e60f422aaf960ed2675",
      "tree": "ec7606f0c223f0a93575a34635898fbcf118ee8c",
      "parents": [
        "64d467ec0946d81bce182451838bbf4ca2e87616"
      ],
      "author": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Thu Jan 04 14:15:22 2018 +0000"
      },
      "committer": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Thu Jan 04 14:36:39 2018 +0000"
      },
      "message": "Update the ttc index attribute documentation\n\nThe CL updates the documentation of the ttcIndex attribute added for P,\naccording to the API review comments.\n\nBug: 71555180\nTest: none\nChange-Id: I44a617c4f0a10314008fe5d5b380c6a830f3e04f\n"
    },
    {
      "commit": "0c01dbf8f283b7bcaf6babf540a501735c73b4f5",
      "tree": "43505cbd64fc1e58f1650b498e06d4d0139a6d82",
      "parents": [
        "f7314652ed15cac317f7ddc8ddb034f77600e666"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Oct 20 14:08:11 2017 -0400"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Dec 19 20:22:17 2017 +0000"
      },
      "message": "ImageDecoder (BitmapFactory 2.0)\n\nBug: 63909536\nBug: 63908092\n\nTest: CTS: I0f36ce34c968fd7fae4d8edebabea3a421859615\n\nOne-pager:\nhttps://docs.google.com/document/d/1IWSdXb5O9lu-Zbj7SaNWo5pS7-FHlonFnqazjnecozM/\nDesign doc:\nhttps://docs.google.com/document/d/15S6DSAV4EwOuJLv29UC_9cdSGdPg3KvOJVn2EHoP3fw/\n\nImageDecoder is designed to streamline certain patterns of BitmapFactory\nuse:\n- choosing sample size based on actual dimensions\n- choosing a specific output size\n- post-processing (e.g. for rounded corners)\n- copying to HARDWARE\n- decode directly to ashmem\n- creating a Drawable\n- use as an alpha mask\n- save RAM (e.g. use RGB_565)\n\nIn addition, it will include new features:\n- animated drawables (TODO)\n- report failures *and* optionally create a partial image\n- crop\n\nAdd PostProcess to handle post-processing. It is separate from\nImageDecoder so that it may be used in the future by other commands that\nmight want something similar (e.g. capturing a View).\n\nConsolidate NinePatch code for sharing between BitmapFactory and\nImageDecoder.\n\nSome features left out of this CL:\n- Create from ContentResolver + URI\n- animation\n- report more info in ImageInfo\n- more overloads (e.g. null OnHeaderDecodedListener)\n\nChange-Id: Icf011dc1b97b492788e47cf51fcf8abe8e9c7b88\n"
    },
    {
      "commit": "45be1c4cdcc6570c2ca414d489106c121c9f6274",
      "tree": "8387e4d4052ded9cec57c85726872532752d94f4",
      "parents": [
        "eb0d3bc0ed685c1e479f95a16481dd9fd5d96f22"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Dec 15 18:44:43 2017 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Dec 15 18:44:43 2017 +0100"
      },
      "message": "Add surface/shown position to proto output\n\nChange-Id: I4fb16a520af182c8f77982646f6ac9ae82fd9173\n"
    },
    {
      "commit": "7bb9f374c07258039232711c49a743ea8dc982ff",
      "tree": "30f7e09fa513389b1b948528efaf2e1322adef59",
      "parents": [
        "3ddcbc6c539b93bb70bed2a6ec67f0fdbee4b654"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 07 16:52:09 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Dec 12 11:29:02 2017 -0800"
      },
      "message": "Tweak ripples\n\n* Fixes the ripple interpolator to match UX spec\n* Adjusts behavior if the ripple is re-sized mid-ripple\n  to look less bad\n\nBug: 63635160\nTest: mashed a bunch of buttons\n\nChange-Id: I26de59fe81372512b287a646ca7377d052227aee\n"
    },
    {
      "commit": "6b184d7a43d88511841407673448c64a114fdb4e",
      "tree": "748e3eca3919a7c409c15fc13ae3fa3fdeca90b8",
      "parents": [
        "aad6c9841c81b8eed80eb12dd2e79b81cc772461"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Dec 04 16:31:07 2017 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Dec 04 16:31:07 2017 -0800"
      },
      "message": "Private API to turn off anti-aliasing for VectorDrawable\n\nBug: 69322344\nTest: visual inspection on VectorDrawableTest with AA off. Jagged edges\n      that are otherwise smooth were spotted.\n\nChange-Id: Ib2dfbd3a941be0b4ff92b8458346f8c8f5015a4b\n"
    },
    {
      "commit": "0c453ccb87e0b5a4f4b318df01700c9a9a0da545",
      "tree": "c0578cad34a1e1b3fb1cad6b8abce860746f0dba",
      "parents": [
        "c0c6ee6b6fb6dc8c818c7886756bb8de7a0042a5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 16 13:44:35 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 16 16:32:43 2017 -0800"
      },
      "message": "Make ripples silky smooth\n\n* Updates press state ripple to match UX spec\n* Makes it ungodly silky smooth LIKE BUTTAH\n* Update hover \u0026 focus states to be closer to UX spec,\n  still needs a final pass.\n\nBug: 63635160\nTest: Clicked on a bunch of stuff\n\nChange-Id: I162ab9d8d669002f2ae511f93b5d9fe67f99c533\n"
    },
    {
      "commit": "220871a697290529278ed16db508eda8e12f3fc7",
      "tree": "bc13101b63c6fe39a9d92706ecb7ded7f98f5a9c",
      "parents": [
        "802f191b2b84a1b1b82c7f6f3268846084b35dfb",
        "98e12851336b7db16e583f9afac63ecc97465980"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "message": "Merge commit \u002798e12851336b7db16e583f9afac63ecc97465980\u0027 from\noc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.\n\nChange-Id: Ia7b8da4a00d215160e4a4fa40f6044208d1297b7\nMerged-In: I19846d2a3ee27aecbae2367a74ee49082eea154d\n"
    },
    {
      "commit": "828ff7e3ef032f3c3b149be9961fa39a979d2fd2",
      "tree": "4cca378419a88c94fe6379b28e65d43c2d6a3c12",
      "parents": [
        "7bb06e012a33c94c68b173bc8f276f78e0d60764"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Nov 14 01:01:29 2017 +0000"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Nov 14 01:03:50 2017 +0000"
      },
      "message": "Support insets on secondary displays\n\nIndroduced DisplayFrames object to track frames used to calculate\nwindow insets per display vs. at a global level in PhoneWindowManager.\n\nBug: 64148922\nChange-Id: I19f166920eba0a4f933a223a77e096bcc8dab0c1\nTest: bit FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests\nTest: go/wm-smoke\n"
    },
    {
      "commit": "7bb06e012a33c94c68b173bc8f276f78e0d60764",
      "tree": "38a8511a249fc050f074458d77721318f330a2f2",
      "parents": [
        "9bc2692939d4dececbfde5ea67df4594a7842bd1"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Nov 13 16:49:19 2017 +0000"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Nov 13 16:49:19 2017 +0000"
      },
      "message": "Revert \"Support insets on secondary displays\"\n\nThis reverts commit 9bc2692939d4dececbfde5ea67df4594a7842bd1.\n\nChange-Id: Ia065372e9e220e653b4729a290663c3536d99307\nFixes: 69241956\nBug: 64148922\n"
    },
    {
      "commit": "9bc2692939d4dececbfde5ea67df4594a7842bd1",
      "tree": "a5bbad1a5679d3a3b358045f9f9b9b17630427f1",
      "parents": [
        "5e22f57bc80e8447ce5a8cd8fe2ea9dce2ef8dba"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Nov 06 14:21:51 2017 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Fri Nov 10 04:57:30 2017 -0800"
      },
      "message": "Support insets on secondary displays\n\nIndroduced DisplayFrames object to track frames used to calculate\nwindow insets per display vs. at a global level in PhoneWindowManager.\n\nBug: 64148922\nTest: bit FrameworksServicesTests:com.android.server.wm.ScreenDecorWindowTests\nTest: go/wm-smoke\nChange-Id: I4a668d6c2dd0bfa666cb6acecf663cf83545ea87\n"
    },
    {
      "commit": "20866c140438a9aca3e1ad09fe646308678e9383",
      "tree": "13cfb8a0d73c19a5422e6ad4013a5b8a0dc75d19",
      "parents": [
        "b10dd4158875d6fe967a0fca687f8b305a69c480"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Oct 26 16:02:01 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Nov 07 14:13:41 2017 -0800"
      },
      "message": "Use enum class for FontVariation and update MinikinUtils\n\nThis CL contains followins:\n- Use enum class FontVariation instead of legacy enum.\n- Store FontStyle in MinikinPaint.\n\nBug: 65024629\nTest: minikin_tests\nChange-Id: I86bf64fd5d9a8c08eff47db851fa4655da84b1e4\n"
    },
    {
      "commit": "4450e53ee08889c0f65e5db91bec1374c94aa852",
      "tree": "546f96477fb96e263b21d6aeec4a534bbe47700c",
      "parents": [
        "c77b84668813b876a05a4e07ca86cc74912988de",
        "f8fb25ca040327dedc45d97cbfb4cf4da4f0fe1b"
      ],
      "author": {
        "name": "Andrew Solovay",
        "email": "asolovay@google.com",
        "time": "Tue Oct 31 16:31:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 16:31:12 2017 +0000"
      },
      "message": "Merge \"docs: Fix documentation typo\" into oc-mr1-dev\nam: f8fb25ca04\n\nChange-Id: I450ba09a2f6efb155601cd08fe9e1d0c35e9fec5\n"
    },
    {
      "commit": "d2b9d2f31463916c1c98ea4c43c14dc27b50c94b",
      "tree": "bdd8e87b752556f1e1f7bc90ee106564e72e5a50",
      "parents": [
        "b1748f87b16d9fbbdbba05f0b20e1e34f3400c48"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 31 16:08:42 2017 -0700"
      },
      "committer": {
        "name": "Andrew Solovay",
        "email": "asolovay@google.com",
        "time": "Mon Oct 30 17:29:43 2017 -0700"
      },
      "message": "docs: Fix documentation typo\n\nCPd from master so we can update the website.\n\nTest: make ds-docs\nBug: 65213121\nChange-Id: I5bfc7074a42ec0ef5cd624b0bb72234e072684d3\n(cherry picked from commit d4012d6505c8b5368ee4607d54fb98d0a96ec136)\n"
    },
    {
      "commit": "3de6335137faf3aa836861025dcbca19ba0f7447",
      "tree": "f28f36303f15df7b5c2ac7813f652b1cae7aab3a",
      "parents": [
        "73f6b8a6fc8bf211b8a15b9f4fbccc28c5df6090",
        "a1a1cfa40724586fb10499908c4082b5b53b36a4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 30 23:58:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 30 23:58:47 2017 +0000"
      },
      "message": "Merge \"Add more gradient info in VectorDrawable\u0027s javadoc\""
    },
    {
      "commit": "690e62bb6849aa7ad2d9e012138e8a5054059ed8",
      "tree": "554554cde5d4cc07830fcb337ef1b77e9e567504",
      "parents": [
        "584886319aca5f6a183ea368e2888418b35a6660"
      ],
      "author": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Thu Oct 19 20:47:15 2017 +0100"
      },
      "committer": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Mon Oct 30 11:48:54 2017 +0000"
      },
      "message": "Enable variation settings for fonts in XMLs\n\nBug: 37853920\nTest: bit FrameworksCoreTests:android.content.res.FontResourcesParserTest\n\nChange-Id: I1acf9767fb1cecc5f4982b79405f92280b31bfa7\n"
    },
    {
      "commit": "a1a1cfa40724586fb10499908c4082b5b53b36a4",
      "tree": "ba0975dd9838577251907b4beb5d29430073f216",
      "parents": [
        "08fc60206ee0266509cdb8a5158b2ea732027ce1"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 25 16:25:08 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Oct 27 15:48:17 2017 -0700"
      },
      "message": "Add more gradient info in VectorDrawable\u0027s javadoc\n\nb/30269243\nTest: make offline-sdk-docs -j24\n\nChange-Id: Ie9a353c05508b818efd7e401c2624b9be5dbdcc2\n"
    },
    {
      "commit": "301bf35e2df9e3f2efa5dbf1c2df69e10be7f6e8",
      "tree": "ff127ed004f4707c41fc2d6261b38831f43e6af6",
      "parents": [
        "d2ff3244dc64b05b3b9e2bedbdd120a8dfdde022",
        "5c9e47d28b249395fa74787065f83769b886c036"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Oct 19 16:12:57 2017 +0100"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Thu Oct 19 15:33:17 2017 +0000"
      },
      "message": "resolve merge conflicts of 5c9e47d28b24 to oc-mr1-dev-plus-aosp\n\nTest: This merge conflict was automatically resolved by meld.\n      The automatic resolution of the same merge conflict by meld\n      from cherrypicking this CL into internal-master has passed\n      Treehugger (and was already submitted).\nExempt-From-Owner-Approval: Resolving merge conflicts with no deltas\nChange-Id: I61f15aeb79c1ad26cc7c51be2af59ecb7b672a7b\n"
    },
    {
      "commit": "07efe116b1055ebead525cc365f22114913a4e9a",
      "tree": "5e3c0e09cae61cb0915990435eb5b14f61451377",
      "parents": [
        "1b4a0abdbb7ff8218de7592301a7d5d2baab89cb",
        "5f04db96b3a397b7c1a96e2c768bdddab6080159"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Oct 19 14:25:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 19 14:25:12 2017 +0000"
      },
      "message": "Merge \"Framework: Prefer android.system.Os over libcore.io.Libcore.os\"\nam: 5f04db96b3\n\nChange-Id: If85216d03022708787a7218e494434453d5548e3\n"
    },
    {
      "commit": "208f0970d57808a346acf79cdeb8bbcd1a060fb8",
      "tree": "0b51c61d40182e6681cf7a487efc92411a45e56d",
      "parents": [
        "9069f179817f6bae718955f2d9edf8293c312726",
        "96aac9b3754b9f85b3db87435d890c43092be20d"
      ],
      "author": {
        "name": "Joachim Sauer",
        "email": "jsauer@google.com",
        "time": "Thu Oct 19 11:48:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 19 11:48:58 2017 +0000"
      },
      "message": "Merge \"Framework: Prefer android.system.Os over libcore.io.Libcore.os\""
    },
    {
      "commit": "6217e37d30042fd78d17a8d5145f578279d60808",
      "tree": "292f5e2199737fdd11d57289b564ea65fb705976",
      "parents": [
        "e994b4b584a23be4574b725f6b5e654535f8e1d0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 17 20:26:20 2017 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Oct 18 14:53:57 2017 +0100"
      },
      "message": "Framework: Prefer android.system.Os over libcore.io.Libcore.os\n\nThis is a pure refactoring with no a behavior change other than\nthat these calls now go through android.system.Os, which immediately\ndelegates to Libcore.os.\n\nThis is a first step towards separating framework (via\nandroid.system.Os) vs. libcore (via Libcore.os) clients of these\nlow level APIs. Separating these is a prerequisite towards moving\nthe API parts of android.system into framework, and moving the\nrest into a different package in libcore.\n\nTest: Treehugger\nBug: 67901714\n\nChange-Id: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81\nMerged-In: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81\n"
    },
    {
      "commit": "96aac9b3754b9f85b3db87435d890c43092be20d",
      "tree": "c333778ddda0cac49771e17d7926bf4c8f04ced6",
      "parents": [
        "aab5a8a087f41373682dfb1d0a37f3d24435c15b"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 17 20:26:20 2017 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Oct 18 10:35:22 2017 +0100"
      },
      "message": "Framework: Prefer android.system.Os over libcore.io.Libcore.os\n\nThis is a pure refactoring with no a behavior change other than\nthat these calls now go through android.system.Os, which immediately\ndelegates to Libcore.os.\n\nThis is a first step towards separating framework (via\nandroid.system.Os) vs. libcore (via Libcore.os) clients of these\nlow level APIs. Separating these is a prerequisite towards moving\nthe API parts of android.system into framework, and moving the\nrest into a different package in libcore.\n\nTest: Treehugger\nBug: 67901714\n\nChange-Id: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81\n"
    },
    {
      "commit": "e34ad1871b9f7da309af0b4e11b93b1be834f38b",
      "tree": "0f20a9c12003965b962ff2b235b7bb9b6d8f4e1e",
      "parents": [
        "96ba9c44224b87c6ddc93a46b74c25d8119d844a"
      ],
      "author": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Thu Oct 12 17:22:33 2017 +0100"
      },
      "committer": {
        "name": "Mihai Popa",
        "email": "popam@google.com",
        "time": "Fri Oct 13 12:44:21 2017 +0100"
      },
      "message": "Enable the public TTC index attribute for fonts\n\nThis change adds support for specifying the TTC index on font entries,\nrelevant in the context of .ttc font files used to deliver multiple\nfonts in the same file.\nBug: 37853920\nTest: adb shell am instrument -w -e class android.content.res.FontResourcesParserTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: I3f74e87dec78e1f5a68ccead80b0f637af1aa7a3\n"
    },
    {
      "commit": "8c6f329ea947c9ed90286ef26976b7cc376d31af",
      "tree": "74b00a08aeb4f2560a4f3f86d2010b6d009c75c6",
      "parents": [
        "5ddf4c2570ee9d42dab2c37737282cf3f744e031",
        "5d3501172c9e2329f46bc6bb53050fd2ec7d2305"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 11 19:57:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 11 19:57:52 2017 +0000"
      },
      "message": "Merge \"Add missing annotations\""
    },
    {
      "commit": "5d3501172c9e2329f46bc6bb53050fd2ec7d2305",
      "tree": "10881fc2a11585e3d37d05f5c111a837a0dd0e6c",
      "parents": [
        "a08d748932e65e3fc6bc3b936419a1b6aedbd74e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 11 10:47:12 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 11 10:47:12 2017 -0700"
      },
      "message": "Add missing annotations\n\nBug: 67608144\nTest: make offline-sdk-docs verified docstring shows up\nChange-Id: I22bcfcc58888fa2d4c479e4687afb2fabd5b2f71\n"
    },
    {
      "commit": "65d56ec5fef1a4777a4b66c54fe6f387403bc220",
      "tree": "f66cd7b49a6ba340d5c13c3bab983a15c749d5fb",
      "parents": [
        "404f23d6d0950754f4d4d65606379889c922a3eb"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Oct 09 16:24:21 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Oct 09 16:28:04 2017 -0700"
      },
      "message": "Matching interpolator for ripple\n\nMatching the interpolators to be declerate on both enter and exit.\nAccording to the UX team feedback.\n\nb/63635160\nTest: demo app, settings app and calculator app\n\nChange-Id: I49b88ef73f0bd45cd2b2c26feb2443633f171575\n"
    },
    {
      "commit": "bcc64e2cf47fe53bac1cea1548fd2049e4e38be6",
      "tree": "fe5e6dedd4891c8cad81bd8cb10d2f3a12b12b7a",
      "parents": [
        "5467373b89f69342dbf6627d53b0eb0c377c7b65"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 04 15:45:44 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Oct 06 10:00:10 2017 -0700"
      },
      "message": "Update ripple according to UX feedback.\n\n1. Consistent enter and exit duration and speed. Both bounded and\nunbouned. It used to be that exit is much faster than enter.\n\n2. Instead of starting from 0 size radius, we start from some size\naccording to the current drawable\u0027s bound.\n\nb/63635160\nTest: demo app, settings app and calculator app\n\nChange-Id: I1135fefc9d9103f170ab889269b38a9900835450\n"
    },
    {
      "commit": "6cf001e8d5e06d1588d58426f86999c4b00e457e",
      "tree": "ea2390f8b8c5e71f84ae3aab853f9abcb6de1d3a",
      "parents": [
        "21e6180afd260682f91e71d6d0586372987143ea",
        "57e79cf0a3cbbc6f34fd338c7f3f491dc39ec93b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Oct 02 22:24:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 02 22:24:38 2017 +0000"
      },
      "message": "Merge \"ImageFormat: Document units/coordinate system for DEPTH_POINT_CLOUD\" into oc-mr1-dev am: 56afee3c1f\nam: 57e79cf0a3\n\nChange-Id: Ic43ab67194613c4888ad5ecf54b4ff66171df31d\n"
    },
    {
      "commit": "3e99a5fcb98070b6794a50a788e7ffc74ba832de",
      "tree": "bfa207eb4bbde58178d3ca3e8492e50607644d12",
      "parents": [
        "79ef7d950d39ea0823d62bc9bd3de3202e76fa85"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Oct 02 11:39:41 2017 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Oct 02 11:39:41 2017 -0700"
      },
      "message": "ImageFormat: Document units/coordinate system for DEPTH_POINT_CLOUD\n\nFor camera devices, DEPTH_POINT_CLOUD coordinates are in meters and\nare in the camera\u0027s local coordinate system.\n\nTest: Built docs, manually verified output.\nBug: 67308479\nChange-Id: I028e13a2fb79688a7ce440f905fa82826fc38a03\n"
    },
    {
      "commit": "0df0cd3c820680938188a2b1e70a37b3c5d0cdf9",
      "tree": "ad92a865f91cd4dee3bb53608f26cb0b515bfff0",
      "parents": [
        "342cab74594650554a16d47ef121f877c37be3b0",
        "ac4c063eb9d8065aad7538bdcc9a06ea9eb95bdb"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 29 16:20:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 29 16:20:20 2017 +0000"
      },
      "message": "Merge \"Don\u0027t show the background when pressed and focus\""
    },
    {
      "commit": "ac4c063eb9d8065aad7538bdcc9a06ea9eb95bdb",
      "tree": "2b7bcfce955833f204499068b0d8b04fb87074c0",
      "parents": [
        "5cfb3d7e984d578855c408c695dcf3c45b5795ea"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Sep 28 15:02:33 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Sep 28 16:38:51 2017 -0700"
      },
      "message": "Don\u0027t show the background when pressed and focus\n\nAccording to the spec, the foreground will cover the whole area at\nthe end of expansion, and do not show the background.\n\nIn bounded case, the ripple exit should start from the current value.\n\nb/63635160\n\nTest: demo app, calculator and settings\nChange-Id: I64d8b941e2b28ea11165d29de3e6ef77d5ee78f5\n"
    },
    {
      "commit": "9a30254241a91ab9b05e32639a9ad6b965961da5",
      "tree": "0d2448ac1971efd55d960fa73ebeab9baff3985f",
      "parents": [
        "ed0665f3a3ea884e8568eccf0d9dfe687c979531",
        "5cfb3d7e984d578855c408c695dcf3c45b5795ea"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Sep 28 16:26:27 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 28 16:26:27 2017 +0000"
      },
      "message": "Merge \"Trigger circular ripple when touched down, instead of up.\""
    },
    {
      "commit": "bfc7a118fcbfb01f39bd042f9bff1d57ae0db743",
      "tree": "5dfdfbbe4375784ea21c7c81446e797dd16aef57",
      "parents": [
        "ef48ae837fd77d45b042cbb6d0350ceceb988fb1",
        "5fa85b7e2e7000f9b36b91cbc66f311c60cf2ca4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 27 19:56:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 27 19:56:58 2017 +0000"
      },
      "message": "Merge \"Add nullptr check\" into oc-mr1-dev am: b20694ab00\nam: 5fa85b7e2e\n\nChange-Id: Ieb93edf167a158a1f1759c6ffc6f492eac0b4144\n"
    },
    {
      "commit": "3885bf6f048c98148d6c1962ff5c8cef7abe8625",
      "tree": "222f2a42fe07bb2d3b2b90d10db255cfdfcd9dcc",
      "parents": [
        "73c93f02f77e81fdfdbfd7594fc7d7f12c7cf19a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 27 09:30:30 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 27 09:30:30 2017 -0700"
      },
      "message": "Add nullptr check\n\nBug: 65717856\nTest: builds\nChange-Id: I188d3366e956f087c6317ae0b56d5fb19a20708d\n"
    },
    {
      "commit": "484851b9146d5e67a652c253d06ab8e17ebc74cb",
      "tree": "83a0b7ff123b1f1705b690deddc1ca9ee06721b7",
      "parents": [
        "5fdb88c70a32dbd8e24c498b7358a46c3cb8cbba"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Sep 22 16:03:27 2017 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Sep 25 13:31:04 2017 +0200"
      },
      "message": "Improve window manager layout attribute dumping\n\nTest: adb shell dumpsys window\nChange-Id: I9c76e6a6950265b49667cc19998282ef0c682815\n"
    },
    {
      "commit": "3d30ca1d3c9cbb8e7c6f4194b7e5f79fd44cd0b3",
      "tree": "839703f4c764d960d8951f7882932450fb9a89d8",
      "parents": [
        "e8041834b1de4322456c40436240650482217bc9"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Sep 13 10:32:50 2017 -0700"
      },
      "committer": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 22 19:44:24 2017 +0000"
      },
      "message": "Add systrace for VectorDrawable inflation and draw\n\nWe didn\u0027t trace the draw from cache.\nHere we add trace for draw into bitmap, which is normally heavy.\n\nfix: 65060698\nBug: 65060698\nTest: run test app and get systrace and check\n\nChange-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e\n(cherry picked from commit cf0c41dbc221c2619212c7e25e6d90a9c4d05b05)\n"
    },
    {
      "commit": "5cfb3d7e984d578855c408c695dcf3c45b5795ea",
      "tree": "b3e8ab72befdb4806491b943d0b062c45ce5bc5e",
      "parents": [
        "6d17e6586e77e1f2409df469c2c4ddfeb64e2369"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 22 09:27:11 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 22 11:26:40 2017 -0700"
      },
      "message": "Trigger circular ripple when touched down, instead of up.\n\nThis will also show circular ripple when focus is on.\nPreviously, bounded case behaved differently than unbounded case. Now\nthey are consistent, too.\n\nb/63635160\nTest: sample app and calculator app\n\nChange-Id: I5c96c8079c789d6e571af2c2356e3ce6add37b46\n"
    },
    {
      "commit": "56c093cad20b1a5c14c8656edf63048c18fd5252",
      "tree": "75b8404386f111270d0bdd868436ba492d130340",
      "parents": [
        "2eba753d38a1826e697d16010dd9386186d99911",
        "cf0c41dbc221c2619212c7e25e6d90a9c4d05b05"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 15 16:55:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 15 16:55:56 2017 +0000"
      },
      "message": "Merge \"Add systrace for VectorDrawable inflation and draw\""
    },
    {
      "commit": "10c6d8b68ed18aad06cec22aa18af63d22023a56",
      "tree": "7781a8e1e6d169d23dd3479217117dc70ef6f0c2",
      "parents": [
        "6d71e1363063fa12d1b5b28e59f16da0d64c7034",
        "7a9b7da0514004d98beeff49072a3f1d167f6060"
      ],
      "author": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Fri Sep 15 11:46:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 15 11:46:10 2017 +0000"
      },
      "message": "Merge \"Merge \"Throw if BitmapFactory.Options.inBitmap is HARDWARE\" into oc-mr1-dev am: cebe432650\" into oc-mr1-dev-plus-aosp\nam: 7a9b7da051\n\nChange-Id: If0cad94709d037fd47a96870d7b4f56622e9131a\n"
    },
    {
      "commit": "cf0c41dbc221c2619212c7e25e6d90a9c4d05b05",
      "tree": "46b9526090b931ed2a74472dea2568e9cef7d909",
      "parents": [
        "6d17e6586e77e1f2409df469c2c4ddfeb64e2369"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Sep 13 10:32:50 2017 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Sep 14 15:56:50 2017 -0700"
      },
      "message": "Add systrace for VectorDrawable inflation and draw\n\nWe didn\u0027t trace the draw from cache.\nHere we add trace for draw into bitmap, which is normally heavy.\n\nfix: 65060698\nTest: run test app and get systrace and check\n\nChange-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e\n"
    },
    {
      "commit": "08beea71c9c68a65e078e476f4747b66cf20128f",
      "tree": "ccf17390a3d7fc40259f1af41206f65d51db6049",
      "parents": [
        "5dab2f297c9e51640114eaa0f7bac1b2044a4d0a"
      ],
      "author": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Thu Sep 14 11:41:54 2017 -0700"
      },
      "committer": {
        "name": "Sergey Vasilinets",
        "email": "sergeyv@google.com",
        "time": "Thu Sep 14 21:13:58 2017 +0000"
      },
      "message": "Throw if BitmapFactory.Options.inBitmap is HARDWARE\n\nTest: BitmapRegionDecoderTest#testHardwareBitmapIn\nbug:34415265\nChange-Id: I58061504dd42ba918f89e1e5daf668f7601ca8d3\n"
    },
    {
      "commit": "0390655dbac012a9b0b9ed0e9292819893e568d2",
      "tree": "a3ee4f9684d3ca46e70506e0bebd6363bed70710",
      "parents": [
        "b8688916714f49dd5d53163e4ea15b21c4491f0b",
        "d4012d6505c8b5368ee4607d54fb98d0a96ec136"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 01 01:35:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 01 01:35:28 2017 +0000"
      },
      "message": "Merge \"Fix documentation typo\""
    },
    {
      "commit": "d4012d6505c8b5368ee4607d54fb98d0a96ec136",
      "tree": "af53dda1b6e5557d8d5160ee588bb4b79ea0ffc0",
      "parents": [
        "cbae716bed5af9fc5009f5da11c2a319fa72c677"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 31 16:08:42 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 31 16:08:42 2017 -0700"
      },
      "message": "Fix documentation typo\n\nTest: compiles\nBug: 65213121\nChange-Id: I5bfc7074a42ec0ef5cd624b0bb72234e072684d3\n"
    }
  ],
  "next": "7bc18b20fa1a175e565532a67cd015ff1f9c0841"
}
