)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "7bc18b20fa1a175e565532a67cd015ff1f9c0841",
      "tree": "f3a0da4e920da9b13c8c1b56831765918f44bf76",
      "parents": [
        "9f5e99159056da901aefc4ac4ff26aa382a23765"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Aug 28 15:13:09 2017 -0700"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Aug 29 08:22:15 2017 -0700"
      },
      "message": "Deal with finalize() after failed constructor\n\nIf the constructor throws an exception, the object will still be\nfinalized. Hence we have to make sure to set objects that are cleaned up\nto 0/null and clean up everything else. Otherwise the finalizer might\ndouble clean up a failed PdfRenderer.\n\nIt also appears that the Pdfium error state is only set if a open-doc\nfunction fail. Hence remove it in every other case. Otherwise successes\nmight read the error of the last call.\n\nFixes: 63875707, 37052344\nTest: cts-tradefed run singleCommand cts-dev -m Pdf --test\u003dandroid.graphics.pdf.cts.PdfRendererTest\nChange-Id: I6d9fc26be768ba1e338344740e340cf9b56386e9\n"
    },
    {
      "commit": "1d4be040e06a11d750c364bac856120cbcc03669",
      "tree": "af61a1ffa9083ec3b1cdbaff04a41779b774eefd",
      "parents": [
        "bb034af696961325b643a0c36a32aba211e13326",
        "938e884a1fcc385dba5a41475aad76d8b7189609"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 25 04:33:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 25 04:33:31 2017 +0000"
      },
      "message": "Merge \"Avoid setting high contrast in every view draw\""
    },
    {
      "commit": "938e884a1fcc385dba5a41475aad76d8b7189609",
      "tree": "82b62e00c04d34ec9b9118da40f78c6c666a4fee",
      "parents": [
        "3a58025684a8c379d64bd9968f6549bb11efe753"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 13:41:59 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 16:15:58 2017 -0700"
      },
      "message": "Avoid setting high contrast in every view draw\n\nTest: high contrast text still works\nChange-Id: I6674d1aca8dddf7eb9725a5346aed12ef1dbc195\n"
    },
    {
      "commit": "4a40e0febf3de60c54c19797aecd3c698b770699",
      "tree": "833617138784df346c4ee6327fa6f7fdc1dad048",
      "parents": [
        "b2fb182085686ea72ee4a1364d0399ba236f4ec5"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Aug 17 17:01:27 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Aug 23 14:41:25 2017 -0700"
      },
      "message": "Make Typeface.create thread safe.\n\nTypeface.create has not been thread-safe. This CL makes it thread safe.\nAt the same time, reorganize cache and lock in Typeface.\n\nBug: 64606109\nTest: bit FrameworksCoreTests:android.graphics.TypefaceTest\nTest: bit CtsGraphicsTestCases:android.graphics.cts.TypefaceTest\nChange-Id: Id18e9b8bfab508a26fc0c83af6b1ca97e132b732\n"
    },
    {
      "commit": "737dfead64dd24a431beff85b685594dc0efb49a",
      "tree": "544614313b240caf09ed181859b57a6027f5b1fe",
      "parents": [
        "980d88d9a70451c8caec882e4488e38c90427c1f"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Aug 10 11:32:24 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Aug 17 12:10:31 2017 -0700"
      },
      "message": "Support extra linespacing based on fallback fonts\n\n* Increase the ascent and descent of individual lines in StaticLayout\n  as needed, if any fallback fonts that end up getting used call for\n  it. For backward compatibility, this is hidden behind a builder\n  flag.\n* Document in Paint.java that the returned parameters are only for\n  the default font, and a layout may need more space based on\n  fallbacks used.\n\nAlso update for changes in minikin API:\n\n* MinikinFont now requires a method for getting vertical extents\n  (ascent, descent, and line gap).\n* minikin API now allows asking for vertical extents of laid out\n  text.\n* minikin API\u0027s LineBreaker now returns ascents and descents for each\n  line.\n\nFinally, added performances test for creating a StaticLayout.\nFollwing are the numbers on a marlin with a stable clock before and\nafter this CL.\n\nFor fixed text almost always hitting the cache:\nBefore: mean\u003d260684 median\u003d260188 min\u003d258532 standardDeviation\u003d1897\nAfter:  mean\u003d262432 median\u003d261509 min\u003d260429 standardDeviation\u003d2185\n\nFor random text almost never hitting the cache:\nBefore: mean\u003d5971827 median\u003d5991126 min\u003d5886871 standardDeviation\u003d83724\nAfter:  mean\u003d6337093 median\u003d6317010 min\u003d6311222 standardDeviation\u003d40213\n\nBug: 28963299\nBug: 29063863\nBug: 32057121\nBug: 37756858\nTest: bit FrameworksCoreTests:android.text.\nTest: bit CtsTextTestCases:*\nChange-Id: I482a98ff8f472e8bab4f0ba9d1d7b368858038ff\n"
    },
    {
      "commit": "af03df6a7a93c832e0bc77b88607ef9161f0791b",
      "tree": "80fc218e3ad1c988468fb683ba73ddee804a5f6c",
      "parents": [
        "211ec527d65cc218fbc86b97d358f72f3b60c17b"
      ],
      "author": {
        "name": "Steven Timotius",
        "email": "stimo@google.com",
        "time": "Tue Jul 18 16:56:43 2017 -0700"
      },
      "committer": {
        "name": "Steven Timotius",
        "email": "stimo@google.com",
        "time": "Mon Aug 14 17:06:17 2017 -0700"
      },
      "message": "Update WindowManager to output dumpsys in protobuf format\n\nImplement enough functionality in protobuf dumpsys to replicate\nold functionaltiy in android.server.cts.WindowManagerState\n\nTest: cts-tradefed run commandAndExit cts-dev --module CtsWindowManagerHostTestCases\ncts-tradefed run commandAndExit cts-dev --module CtsServicesHostTestCases\nChange-Id: Ib527ab3f44620a08cf03b77c37c2bae883d90e13\n"
    },
    {
      "commit": "c9c6ee667f9282fdfa1cbab4ff7215ee92ad34b3",
      "tree": "17d607704a2be8230e2a66fcae92a587eb9f4024",
      "parents": [
        "db01c43523eed9d435df2a0832ccc58d1e219fa3",
        "99975a3e25e11f5c5958d8a901d37902087c75fd"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Aug 11 23:27:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 11 23:27:50 2017 +0000"
      },
      "message": "Merge \"Support multiple languages per font in fonts.xml\""
    },
    {
      "commit": "99975a3e25e11f5c5958d8a901d37902087c75fd",
      "tree": "a78def3c7c7b984a6e3668879d08e3d25595ec3e",
      "parents": [
        "a7d731d5fecbac339a37ad963253b651b1ba7046"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Wed Aug 09 09:42:20 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Aug 11 12:34:26 2017 -0700"
      },
      "message": "Support multiple languages per font in fonts.xml\n\nMinikin already supports multiple languages specified per font in\nI7f13b51464c9b01982bb573251d77052b9ddbd70. This CL adds a couple of\nsuch cases into fonts.xml and clarifies in the method and the\nvariable names and parameters that the frameworks is handling a\nmulti-language string when it is.\n\nFixes: 26687969\nTest: make -j checkbuild\nTest: bit FrameworksCoreTests:android.graphics.TypefaceSystemFallbackTest\nChange-Id: Ifa540a95f87921983f9069330d1dd0892538a8df\n"
    },
    {
      "commit": "891f481ef8ab3fd26f68602f634bd0b73f42005f",
      "tree": "4bcafbd84715d4e4a8b67178c2ed0a50120282b3",
      "parents": [
        "e685cc06a81e4e91d2f9566c094b8c4829c073a7",
        "318ca04079bd6242cb6186d9005b9caeee22e845"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 08 19:48:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 08 19:48:05 2017 +0000"
      },
      "message": "Merge \"Refactoring: Deprecate Paint.mNativeTypeface.\""
    },
    {
      "commit": "318ca04079bd6242cb6186d9005b9caeee22e845",
      "tree": "23f517b54d6d9fe3e2ae4cacdaac3a94cee18035",
      "parents": [
        "3bf594f0643010d9f2e94777ea66e2d414bf3e4f"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Aug 01 16:36:18 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Aug 08 18:07:28 2017 +0000"
      },
      "message": "Refactoring: Deprecate Paint.mNativeTypeface.\n\nBug: 64269689\nTest: m checkbuild\nTest: bit CtsGraphicsTestCases:*\nTest: bit CtsViewTestCases:*\nTest: bit CtsTextTestCases:*\nChange-Id: Idc9f2b4612741be949204cd06efc41e1738d6587\n"
    },
    {
      "commit": "e88b5df5b7aaf5a5f654805eb5e5e4c2f09afaa8",
      "tree": "95808acdc5eb72364338783e0016bac5f4a477c3",
      "parents": [
        "a19cd51d2c511777201c09e258a4e8286249fd9a"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Jul 25 13:52:57 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Aug 07 16:22:00 2017 -0700"
      },
      "message": "Make ellipsize retry if text doesn\u0027t fit\n\nThis fixes the cases where the replacement of parts of text with\nellipsis may result in more-than-expected width of text due to\ncontextual width changes in the font, such as kerning or Arabic\nshaping.\n\nThe calculations in TextUtils.ellipsize() and StaticLayout are fixed\nto recalculate the new width and reduce it further until the text\nactuall fits. BoringLayout and DynamicLayout get fixed too since\nthey use the other two implementations indirectly.\n\nAlso reverse a recently-introduced incorrect check for\nmulti-character ellipsis in Layout.java.\n\nFixes: 31537595\nFixes: 64156587\nTest: Manual (Arabic edge cases ellipsize correctly)\nTest: bit CtsTextTestCases:*\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nTest: bit CtsWidgetTestCases:android.widget.cts.EditTextTest\nTest: bit CtsWidgetTestCases:android.widget.cts.CheckedTextViewTest\nTest: bit CtsWidgetTestCases:android.widget.cts.AutoCompleteTextViewTest\nTest: bit CtsWidgetTestCases:android.widget.cts.MultiAutoCompleteTextViewTest\nTest: bit FrameworksCoreTests:android.text.\nTest: adb shell am instrument -w com.android.documentsui.tests/android.support.test.runner.AndroidJUnitRunner\nChange-Id: Iaddcc8b01c78d477e2c29b339d321c9631426f34\n"
    },
    {
      "commit": "762dc8bdaec8a3ac32874f6aaa67e2063439445f",
      "tree": "e0d577d0d4119286c49e97898a38a789a69ba201",
      "parents": [
        "e3abb1fff169c64e6d88b4865d0c725a149802f1"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Jul 31 15:09:37 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Aug 01 02:04:18 2017 +0000"
      },
      "message": "Introduce new public API for specifying exact weight.\n\nAdding Typeface.create(Tyepface, int weight, boolean italic).\nThis API is a most primitive API for specifying exact weight value\nfor drawing text.\n\nTest: CtsGraphicsTestCases:android.graphics.cts.TypefaceTest\nBug: 63135308\nChange-Id: I5766870f68026fd1b13815e794f5df243cd8c912\n"
    },
    {
      "commit": "065c59beafb89d8a67f6cb39313fc812133d4445",
      "tree": "538b52941ef4de3a6dc771033b67c70f60b055dc",
      "parents": [
        "c3f71b61059bbe92b1aedf13db266bb436071eec"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Jul 25 14:28:30 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Jul 26 22:21:14 2017 +0000"
      },
      "message": "Revert \"Implement family fallback.\" DO NOT MERGE\n\nThis reverts commit 0d253e46aa0b4cb2ea56e220812aeab92de64ae1.\n\nThe original CL changed Typeface internal methods and broke\nTypefaceCompatApi26Impl in support library which uses reflections.\nIdeally, TypefaceCompatApi26Impl must fall back to public API\nimplementation but due to lack of method availability check, it ended up\ncrashing the application.\n\nThe original patch didn\u0027t change any behaviors in MR1, so reverting\nthat change is the best solution for MR1.\n\nBug: 64033594\nChange-Id: Ie86afeb1b809e57915d62c1db5a70c8d210d2354\nTest: N/A\n"
    },
    {
      "commit": "89e4c1ce1791413d44a87109402433d788e34289",
      "tree": "54ecc5a08870e1df6a23536de6efb4924d839e55",
      "parents": [
        "2b65b12907f41200fd634855fd1c0bfcf8a96c96",
        "42673c33ee05af1cd792aa8c8ed55f17a79da73c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 21 08:08:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 21 08:08:31 2017 +0000"
      },
      "message": "Merge \"Refactor TextUtils.join() and add documentation\""
    },
    {
      "commit": "42673c33ee05af1cd792aa8c8ed55f17a79da73c",
      "tree": "45fbc9174a67d25a8ed6041b8f84eb6df15f08b6",
      "parents": [
        "34dc4c1f0719f2790488e3bf23da20f93d835c2a"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jul 20 15:23:33 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jul 20 17:22:30 2017 -0700"
      },
      "message": "Refactor TextUtils.join() and add documentation\n\nAdded documentation to clarify what happens in the case of null or\nempty arguments.\n\nChange-Id: I694dc0f6a6d95ab6ca7ed95b51d81938618eb75f\nFixes: 36861796\nTest: bit CtsTextTestCases:*\nTest: bit CtsGraphicsTestCases:android.graphics.cts.FontVariationAxisTest\n"
    },
    {
      "commit": "298bb2995b7544793006c0f93953c7aac2f08d61",
      "tree": "da9ed7c53a18256494f79a63425198d38992f580",
      "parents": [
        "d57fcca82343d276e9d35e86bd7039f19db819a1"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 13 13:34:00 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 20 23:40:44 2017 +0000"
      },
      "message": "Support font resource in TextAppearanceSpan\n\nTo be able to parcel/unparcel Typeface, keep it in static context.\n\nBug: 62850669\nTest: Manually done\nTest: bit CtsTextTestCases:android.text.style.cts.TextAppearanceSpanTest\nChange-Id: I408cd33b98d8bb13776560231d1eeaac0a7c6bf8\n(cherry picked from commit c49ee3bde904b1dcce2d605477ed07278be22561)\n"
    },
    {
      "commit": "c49ee3bde904b1dcce2d605477ed07278be22561",
      "tree": "2f767239b28c0367e22317d2ceadf6b29a09461a",
      "parents": [
        "a73f5e6bffefc4741bc1814a4e3e002c936f890b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 13 13:34:00 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 20 12:01:05 2017 -0700"
      },
      "message": "Support font resource in TextAppearanceSpan\n\nTo be able to parcel/unparcel Typeface, keep it in static context.\n\nBug: 62850669\nTest: Manually done\nTest: bit CtsTextTestCases:android.text.style.cts.TextAppearanceSpanTest\nChange-Id: I408cd33b98d8bb13776560231d1eeaac0a7c6bf8\n"
    },
    {
      "commit": "d0426628f60d063836c0dce691d4698b12434724",
      "tree": "654b147dc46f74c58c3195c0994f672c85e28165",
      "parents": [
        "ac86bc8764a30677cac34f07fc8e3ed68316136a"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Jul 11 13:19:59 2017 +0200"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Jul 19 11:05:26 2017 -0700"
      },
      "message": "Reducing bitmap sizes in notifications\n\nBitmap sizes could be arbitrary large when they were sent\nover to the system. We\u0027re now reducing them to reasonable\nsizes.s\n\nAlso fixed that notification bitmaps were not put into\nashmem anymore since it got lost in a refactor.\n\nTest: code inspection\nBug: 62319200\nChange-Id: I87db7656e749666b9eab1f67fd497f155c407e18\n"
    },
    {
      "commit": "1480b67635cdc4c2c5e735741bf30393fd70d738",
      "tree": "169d4719407b891bd390d200ae9d4f11cde22f50",
      "parents": [
        "845dae5cdb167dde981eeefb8508cb383046ed7f"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jul 14 08:42:50 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jul 14 11:40:29 2017 -0700"
      },
      "message": "Better preload drawable logging\n\nBug 63136392\nTest: Manual test\n\nChange-Id: I8753b36f632cf2ff57a5ef28df29f3fc5657f607\n"
    },
    {
      "commit": "e2393ae726d52acb32e04886529013897a3e5805",
      "tree": "25604e995a1673bf073a94e4f586ffe573de2d6e",
      "parents": [
        "294e7ea9be0527a33f64d845d14fc9ff3b9ae1f7",
        "1378a9d72cb4a9f7a939f0a28a78fcfb87fb7879"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Jul 14 02:17:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 14 02:17:43 2017 +0000"
      },
      "message": "Merge \"Make strike-through respect kerning at boundaries\""
    },
    {
      "commit": "1378a9d72cb4a9f7a939f0a28a78fcfb87fb7879",
      "tree": "888fdd792e47229b0dc0c19ae677efa16a847858",
      "parents": [
        "1137f872c6e4ee0b2f630cd03f5b4f0033368115"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jul 13 12:45:20 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jul 13 13:21:00 2017 -0700"
      },
      "message": "Make strike-through respect kerning at boundaries\n\nAlso clean up lower-level drawing of strike-through in Cavas.cpp.\n\nWe still cannot use the strike-through information from the font\nsince Skia doesn\u0027t provide it, so we are going with the default\nvalues.\n\nTest: Manual\nTest: bit CtsTextTestCases:*\nTest: adb shell am instrument -w -e package android.text com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\nBug: 32907446\nChange-Id: Iee6f8102a35eba0ff4127dbbef189529ab573e6d\n"
    },
    {
      "commit": "0d253e46aa0b4cb2ea56e220812aeab92de64ae1",
      "tree": "790b3171f79c25b3be1878d0e2070be84a84fb4e",
      "parents": [
        "ab78a4707b276a58c758e5a7122a21d75403497b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 29 17:50:33 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jul 13 10:47:48 2017 -0700"
      },
      "message": "Implement family fallback.\n\nIntroduce new attribute \"fallbackFor\" to font element.\nBy specifying name of the family to this attribute, that font is used\nwhen the developer specifies the font family.\nFor example, if fonts.xml has the following family entry,\n  \u003cfamily lang\u003d\"ja\"\u003e\n    \u003cfont fallbackFor\u003d\"serif\"\u003eNotoSerifJP-Regular.ttf\u003c/font\u003e\n    \u003cfont\u003eNotoSansJP-Regular.ttf\u003c/font\u003e\n  \u003c/family\u003e\nthe Japanese text is rendered by NotoSansJP-Regular.ttf by default.\nThen, if developer specifies fontFamily\u003d\"serif\" in TextView, the Japanese\ntext is rendered by NotoSerifJP-Regular.ttf.\n\nBug: 37328609\nBug: 31491668\nTest: bit FrameworksCoreTests:android.graphics.TypefaceSystemFallbackTest\n\nChange-Id: I2744db7384c8056795e841c88b387545434131f4\n"
    },
    {
      "commit": "3594b9f4fda1e83c48aba8ace4c688d5c0ea21c6",
      "tree": "db31f29a2dc6a776f93c5a670e590f03285f5d8a",
      "parents": [
        "c523f4dc0c9226738a53b7d85279f4d151273b6f",
        "3ec9d993ce0112919d57ae2958c682ba7ac4f690"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Jul 03 10:59:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 03 10:59:17 2017 +0000"
      },
      "message": "Merge \"Fixed an issue where the shelf could be hidden\" into oc-dr1-dev am: fdc84a13a2\nam: 3ec9d993ce\n\nChange-Id: I307a3d65603f5ede0e283f36715271bc68b8eabd\n"
    },
    {
      "commit": "fdc84a13a25c205c87b5d5dff92244ae8c295759",
      "tree": "2da5b15749734551a4c0105b9b1f36e29dc49956",
      "parents": [
        "0fc10b2b1d7be649c80dda4ebdb2e31af216bfcc",
        "707e2072c81b7405e6c9102b1f937fd251f56291"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Jul 03 10:46:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 03 10:46:35 2017 +0000"
      },
      "message": "Merge \"Fixed an issue where the shelf could be hidden\" into oc-dr1-dev"
    },
    {
      "commit": "707e2072c81b7405e6c9102b1f937fd251f56291",
      "tree": "0207d3df8469c848b099811ee852851486012cfe",
      "parents": [
        "d43bc31eb73ed062af502f77da38a64983ed90cf"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Jun 30 18:32:40 2017 +0200"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Jun 30 18:40:53 2017 +0200"
      },
      "message": "Fixed an issue where the shelf could be hidden\n\nDuring reinflation, the panel could be stuck in\na bad state where qs edit mode was on but not\nvisible. QS edit now persists through reinflations.\n\nTest: manual\nChange-Id: I6e7a20fda2db2184a26a11093064a1367469ab45\nFixes: 62807612\n"
    },
    {
      "commit": "0e00add46a760480bb9269b391347834b6be8355",
      "tree": "b7bc2b8338eb0cc84bc77a78feb4d1f696ecc538",
      "parents": [
        "44d02baff1336a9371231129fb61d610e42acbfc",
        "73035910fca06317dbb6c7dff24c957c90394805"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Thu Jun 29 19:33:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 29 19:33:54 2017 +0000"
      },
      "message": "Merge \"AdaptiveIconDrawable should not update layer bounds when bound is empty\" into oc-dr1-dev am: e54ad58aea\nam: 73035910fc\n\nChange-Id: I43e867115e6242ef5a19795c8e53cccb5097d633\n"
    },
    {
      "commit": "dba9934fb789d67bbd305aa384bf5917a001e715",
      "tree": "355dc521f77a7897acba22b9b5ccf705c0b2f426",
      "parents": [
        "bf15050a0c23fcfab2f7e103df6f86a65f72d212"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Tue Jun 27 16:56:41 2017 -0700"
      },
      "committer": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Wed Jun 28 00:13:15 2017 +0000"
      },
      "message": "AdaptiveIconDrawable should not update layer bounds when bound is empty\n\nTest: build succeeds. Also, setting tint mode does not result in error.\n\nBug: 37682281\nChange-Id: I5991b8e58514a2130a793a5edb90baeafae9b148\n"
    },
    {
      "commit": "fc651ecf8195eb9ca0530b9aac4da0029396e987",
      "tree": "61005a173c72a1ffec68f491fdb318fdad4cb8f1",
      "parents": [
        "b11fbf83645e96e8b18ef81605397f8201de84e2",
        "bc1db397ebb25a8b1e14c35c217b0a0831f4557f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 27 02:08:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 27 02:08:00 2017 +0000"
      },
      "message": "Merge \"Use NativeAllocationRegistry for ColorFilter\" into oc-dr1-dev am: 049543b771\nam: bc1db397eb\n\nChange-Id: I76e107bbbb89e32f535324f393c8f4ad3341bed3\n"
    },
    {
      "commit": "f65e92d9f96cabb23fd8afa43e0580ea616ea154",
      "tree": "774771ddd3e219aba20c4190025425bbbcdf6555",
      "parents": [
        "5345fce58ff35b29e8e7264a2e36c9c990aedcb1"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 26 14:03:01 2017 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 26 21:33:47 2017 +0000"
      },
      "message": "Use NativeAllocationRegistry for ColorFilter\n\nBug: 62994689\nTest: bit CtsGraphicsTestCases:*\n\nChange-Id: Icea01fa7d4c6e78f3a93434de64bc8ddfe0c7a0e\n"
    },
    {
      "commit": "554585e08da5e89762105b2adc0b4c76651d1d68",
      "tree": "372a439b91843535b75859088584bd9297be3f21",
      "parents": [
        "7a8a457af6a0572953370058d13749a2320aaee3",
        "ca8a04a36640eb227a556ad9ced925c48ced2495"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Jun 09 21:44:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 09 21:44:59 2017 +0000"
      },
      "message": "Merge \"Get underline position and thickness from the font\""
    },
    {
      "commit": "ca8a04a36640eb227a556ad9ced925c48ced2495",
      "tree": "50187f2094741703429e43c4c7ca1ab8aa7ecff9",
      "parents": [
        "eed27590babac4b697c7341d43bfb43e9257a7ee"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Jun 06 18:30:29 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jun 08 14:13:57 2017 -0700"
      },
      "message": "Get underline position and thickness from the font\n\nPreviously, font underline position and thickness were fixed in Android.\nAlthough a custom font may have specified a different value, such a value\nwould never be used. Now we use the values from the font if they are\nprovided and fall back to the old default values only if needed.\n\nBug: 62353930\n\nTest: adb shell am instrument -w -e package android.graphics com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\nTest: adb shell am instrument -w -e package android.text com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\nTest: cts-tradefed run cts-dev --module CtsTextTestCases\nTest: Manual\nChange-Id: I6bf21000dd69a2780c894b231638bc0c122e41f4\n"
    },
    {
      "commit": "21d562c122493dc15976edf864764b6ff5a07c0c",
      "tree": "31f8caca62f2303e7c68ee76a8bf12585ca34bcf",
      "parents": [
        "d37ba3bc38a5dc8fd1e2b6485e8e25063e05b132",
        "cab35e9b0e68ec78d2f48b6de353a95530ee60cb"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Jun 07 19:45:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 07 19:45:52 2017 +0000"
      },
      "message": "Merge \"Better error message for AVD\" into oc-dev am: cabf9cdc2e\nam: cab35e9b0e\n\nChange-Id: I48726108f88abbe3d08973259e1be1a1683df797\n"
    },
    {
      "commit": "7bbb50e21d6705ad27f7ee576dea6927b66e15c8",
      "tree": "dcbb1879a0d142e78d101c0ee2fcda3e23c72721",
      "parents": [
        "dab10f2bb3687195e51daf8579423ebed8d6c71b",
        "cabf9cdc2e742b168f8d5a1dd6ccd6355b8eb2aa"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Jun 07 19:40:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 07 19:40:53 2017 +0000"
      },
      "message": "Merge \"Better error message for AVD\" into oc-dev\nam: cabf9cdc2e\n\nChange-Id: I6e63b81fd2168780d23a88d7340812b55db98497\n"
    },
    {
      "commit": "cabf9cdc2e742b168f8d5a1dd6ccd6355b8eb2aa",
      "tree": "5d1613334225315115d68e478a7956dd8d0db7d4",
      "parents": [
        "6746aa8c4d01f559150439808dc0b489c512d5a4",
        "03f2fcbd88478636acc9d67b9698b50e5b3eae25"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Jun 07 19:31:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 07 19:31:14 2017 +0000"
      },
      "message": "Merge \"Better error message for AVD\" into oc-dev"
    },
    {
      "commit": "4ee3fb4c5486b4b54dcece313dbb504ed725933d",
      "tree": "6880fafe7954e1bd05a3218cd447c7144141866c",
      "parents": [
        "2fe945c3a916430d1ba33824e6452dd48c5f13c8",
        "d3e78478aa2e548ab857aa6549964bffd5803e39"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 07 16:49:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 07 16:49:12 2017 +0000"
      },
      "message": "Merge \"Clear native shader when Paint shader changes\" into oc-dev\nam: d3e78478aa\n\nChange-Id: I7d96db34b1894e1064116b830a8fb159ad4c57b0\n"
    },
    {
      "commit": "fbff7117abac7a335c6bc2e2f8b927a8dac5753e",
      "tree": "c16bb5d083083a9deaf5d7713956e64114cc86ec",
      "parents": [
        "5fc8f7d08a5e1835b792757dc25f3ab2420d4b75"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 06 12:14:04 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 06 12:14:04 2017 -0700"
      },
      "message": "Clear native shader when Paint shader changes\n\nSince Recents never goes away that means TaskViewThumbnail\nnever goes away which in turn means mDrawPaint never goes away.\n\nmDrawPaint has a setShader(null) called on it to release\nthe BitmapShader it was previously drawn with, but that\nchange didn\u0027t push down to native until the next time the\npaint was used. As a result, the Paint held on to a\nreference to the bitmap.\n\nThe fix is simple, when the shader is changed simply\npush down an immediate clear of the native shader. Since\nthe bitmap of a BitmapShader isn\u0027t changeable we don\u0027t\nneed to worry about clearing references for shader mutation,\nmerely when Paint#setShader() happens.\n\nBug: 38258699\nTest: Open \u0026 close recents, observe EGL memory immediately returns\nto sub-5MB.\n\nChange-Id: I6742efa8ae8dfca76b62a06bc1a1a00646feba64\n"
    },
    {
      "commit": "fd8c22d513d92d547f883efc45a3dbcd9558f90a",
      "tree": "d631419d14c2172612ab147c0306a5fe00e8f713",
      "parents": [
        "a3112ceedc146005779dba2825af5484d55c8827"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Jun 05 15:57:14 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Jun 05 15:57:14 2017 -0700"
      },
      "message": "Move underline thickness and position computation to Paint\n\nAlso, in TextLine, fix underline color and thickness to come from the\nunderline info rather than the TextPaint object.\n\nBug: 32907446\nBug: 62353930\nTest: Manual\nTest: cts-tradefed run cts-dev --module CtsTextTestCases\nTest: cts-tradefed run cts-dev --module CtsWidgetTestCases\nChange-Id: I259e9cf635a7056ccd367baa77c03100c69e3b98\n"
    },
    {
      "commit": "03f2fcbd88478636acc9d67b9698b50e5b3eae25",
      "tree": "187bdcee0879c305af2bed46d3a322e8a87ff2dd",
      "parents": [
        "faba1835b4028fccc6f7382a67e406f0b6352445"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Jun 01 17:34:13 2017 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jun 05 15:51:18 2017 -0700"
      },
      "message": "Better error message for AVD\n\nMoved the error checking to an earlier stage of the AVD, so that\nthe error message can contain more information.\n\nBUG: 36571432\nTest: Follow the repro step in b/36244835, the error message\n      is much clear now.\n\nChange-Id: Ibc6a0e666cc4c23c3dfa589755a77a015da2db1c\n"
    },
    {
      "commit": "cc4f086c94f0dbdd0081a456032520923be8a079",
      "tree": "04c36e1ee2384db299b90c297858d44fbb929272",
      "parents": [
        "4548e744bc5f65f4a28aeec8896780e584ae0637",
        "538de5bb3b3662c51c17cd9dd24e660c85e88b78"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Jun 05 17:30:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 05 17:30:27 2017 +0000"
      },
      "message": "Merge \"Make underlining spans independent of actual class\""
    },
    {
      "commit": "538de5bb3b3662c51c17cd9dd24e660c85e88b78",
      "tree": "7ad94ecd9e84f072e55b2356d6227c38dafe05e0",
      "parents": [
        "1cdf223a0e968ead15d37cfb83f9c1ea88a54d6c"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Wed May 24 09:07:52 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jun 01 16:45:33 2017 -0700"
      },
      "message": "Make underlining spans independent of actual class\n\nPreviously, we had singled out UnderlineSpan for special treatment\nfor proper kerning at span boundaries. That had the limitation that\nany other span that used underlining, or even subclasses of\nUnderlineSpan were not getting the fix.\n\nWith this CL, we actually look at all the effects of applying a\nspan\u0027s updateDrawState() and if the changes were only in underlining,\nwe merge the pieces and call handleText() on the merged chunk of\ntext.\n\nChange-Id: I829162c758192b80594f164d1105699224b627ba\nBug: 32907446\nTest: cts-tradefed run cts-dev --module CtsTextTestCases\nTest: cts-tradefed run cts-dev --module CtsWidgetTestCases\nTest: manual\n"
    },
    {
      "commit": "2a3220b247c899456a556c8c3c0d677275cf7ce9",
      "tree": "30d706d97a61ec7ea64ab893726524ddaf67d12d",
      "parents": [
        "1cdf223a0e968ead15d37cfb83f9c1ea88a54d6c",
        "335a6e0f74841b0655b79e3277a401d273f2cb32"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 01 20:31:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 20:31:50 2017 +0000"
      },
      "message": "Merge \"graphics: Icon: use Arrays#equals for byte array comparison\""
    },
    {
      "commit": "335a6e0f74841b0655b79e3277a401d273f2cb32",
      "tree": "3983a5c1b12a2c3765b20d48a460e39e421cc873",
      "parents": [
        "bcb5bca1f3fd2dc54d088c3e2eae1c1c3a072718"
      ],
      "author": {
        "name": "Peter Qiu",
        "email": "zqiu@google.com",
        "time": "Thu Jun 01 10:43:35 2017 -0700"
      },
      "committer": {
        "name": "Peter Qiu",
        "email": "zqiu@google.com",
        "time": "Thu Jun 01 10:45:56 2017 -0700"
      },
      "message": "graphics: Icon: use Arrays#equals for byte array comparison\n\nBug: 62258815\nTest: build\n\nChange-Id: I95b7b7b663a8067aea40f36944003901afd8988c\n"
    },
    {
      "commit": "0ee11e3f7ebbad3e28386636f2d53f6ffe4fb700",
      "tree": "7d83d8c0f5bab3ab2a6943d02d3c5aa2ed05b708",
      "parents": [
        "b4ec958c7cf780d4d4d43784b9b5f74cae67c32d",
        "bc790383d204c8cb7669e0788ea20d5b0e4047c2"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed May 31 00:27:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 00:27:12 2017 +0000"
      },
      "message": "Merge \"Fix NPE and wrong behavior of Typeface.isSupportedAxes\" into oc-dev am: 633b32be55\nam: bc790383d2\n\nChange-Id: Ie308baed43bf39394949e2fa9fc1ebab1dc98e65\n"
    },
    {
      "commit": "633b32be5536585add78906be89ef6249ae1ce9a",
      "tree": "8afee63446a09e248d79e347a25b4cb02d91f5d2",
      "parents": [
        "17e512528f821dd76130662750fc6000937fbdf2",
        "ffae6c7f71e9da9f887002994d270b9dbf6d0673"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 30 23:58:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 30 23:58:11 2017 +0000"
      },
      "message": "Merge \"Fix NPE and wrong behavior of Typeface.isSupportedAxes\" into oc-dev"
    },
    {
      "commit": "a63794c9cce820b0d6fa1d48b3cfbbc4e1c62b82",
      "tree": "838de62d1874b2f68e57c27bfdb3abef07e23dff",
      "parents": [
        "1eb6a84d8e45f04d0e7d038bd1b950284b2b6c18",
        "1ee4894e6c3c421937c3a229de5c87132aac369e"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue May 30 21:35:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 21:35:50 2017 +0000"
      },
      "message": "Merge \"Update Paint#mFontVariationSettings in set() and reset()\" into oc-dev am: d865c624bd\nam: 1ee4894e6c\n\nChange-Id: I6c9bff56660ec6b6bddc48da9f629a571c7fe2d6\n"
    },
    {
      "commit": "d865c624bda8130bdb03238e875dec9df5491e25",
      "tree": "387fe7f4a045b27ef8b0b1e7ba27ba775417833b",
      "parents": [
        "bf7f23cc9c746c91c04e04962326b96c7e1600e3",
        "425e719c462edbedd66ccec14667357ab409a483"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 30 21:15:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 30 21:15:20 2017 +0000"
      },
      "message": "Merge \"Update Paint#mFontVariationSettings in set() and reset()\" into oc-dev"
    },
    {
      "commit": "ffae6c7f71e9da9f887002994d270b9dbf6d0673",
      "tree": "1704473cfd02eabd0cf21edc0eda7c49ed2f7b6a",
      "parents": [
        "dc23c5e8098c5c22d7734f8430560600611eb30c"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri May 26 17:50:10 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue May 30 13:40:49 2017 -0700"
      },
      "message": "Fix NPE and wrong behavior of Typeface.isSupportedAxes\n\nThe Typeface kept by Paint object can be null if nobody calls\nsetTypeface. The null typeface is equivalent to the Typeface.DEFAULT.\nTo check whether the passed axis is usable for Typeface.DEFAULT, we\nneed to pass Typeface.DEFAULT to isSupportedAxes if no typeface was set\non the Paint.\n\nAt the same time this CL fixes an issue in isSupportedAxes.\nIf the requested axis is listed in the first element of axes list,\nisSupportedAxes returned false due to wrong handling of binarySearch\nresult.\n\nBug: 62146672\nBug: 62147012\nTest: am instrument -w -e class android.graphics.cts.PaintTest\nandroid.graphics.cts/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: I7c154adfe8a19d6ed24ad645df7c10cee7880461\n"
    },
    {
      "commit": "d04970da5d749028ba29b6d5b198a40242783cbf",
      "tree": "d20704d63a23ab264e47e17fc1e6c080d4feb044",
      "parents": [
        "2cbc277dc05a7ed474c24570d871b8524471b940",
        "fa5f8fa8a804f0250c49655f79e92ce89977b56e"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Thu May 25 23:52:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 25 23:52:25 2017 +0000"
      },
      "message": "Merge \"Merge \"Fix safezone and getAlpha b/38361276 Test: frameworks/base/core/tests/coretests/src/android/graphics/drawable/IconTest.java\" into oc-dev am: cca181bfbb\" into oc-dev-plus-aosp\nam: fa5f8fa8a8\n\nChange-Id: I11d97f6c553882c0fb2423c1a62ee540378fcd25\n"
    },
    {
      "commit": "cca181bfbbbe1cf7bbbc71e1da41a74dc4a2e09a",
      "tree": "46385b50ee1eb977d720d7d30048889faa4236c2",
      "parents": [
        "9ddb0f8691555cd86407cd2bb7c6427f22a603d2",
        "ac2f74e80ef1934d3a5e083e524707ed79612d3d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 25 22:55:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 25 22:55:56 2017 +0000"
      },
      "message": "Merge \"Fix safezone and getAlpha b/38361276 Test: frameworks/base/core/tests/coretests/src/android/graphics/drawable/IconTest.java\" into oc-dev"
    },
    {
      "commit": "ac2f74e80ef1934d3a5e083e524707ed79612d3d",
      "tree": "6c4ac92c2f0e14f1a12a27fb84e67a1cd1fb5f86",
      "parents": [
        "54ddf4a4e266ab544f43516c2ebb6cf2a8e6c7f1"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Mon May 22 14:15:14 2017 -0700"
      },
      "committer": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Wed May 24 17:29:34 2017 -0700"
      },
      "message": "Fix safezone and getAlpha\nb/38361276\nTest: frameworks/base/core/tests/coretests/src/android/graphics/drawable/IconTest.java\n\nChange-Id: I3e1c73276968747249b053fd581f289c340d98af\n"
    },
    {
      "commit": "425e719c462edbedd66ccec14667357ab409a483",
      "tree": "7cba4297f3c25dba50afffba4aedec94bf3b7606",
      "parents": [
        "e85f8eb0ca7f7b9788512f85bb1f117a9de3f7d7"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Wed May 24 15:16:55 2017 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Wed May 24 15:16:55 2017 -0700"
      },
      "message": "Update Paint#mFontVariationSettings in set() and reset()\n\nChange-Id: I2dc41a998c940c4a4a98a06aaa6038cbca457186\nFixes: 62066408\nTest: none\n"
    }
  ],
  "next": "c495d8f1b5f31b04b83f36f6810fc2dd9927bbc2"
}
