)]}'
{
  "log": [
    {
      "commit": "0ef12aefe548e0d9472e2c23ab3374197a28b6bc",
      "tree": "4f8e6ee397a021fcf8928485c09aa3889e0635d5",
      "parents": [
        "c754dffe1980cb6c3be96fb258b046dfcdf82353"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jan 12 09:47:09 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jan 12 09:47:09 2016 -0500"
      },
      "message": "Clean up LayerDrawable, refactoring only\n\nUses consistent naming and ordering for padding and inset calculations.\nUpdates documentation to include UNDEFINED_INSET as public API, since we\nreturn the value and will accept the value as a valid param. Flattens\nout RTL logic for readability.\n\nChange-Id: Ie704e2e5fc7f5763500ebe1217ddbbf4d0c5ef86\n"
    },
    {
      "commit": "c03c596a537df81bcb0ab4629e56c2ce1be4c0ed",
      "tree": "081cc1e118707a1ba8e64a5147275f5cf70f53a3",
      "parents": [
        "5942cc59abbdd68fdb46139247a20b961f0c633d",
        "51b75386a8f6a90e833002d2d1fed928039841e7"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Fri Jan 08 15:47:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 15:47:32 2016 +0000"
      },
      "message": "Merge \"Deprecate mCancel in BitmapFactory.Options API\""
    },
    {
      "commit": "51b75386a8f6a90e833002d2d1fed928039841e7",
      "tree": "5367cc9d9404670f2240d392e725776c035b79ff",
      "parents": [
        "167a623c45575b33166bc3a02d5f68243e09cf07"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Jan 07 16:37:38 2016 -0500"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Jan 07 17:56:24 2016 -0500"
      },
      "message": "Deprecate mCancel in BitmapFactory.Options API\n\nThis is a follow-up to:\nhttps://googleplex-android-review.git.corp.google.com/#/c/837260/\n\nBUG:26266063\nChange-Id: I4a5a9c7bd1f04f27f096ce74668d1509791e1952\n"
    },
    {
      "commit": "0671f05fa94a234652c1cf3c6e0c2e123566f76f",
      "tree": "545681675943069237f41946695283dc85ec02fa",
      "parents": [
        "55e20d502f3037920de6598e2350ba9c35216589"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 07 16:37:39 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jan 07 16:37:39 2016 -0500"
      },
      "message": "Revert ripple background fast-enter behavior to M style\n\nNo longer fast-enters the background for unbounded ripples.\n\nBug: 25602850\nChange-Id: I3250505c1de04a72fb764174abf269e247e21578\n"
    },
    {
      "commit": "7ee860c4164bb2b763376ff2c130a9be2766d26c",
      "tree": "4f7f0582722d04e1f0ca02353836083c253ad337",
      "parents": [
        "6d6f0a1c97219a361f7bda2b35ef6e3244a4d507",
        "eda57925cafdf1dab451e70052dea27846f368b4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 06 18:32:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 06 18:32:50 2016 +0000"
      },
      "message": "Merge \"Add missing @deprecated comments to canvas methods\""
    },
    {
      "commit": "8190e5dca4d1ea42e34728122f4fd8c91013c8f9",
      "tree": "fb0a44bf0402c770d8156a30e9da1def71a9fc7d",
      "parents": [
        "a7ca3e73bfb9e95bd3e87c7d194f044bb16dd9e5",
        "841f6e19ba8289c8c0953cbfdbad60590eda3c32"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jan 05 00:54:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 05 00:54:36 2016 +0000"
      },
      "message": "Merge \"Avoid calling invalidateSelf() from draw call\""
    },
    {
      "commit": "841f6e19ba8289c8c0953cbfdbad60590eda3c32",
      "tree": "7d54fa2046825fe88b9e09034320cea64344b7cb",
      "parents": [
        "bd0d937303ae54d8a5bb5f08080c4164302daefc"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jan 04 14:32:00 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Jan 05 00:53:07 2016 +0000"
      },
      "message": "Avoid calling invalidateSelf() from draw call\n\nBug: 26329675\n\nChange-Id: Ieb76b6f63a5139f6033ca9baa9ba6fac36ae466c\n"
    },
    {
      "commit": "e3b8f255cf8e74cccaee49235333994f51852125",
      "tree": "7132e29fe5472849583512b847233f3c6076fecb",
      "parents": [
        "46ca282851ef12755a64810658a6043e70d6db5d",
        "5e2496bcee239ce9ebeff6022b7badf81d87492c"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Mon Jan 04 22:55:38 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 04 22:55:38 2016 +0000"
      },
      "message": "Merge \"Make BitmapFactory.Options API Changes\""
    },
    {
      "commit": "5e2496bcee239ce9ebeff6022b7badf81d87492c",
      "tree": "378b283d57c77b92b8d1f941c9935ba9ec99b3f9",
      "parents": [
        "ca9c0d428aebd0506d7cd13e4a6d3c0e99f35233"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Fri Dec 18 13:07:01 2015 -0500"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Mon Jan 04 17:20:17 2016 -0500"
      },
      "message": "Make BitmapFactory.Options API Changes\n\nThis changes the documentation for inPreferQualityOverSpeed,\ninDither, and requestCancelDecode().\n\nThese changes are a result of modifying the backends of\nBitmapFactory and BitmapRegionDecoder to be faster, higher quality,\nand to use standard libraries.\n\nBUG:26266063\nBUG:25556965\nChange-Id: I9008fd276a38c737e242bcc6930ffe4e36d9fd1d\n"
    },
    {
      "commit": "4bbc2931263b232fba61807fca00e127573eff42",
      "tree": "04ea8fe74ecd7c92c28d797f73c87a9cdde0bbf1",
      "parents": [
        "701662547341269d610ac5f093e449a4c7078e43"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Dec 01 17:59:40 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Dec 28 16:08:38 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 3 of MANY\n\n- Refactored VPathRenderer \u0026 VectorDrawableState\n- Moved all the VD rendering into native\n- Set up hooks for VD\u0027s property changes in JNI for animated VD\n\nTODO: JNI calls can be further reduced when we convert the animation\nin AVD to use RenderNodeAnimator, in which case animation will be\ndriven from native and therefore most of the JNI hooks for changing\nVD\u0027s properties during animation will no longer be needed.\n\nChange-Id: I52021f4d7bea057b83ace54085d870dd45acae0f\n"
    },
    {
      "commit": "bb9f686b40743df2642b7d3b7778dbf7284ae665",
      "tree": "739c0a8bb1458793decc646a901adff34804adba",
      "parents": [
        "b819f8983f72b0642a3e1f889a3de31d35484c22"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Dec 01 14:44:24 2015 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Dec 21 09:54:57 2015 -0800"
      },
      "message": "Allow a print service to specify per printer icons, description and\ninfo-activities\n\nThe icon is loaded from the discovery session only when it is displayed\nto avoid having to store too many icons in memory.\n\nAlso the icons are not maintained in the historical printers. Only if\nthe printers are available nice icons are shown. A historical printer is\nupdated with the appropriate properties (including icon) once it becomes\navailable.\n\nBug: 24135005\nChange-Id: Iec389bab514b024634be8fb5fc8928371cba8740\n"
    },
    {
      "commit": "eda57925cafdf1dab451e70052dea27846f368b4",
      "tree": "58f824865e09d72b43166026230fd7d86d0d3919",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:37:44 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:42:51 2015 -0800"
      },
      "message": "Add missing @deprecated comments to canvas methods\n\nbug:25311154\n\nChange-Id: Ie89e2160969eb7b4187f28ab4b0342804cf67724\n"
    },
    {
      "commit": "92c11864c7b4901db90f88ec025d9a773454e7f6",
      "tree": "492292d78b45261bd32c325eb851bdef8fa971a4",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:11:24 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 15:11:24 2015 -0800"
      },
      "message": "Correct drawLines annotations\n\nChange-Id: I161e419a3ce427e10d802ba692679ad671e23dde\n"
    },
    {
      "commit": "8349b7a063824dcbf3291d308aafd1dfbae3c76c",
      "tree": "82887b37bbdb10291bf12f4c86ad2486dc0d5f07",
      "parents": [
        "9161c75874027724fede7de895acb9d49e4da8c5"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Sat Dec 12 00:10:10 2015 -0500"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Sat Dec 12 05:57:14 2015 +0000"
      },
      "message": "Use \u0027index\u0027 instead of \u0027ttcIndex\u0027 for attribute name.\n\nThere are two reasons for this. First, the name \u0027ttcIndex\u0027 is over\nspecific, there are many indexed font containers in addition to ttc,\nsuch as fon, pfr, bdf, and dfont. There may be others in the future.\nSecond, Skia implemented this attribute with the name \u0027index\u0027 quite\nsome time ago. By naming this attribute \u0027index\u0027 even existing apps will\nbe able to use this attribute (including Chrome).\n\nBUG: 10861108\nChange-Id: I68d2b69fad304d93313f96bf3365af71906dfe69\n"
    },
    {
      "commit": "ac3f10f153319e2494fb57a90360031f148e404c",
      "tree": "ebb81caf85cea226baa0d2ffd1f87bd8143ccd85",
      "parents": [
        "f0fc0c835e5e0af4fdf3bf82f112f6bffe105c9d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 18:23:37 2015 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 18:23:37 2015 -0800"
      },
      "message": "Fix invalid API use of XmlPullParser.getAttributeValue.\n\nThe 1st argument of the getAttributeValue is a namespace of the xml.\n\nBug: 10861108\nChange-Id: I73fd15eca7101b745870ca7b6509b1dbfcc9b0d7\n"
    },
    {
      "commit": "3fa667e22401bf3ba96957fe31167bf05d164c55",
      "tree": "6f6c8e229cee9c42dea938c38c7c7a5c017ba76e",
      "parents": [
        "794a18f5a215787570329018c50e2fa08133f893"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 14:30:37 2015 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Dec 10 16:50:44 2015 -0800"
      },
      "message": "Introduce ttcIndex attribute into system font configuration.\n\nttcIndex is used for specifying index of the TrueType Collection.\nNo user visible change is expected with this CL.\n\nBUG: 10861108\nChange-Id: I76a1c890164bb55a7ece7b9c7db2ce2bac3f8b89\n"
    },
    {
      "commit": "44581ff4db54bbaa30365ed210e67a0369576100",
      "tree": "87865e92a84aa4a88f3c5d82610970113993762c",
      "parents": [
        "718e16ad5779ec509e7bffa12f7c044e2f165aad"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 07 17:15:24 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Dec 09 11:20:32 2015 -0800"
      },
      "message": "Camera: add RAW_PRIVATE format\n\nAlso add necessary plumbing for RAW_PRIVATE to work for ImageReader.\n\nBug: 25596619\nChange-Id: Ic90f3f44264ac46fae1fafbc27ac64b5319f0970\n"
    },
    {
      "commit": "3899902fe751d841e0dc6c7e5c2700bd85f4fb44",
      "tree": "38fbfbc25127e40b312ecbdf0152dbfeb4ba06fb",
      "parents": [
        "adf2b4d669240e801f2c505c115e8a7ffd6e5dad",
        "cfc607cf57d453f977c9c4bf09b41ac481c4bbec"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Dec 09 03:28:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 09 03:28:21 2015 +0000"
      },
      "message": "Merge \"Introduce cache mechanism for LocaleList.\""
    },
    {
      "commit": "ea4bef7386ca6c6260f292bf006d16a99b93f698",
      "tree": "46cb39ff6e2cb693bb0c8cf9620cd75241f96b36",
      "parents": [
        "d427047d98ad90c60198e90385a0152c16ee3f20"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Dec 02 15:51:10 2015 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Dec 08 16:25:00 2015 -0800"
      },
      "message": "Removed duplicate content from group notification header\n\nPreviously the headers all had duplicate content, which is\nnow optimized to look visually more appealing.\n\nChange-Id: I38ed8db1985fd8a9470888e1b7e1e6b0f2e23b19\n"
    },
    {
      "commit": "d35c13df6e9befe6e63a10f7ef83183e7682affa",
      "tree": "2b7871e1ea84244f522a130fefd9f16592c07efd",
      "parents": [
        "2acf063da08dfff69f184c9a6a90a7a5fe60d818",
        "c078c605ab904b0e4a5d793cbeffd78c340f2816"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 19:49:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 19:49:56 2015 +0000"
      },
      "message": "Merge \"Attach drawable resource ID and name to getDrawable() exceptions\""
    },
    {
      "commit": "c078c605ab904b0e4a5d793cbeffd78c340f2816",
      "tree": "1be842dc5f315e3f04c4e98dbc48bfa71dd8b107",
      "parents": [
        "c72b3101ee368d2a9943e4436ede679acfa38f92"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 14:49:13 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Dec 08 14:49:13 2015 -0500"
      },
      "message": "Attach drawable resource ID and name to getDrawable() exceptions\n\nWraps the entire getDrawable() method in a try/catch block. Clears the\nstack trace from the re-thrown exception, since we only need the trace\nfrom the original exception.\n\nAlso clears stack traces from re-thrown RuntimeExceptions in applyTheme\nimplementations.\n\nChange-Id: I92396abf9e748eef78777174b297a09e118f5e70\n"
    },
    {
      "commit": "cfc607cf57d453f977c9c4bf09b41ac481c4bbec",
      "tree": "8c77b689bdeef7721a7248955c306dfe1907c90e",
      "parents": [
        "39a275b3980b5ea75e060da540229b95a47333f7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Dec 02 10:53:18 2015 +0900"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Dec 07 16:50:20 2015 -0800"
      },
      "message": "Introduce cache mechanism for LocaleList.\n\nSetting the LocaleList to the native Paint object is not a lightweight\noperation since it needs to propagate a string object to the native code\nwhich then needs to parse it for making minikin language list.\n\nTo avoid performance regressions, cache the minikin language ID in\nandroid.graphics.Paint and send the LocaleList with cached ID\ninstead of a string the next time native code is called.\n\nBUG: 25122318\nChange-Id: Ib5ce8bcff8a1c0a2b1a1c3d1868ea8be5a0e642f\n"
    },
    {
      "commit": "f3dc7ac7242046d70e4ffee41fd7dbc9b9674ec0",
      "tree": "dfc5b6be5b58331ecbfa67a0d8b10879163eeb82",
      "parents": [
        "79aeb92f4de64dc658b3cbae6dcf40f19b1597f8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 11:21:50 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 13:48:40 2015 -0800"
      },
      "message": "Correct GradientDrawable outline alpha computation\n\nbug:26066107\n\nGradientDrawable should provide a shadow casting outline if using a\ntranslucent fill.\n\nChange-Id: Ie6b409bafe3fcf9c5216662168d7349e2a9e3413\n"
    },
    {
      "commit": "568f4de11a87308cbcb888083f02818a8290a7d7",
      "tree": "20cfff68ed791685dbb947dbc6b5f51bea52132f",
      "parents": [
        "f430d3074f6b5844ba999d4a0a6e8d7fc41f6bdf",
        "71fbb81b14958b80fe55738607740c6630e4e9da"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Dec 03 09:44:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 09:44:01 2015 +0000"
      },
      "message": "Merge \"Fix @code escapes\""
    },
    {
      "commit": "71fbb81b14958b80fe55738607740c6630e4e9da",
      "tree": "1f1be8961057d82b54b99637b8e6b423ff621575",
      "parents": [
        "355a74f2842b44b0ae07c5f982c50761d47d9ca0"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Nov 30 09:51:33 2015 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Dec 02 14:24:11 2015 +0000"
      },
      "message": "Fix @code escapes\n\nThe body of {@code} must not be HTML escaped. This is one of\nseveral changes that fix the source in conjunction with a\ndoclava fix.\n\nBug: 25757239\nChange-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881\n"
    },
    {
      "commit": "0d3d1f825f399c62f2ba236b53bef17581e03a16",
      "tree": "068c7273097d6ba02abb33f7b45774cff2ea960b",
      "parents": [
        "eaf95c36437dd3be48d7edaef9f2a9bccc102d4d"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Dec 02 14:47:59 2015 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Dec 02 14:50:36 2015 +0900"
      },
      "message": "Fixed typos: when when\n\nChange-Id: I80c0b8817dcbed45071e42d9ffa88bae52a93a81\n"
    },
    {
      "commit": "c34f1b093f978bd67ed5f6eb9ff3b0c9dd8126e1",
      "tree": "e71399329480d507e366334de2af32555b82a724",
      "parents": [
        "8b40491bc295dccc185b9be5b3616823fcff1a2e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 30 14:47:02 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 30 14:47:59 2015 -0800"
      },
      "message": "Fix RippleDrawable exit animation\n\nBug: 25602850\n\nThe exit-out animation doesn\u0027t want to animate from the current\nvalue, but rather the final value of the exit-in animation\n\nChange-Id: I1cd12b0653b5241c6e21ef1cca86b0a83ce9c5a2\n"
    },
    {
      "commit": "61ffc199f24f6817f45e41df06bd27d28521bacd",
      "tree": "93f883fd894a08d9c6b1cced46e00b695843683f",
      "parents": [
        "bb9bfc9713207b92bf62b57c5a9c3c97547ba9a0",
        "d633ca417d3925521ab15fba1c0cdac172efb184"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 14:50:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 19 14:50:40 2015 +0000"
      },
      "message": "Merge \"Apply VectorDrawable density scaling before applying theme\""
    },
    {
      "commit": "d633ca417d3925521ab15fba1c0cdac172efb184",
      "tree": "cdde0ff394eaeac13dc3240c625fca0f2a0885f1",
      "parents": [
        "40af4f3ed33dde5e24679c7da1b54fa88813ade3"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 09:47:09 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 19 09:47:09 2015 -0500"
      },
      "message": "Apply VectorDrawable density scaling before applying theme\n\nRefactors density handling to look more similar to GradientDrawable\u0027s\nimplementation, which should make things easier to maintain. We no\nlonger update density directly in updateStateFromTypedArray, instead\nhandling it in applyTheme() and inflate().\n\nLazily calculates local density-dependent dimensions and invalidates\nwhen the constant state density changes, which should ensure a random\ncall to applyTheme() will still result in the correct intrinsic\ndimensions.\n\nChange-Id: I726878a6cd75d38a550637e3e7a7b6bc68bcaf6d\n"
    },
    {
      "commit": "804618d0863a5d8ad1b08a846bd5319be864a1cb",
      "tree": "3a5006a5d4319373d7b02796291a608e9320a7c3",
      "parents": [
        "0fe13b1f7001f5e2f23062a97140784258f3423e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Nov 16 22:48:34 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 18 13:38:23 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 2 of MANY\n\nIntroduced PathData in Java, which is effectively a thin layer around the\nnative instance. PathData holds the verbs and points which is being used\nin path morphing/interpolation. The verbs and points can be interpreted\ninto skia path commands, which is now done in native and therefore saves\na handful of JNI calls during path creation.\n\nRemoved the old PathDataNode mechanism and changed the PathEvaluator\nto use PathData instead.\n\nAlso added tests and a microbench. Also ran CTS tests for VectorDrawable\nand AnimatedVectorDrawable, and passed all of the existing tests.\n\nChange-Id: Ia166f5172ff031fe18b154327967f911a62caec1\n"
    },
    {
      "commit": "477f3d092db302d24dcaa77bbcdd1026c9a468a4",
      "tree": "d49c57afb9acabb5735a056128d4cb72079cd395",
      "parents": [
        "746955c0d1ca496b34b2ad3f9c69d045db53e175"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 13 17:04:43 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Nov 16 10:12:44 2015 -0500"
      },
      "message": "Obtain cached drawables using the correct Resources object\n\nPreviously we were discarding the Resources when forwarding from the\ntwo-arg factory method to the one-arg method. This CL also updates the\ndocumentation for ConstantState to be slightly more comprehensive.\n\nBug: 25688078\nChange-Id: I4fbbf43f95fe792fa6f0bf9db8fd9a7cbfa51d1d\n"
    },
    {
      "commit": "b6181565e5a96f9922c2c0ca7dd78a894a6ba224",
      "tree": "cbe27745e0fb9e957a8397769bd9b7aa90f8b75a",
      "parents": [
        "530dcda9a5e0d3698e5c42956a6238eb55ae51e3",
        "76165b2a4bc3b618bdfa9e4286d405892b68f122"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 13 15:48:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 13 15:48:23 2015 +0000"
      },
      "message": "Merge \"Return correct intrinsic dimensions for inset colors\""
    },
    {
      "commit": "76165b2a4bc3b618bdfa9e4286d405892b68f122",
      "tree": "4b787c9b1d07e905a745cb6b93268fec613a1b1b",
      "parents": [
        "0116852120e4513eefe4b8c379c61088b2cf0850"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 10:47:53 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 12 10:47:53 2015 -0500"
      },
      "message": "Return correct intrinsic dimensions for inset colors\n\nAlso updates documentation for getIntrinsicWidth/Height to accurately\nreflect the behavior of the existing implementations and provide an\nexplanation of what \"intrinsic\" means.\n\nBug: 25646242\nChange-Id: I11daf57e598148adfda922cfc1ba31ed48a16bd7\n"
    },
    {
      "commit": "bd5294bcb857a48ad22ddd54b13208ec2903c3f6",
      "tree": "bd3b48918e438b58b55515375d18b32953b111e2",
      "parents": [
        "0116852120e4513eefe4b8c379c61088b2cf0850"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 11 12:51:10 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 11 12:51:10 2015 -0500"
      },
      "message": "Pass densityDpi into RippleComponent, store as densityScale\n\nFixes a regression where the foreground was created against the density\nin DPI rather than as a scale factor.\n\nBug: 25602850\nChange-Id: Ia871aa5def4319682a73228efb599f31b65afdb6\n"
    },
    {
      "commit": "9db60f4e5b6a982f539a8f6e857ed1a929719f23",
      "tree": "ab619ad13c82a1a22963e32cc209cb5b129a2d99",
      "parents": [
        "c97ba49d2330de396fc9121028331bccee49ed02",
        "9b4bdeff6dea5a24a3085a17d2dde9003642af79"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 21:17:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 21:17:36 2015 +0000"
      },
      "message": "Merge \"Mutate DrawableContainer children immediately after inflation\""
    },
    {
      "commit": "9b4bdeff6dea5a24a3085a17d2dde9003642af79",
      "tree": "0998a6c635e1adba76db9191fd25f964b4056df3",
      "parents": [
        "aa5c3b263777fbbba5331418c4839a323e089edd"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 15:22:43 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 15:22:43 2015 -0500"
      },
      "message": "Mutate DrawableContainer children immediately after inflation\n\nPreviously we would only mutate children when they were displayed, so\napplyTheme() calls would be applied to the shared constant state. Now\nwe mutate() immediately after obtaining the child, which ensures we\nhave a clean constant state. This also allows us to remove extra\nmutate() calls, since we know all child drawables are already mutated.\n\nBug: 25081461\nChange-Id: I52390db268690a8e181f5b9bbe612b7ed6ce9359\n"
    },
    {
      "commit": "22e27ccf79f4c334f84b329ab9685d95555eae9d",
      "tree": "2d1bf34251a8eafc16578007a069dbaf6c430ce9",
      "parents": [
        "aa5c3b263777fbbba5331418c4839a323e089edd",
        "ab099c496b0136a4ad990af02b4ff9f8e4dccb9c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Nov 06 19:41:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 19:41:59 2015 +0000"
      },
      "message": "Merge \"Correctly handle child drawables with no intrinsic size\""
    },
    {
      "commit": "1259f616c26f89dd5000745d7c364fae41b23682",
      "tree": "af6f3ee74395a3747b4e75820480863b577aaa46",
      "parents": [
        "51a942380ba15f83393922203e7e9aebe64e8deb"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 05 14:34:44 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Nov 05 14:34:44 2015 -0500"
      },
      "message": "Use ConstantState directly instead of ConstantStateFuture\n\nAll of the functionality of ConstantStateFuture has been moved into\nprepareDrawable. We don\u0027t need the extra wrapper class.\n\nChange-Id: I452b13320a838a23c8ec0dd486a89bf383142d7b\n"
    },
    {
      "commit": "29869c3893c347c592b650d0c63d1e4264918c01",
      "tree": "b8fecc1085cf9490e136706eca82f6c914a18167",
      "parents": [
        "5f763ead7087f005c53835fcd43416d0de3cf367",
        "132bb1e4b10755d2bc0810135511fd999badbe4b"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Wed Nov 04 20:43:38 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 04 20:43:38 2015 +0000"
      },
      "message": "Merge \"Convert ashmem bitmap thresholds to constants.\" into mnc-dr-dev am: c8bb39d98d am: 2c740f1dcf am: 6c1144dc0f\nam: 132bb1e4b1\n\n* commit \u0027132bb1e4b10755d2bc0810135511fd999badbe4b\u0027:\n  Convert ashmem bitmap thresholds to constants.\n"
    },
    {
      "commit": "132bb1e4b10755d2bc0810135511fd999badbe4b",
      "tree": "49cc6f07d754dcbd424869db948646274345f589",
      "parents": [
        "34e9b5b2e418dd43e374dcbb3be27710c53d4b9c",
        "6c1144dc0f8b2452ca2a204ca471e2d23339d5a3"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Wed Nov 04 20:37:18 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 04 20:37:18 2015 +0000"
      },
      "message": "Merge \"Convert ashmem bitmap thresholds to constants.\" into mnc-dr-dev am: c8bb39d98d am: 2c740f1dcf\nam: 6c1144dc0f\n\n* commit \u00276c1144dc0f8b2452ca2a204ca471e2d23339d5a3\u0027:\n  Convert ashmem bitmap thresholds to constants.\n"
    },
    {
      "commit": "ab099c496b0136a4ad990af02b4ff9f8e4dccb9c",
      "tree": "462b99489f0ab9bb33ed4d6a28fbe6d67bea614d",
      "parents": [
        "978db40983bd4ba2a9cb3502fd7c82c6f6311d64"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 04 09:54:50 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Nov 04 09:54:50 2015 -0500"
      },
      "message": "Correctly handle child drawables with no intrinsic size\n\nIf a child drawable has no intrinsic width or height, don\u0027t attempt to\napply padding and insets to the child during the parent layer drawable\u0027s\nintrinsic width and height calculations.\n\nBug: 25461370\nChange-Id: Idf616bde0449231f38156da53feb858e1ae41c47\n"
    },
    {
      "commit": "0394a0c399582d4401646cf2324f3148c3028531",
      "tree": "2f9973749d5641d5a5f5efaef3ec7bce4ec71df5",
      "parents": [
        "966d6040c6b171c75e9fb0ca942e84f9cf4d0dff"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 23:36:52 2015 -0800"
      },
      "committer": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 23:52:17 2015 -0800"
      },
      "message": "Convert ashmem bitmap thresholds to constants.\n\nBug 25256717\n\nChange-Id: I23e2795ef8798d83bf60dcbd6ff2e7093fcaa9b0\nSigned-off-by: Riley Andrews \u003criandrews@google.com\u003e\n"
    },
    {
      "commit": "18896e08938bc1e1fcb7928996803af935b826b7",
      "tree": "270c1e1318a52c85ec547cc60f446edec0b13614",
      "parents": [
        "b59db97fc7ac7dece3428e9af72ac52d253edbfb",
        "87455c7397605fba4bf3ad04af8df3c599a7a6ba"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Nov 03 23:34:54 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 03 23:34:54 2015 +0000"
      },
      "message": "Merge \"Limit persistent ashmem backed fds to a minimum of 128kB.\" into mnc-dr-dev am: 966d6040c6 am: 95fc53b029 am: d6f3e38738\nam: 87455c7397\n\n* commit \u002787455c7397605fba4bf3ad04af8df3c599a7a6ba\u0027:\n  Limit persistent ashmem backed fds to a minimum of 128kB.\n"
    },
    {
      "commit": "87455c7397605fba4bf3ad04af8df3c599a7a6ba",
      "tree": "dafae59c16b71f80f6802333a17b9d576ef6bd0b",
      "parents": [
        "ca2daddfeab4694b83fa27957f132a510ed86bdd",
        "d6f3e38738c88821b28b2571d034fc1b189a35de"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Nov 03 22:21:48 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 03 22:21:48 2015 +0000"
      },
      "message": "Merge \"Limit persistent ashmem backed fds to a minimum of 128kB.\" into mnc-dr-dev am: 966d6040c6 am: 95fc53b029\nam: d6f3e38738\n\n* commit \u0027d6f3e38738c88821b28b2571d034fc1b189a35de\u0027:\n  Limit persistent ashmem backed fds to a minimum of 128kB.\n"
    },
    {
      "commit": "4d47d2595e3753b0f1be5ff59de100a073141593",
      "tree": "b10ce5022f30b935c101884b9dc4b1cd83a94f72",
      "parents": [
        "978db40983bd4ba2a9cb3502fd7c82c6f6311d64"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 03 15:39:15 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Nov 03 15:39:15 2015 -0500"
      },
      "message": "If LayerDrawable child doesn\u0027t have constant state, use shallow copy\n\nAvoid NPE if mutate() is called on a LayerDrawable with a child that\ndoesn\u0027t support constant state.\n\nBug: 25438651\nChange-Id: I6bf5a90484fda44a7b5fd10ce7b798eaa799b68e\n"
    },
    {
      "commit": "8cee7c17119b204be88860feb812f2374d0de732",
      "tree": "5800445b3f2808335177932a24f23c9ec066a881",
      "parents": [
        "a975732a8302893a40cdc444f893bf09b7669173"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@android.com",
        "time": "Sun Nov 01 23:36:04 2015 -0800"
      },
      "committer": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Tue Nov 03 17:46:15 2015 +0000"
      },
      "message": "Limit persistent ashmem backed fds to a minimum of 128kB.\n\nBug 25256717\n\nChange-Id: Ieb356006df0a6545b89de44d3d8fd4b46312b3b8\nSigned-off-by: Riley Andrews \u003criandrews@google.com\u003e\n"
    },
    {
      "commit": "36555baa556a1531b6b6edc2dea1de5469f74b64",
      "tree": "4fa8a07ff1c1484212052d9c36074d62d6baa29e",
      "parents": [
        "2b2e24c2ab77475ac9b22b4eecdee10db578800c",
        "ce52037e0ae0c380f5b834fb3dad105bfaf5e374"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Nov 02 18:36:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 18:36:09 2015 +0000"
      },
      "message": "Merge \"Support for changing density of GradientDrawable\""
    },
    {
      "commit": "ce52037e0ae0c380f5b834fb3dad105bfaf5e374",
      "tree": "d3afc32bb6e39a79dd282ea5583903d364ccfb97",
      "parents": [
        "2e9aa6fc40afeb691e5d2f82ea962ce65b438768"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Oct 30 11:07:35 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Oct 30 11:07:35 2015 -0400"
      },
      "message": "Support for changing density of GradientDrawable\n\nRefactors density resolution and offset/size scaling into static\nhelper methods.\n\nAlso fixes VectorDrawbale insets to be treated as offset-type pixels\nrather than size-type.\n\nBug: 25081461\nChange-Id: I10fcb9ebb6c67f853a27ca0ee008c31af4b85da0\n"
    },
    {
      "commit": "7e3ede288926bdfb79b1571fed74cad614935821",
      "tree": "99f728fa8b8ca9c4ea6db3f91f8522e1365ca63e",
      "parents": [
        "2e9aa6fc40afeb691e5d2f82ea962ce65b438768"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:57:57 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:57:57 2015 -0400"
      },
      "message": "Support for changing density of DrawableWrapper subclasses\n\nIncludes a refactoring of DrawableWrapper classes so that the wrapper\nsuper class handles both drawable management and inflation. This allows\nus to immediately call through to super() in inflate and applyTheme,\nwhich simplifies density management.\n\nBug: 25081461\nChange-Id: I8c157d340fd1f28a3a2b786c56850a67cdd452e4\n"
    },
    {
      "commit": "0cacad7023ad30ad886ef85751e9e39b10f846f9",
      "tree": "7941eb5be48c50f769d5aadfba20f1083372072b",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:37:25 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 28 16:37:25 2015 -0400"
      },
      "message": "Apply density scaling in LayerDrawable and subclasses\n\nBug: 25081461\nChange-Id: I48e62caf5017ff2dd84cf62b68a828f4542b6ae5\n"
    },
    {
      "commit": "b6e66624629448b7a8c8d5d1ec62f87ba109546d",
      "tree": "2ae4060c56fb29f290d276386f965dc8809277ff",
      "parents": [
        "20070371f37db12d6f3e22763a0fbde4abdb2841"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Sun Oct 25 16:05:27 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Mon Oct 26 14:11:32 2015 -0700"
      },
      "message": "Improve infrastructure for replacing windows.\n\nWe need to be more precise when removing the window that is being\nreplaced. We used to depend on the fact that we can remove it after\nthe first draw of the new added window. However, due to resizing the\nold window might reset its draw state and that will trigger a removal\nof that window.\n\nWe need to add an information about the window that is replacing the\nold one and only when this new window draws itself, we remove the old\none.\n\nThis improves the transition after maximizing docked window. This is\na situation where first resize operation finishes and immediately\nafter we have a replacement operation.\n\nBug: 24914011\nChange-Id: Ia8e5bb7872787e663ba23f26588f9c4db1a5e574\n"
    },
    {
      "commit": "e1e654d09e2b2638b98612e05e879811401012f2",
      "tree": "0ebd9d6233602b46160cc1956e4a9b0efecb9946",
      "parents": [
        "4c6b40ec81c6394cb10e5ecb6c00d1412cba8272",
        "f036ead2a218ffa43697fcaa999b666a4c6d13cf"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Oct 23 01:39:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 01:39:28 2015 +0000"
      },
      "message": "Merge \"Pass the whole locale list down to Minikin.\""
    },
    {
      "commit": "f036ead2a218ffa43697fcaa999b666a4c6d13cf",
      "tree": "c78f8f0adc8e2ed14bb40b642a62c08fe519a2ea",
      "parents": [
        "ec3d759a34ae45f5f1d6fe1b7aa9d83ebc09048d"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Oct 19 16:56:39 2015 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Oct 22 13:14:13 2015 -0700"
      },
      "message": "Pass the whole locale list down to Minikin.\n\nAlso, compute LocaleList\u0027s string representation at construction.\nThis is to further push the cost of doing costly operations related\nto LocaleLists to construction time.\n\nChange-Id: Ia55b8ce66b1088ff54cb42eb1e11149b5bd10f17\n"
    },
    {
      "commit": "8cab9b5f1decf5ec10e4e6638323716fdc573dd3",
      "tree": "b0d0b4082102bb7e0efd7ef8ab5c17d595bafadc",
      "parents": [
        "4ae5471c729c5706e79cb5a5e3bbcb194f550524",
        "f1f5f6fcaa768c5b88e9a56f18cbd6ecf72755a8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Oct 22 15:02:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 22 15:02:32 2015 +0000"
      },
      "message": "Merge \"Reset constant width/height when DrawableContainer density changes\""
    },
    {
      "commit": "f1f5f6fcaa768c5b88e9a56f18cbd6ecf72755a8",
      "tree": "1425560e900229f12b8274d5be62716dbbd6d7fd",
      "parents": [
        "459fdf95c60d4804a290e52fd025d33776bf1ed8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 17:14:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 17:14:27 2015 -0400"
      },
      "message": "Reset constant width/height when DrawableContainer density changes\n\nBug: 25081461\nChange-Id: I9661e964e1d0bacd337e31073faf870d37939b51\n"
    },
    {
      "commit": "4a94faa0c74c7ad4defdc6e2fa937c93a4d0b5af",
      "tree": "1a4d1c49915a54b0d6ba7a536bef71c625527615",
      "parents": [
        "459fdf95c60d4804a290e52fd025d33776bf1ed8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 15:15:23 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 21 15:15:23 2015 -0400"
      },
      "message": "Scale density correctly on VectorDrawable.applyTheme()\n\nBug: 25081461\nChange-Id: I012e0932e67bc51502dc00e11131218af1377115\n"
    },
    {
      "commit": "a3ee41b6335bef38c9ac1114fcd7f20b81081a78",
      "tree": "857d2ee6db43f6ad1a54246ed922780dd70ad8b2",
      "parents": [
        "e5971fe5205dd9047c6de26e29e78499c84b6e89"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Oct 20 17:15:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Oct 20 17:15:27 2015 -0400"
      },
      "message": "Apply density scaling when updating from typed array\n\nEnsures that density scaling is applied to default dimension values\nwhere needed. Previously, scaling was only applied when a drawable\nwas loaded from cached constant state; however, drawables that were\npreloaded against a different density and first loaded in some other\ndensity were not scaled.\n\nBug: 25081461\nChange-Id: I0f8058cc01e2fe8d6bd7e255eba40485f3cbe48b\n"
    },
    {
      "commit": "02f633d4cf0bd0c49c4b53ead92638f8a5df7a6b",
      "tree": "af14f7368bac55f4b25f17f809eb4db8324b7469",
      "parents": [
        "8f8b5d58de61625eda32a74a9b7c43275b8bab3d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Oct 19 15:18:53 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Oct 19 15:18:53 2015 -0400"
      },
      "message": "Clean up VectorDrawable usage of stroke and fill color state lists\n\nOnly store stateful CSLs; otherwise, just use the default (e.g. the\nonly available) color.\n\nBug: 25074102\nChange-Id: I050c89841d4c6bf22473a66c713a845b0358dc94\n"
    },
    {
      "commit": "2a6a2c2de8ce2743679f488f056f22cd1adfd726",
      "tree": "51c309f42ef0d13be94a284c0b4e90469a322eee",
      "parents": [
        "9f1181e968eebcfe7f7f9cfd4e6b7b11eb4b47b4"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Oct 14 12:00:53 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Oct 14 12:17:11 2015 -0700"
      },
      "message": "Change WindowState.mShownFrame to WindowState.mShownPosition.\n\nWe never use this field as a rectangle, we only depend on its left-top\ncorner. Using a frame is only confusing about the purpose of this field.\n\nChange-Id: I5d6e6321db4fa3203bb7e0f1975ae6ddd1ec09bb\n"
    },
    {
      "commit": "dbffd250003e60c0f11ac3ad2b63f91f67962610",
      "tree": "eb140aaaef2ae1ebc71cf9d045cd6615fb484401",
      "parents": [
        "150c5ae28d594ab4cfe3db68933337f79a5364d1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 01 14:46:12 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 02 09:27:10 2015 -0700"
      },
      "message": "Fix Paint\u0027s JNI\n\nBug: 22409077\nChange-Id: I99e1a11bf14f5b62c41107528f573eaf9f2d4b2f\n"
    },
    {
      "commit": "3089211ce6c279f92cb3ff8ce4137d322ce1ec97",
      "tree": "1e35d7e630d55acbdabd64a0cdd9bfc0d11eae38",
      "parents": [
        "674be55852404a9defd2c7c6b002fc9a954a81e7",
        "05de8fb29af618b0b3446fe81caca7402c6da666"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Thu Oct 01 20:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 01 20:11:49 2015 +0000"
      },
      "message": "Merge \"Add tests: Paint#measureText for bidirectional text.\""
    },
    {
      "commit": "2c53a0759742eeec8f123ad81b7a26aef222c378",
      "tree": "8ef8d771d1077ff035a3979a08f65404624efdcd",
      "parents": [
        "fdb5d2f7ce7b34700ad5f0b05e889edb86f414d6",
        "536afe6ef79a663e59c3b9781c561f7029ee9319"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 21:31:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 21:31:56 2015 +0000"
      },
      "message": "Merge \"Consolidate native methods for text measurement.\""
    },
    {
      "commit": "536afe6ef79a663e59c3b9781c561f7029ee9319",
      "tree": "38a3bc3f59c8fe938898a1c1b283c803c698032c",
      "parents": [
        "21bb7a3e38cc790ffc2735ef28bd5cd729b32e1a"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 13:52:45 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 13:52:45 2015 -0700"
      },
      "message": "Consolidate native methods for text measurement.\n\nBug: 24505153\n\nChange-Id: I6a00b0516442f7d6108ed0598516365310bd85e8\n"
    },
    {
      "commit": "57bbbaca0b1485772b4dff724a1f84be013ee042",
      "tree": "43dd705e38c81d3893721d2c61e9ba094dea838a",
      "parents": [
        "66e47b6aa142edd6e613b081f6672dde891277b1",
        "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 20:07:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 20:07:25 2015 +0000"
      },
      "message": "Merge \"Add tests for Paint#getTextRunAdvances\""
    },
    {
      "commit": "05de8fb29af618b0b3446fe81caca7402c6da666",
      "tree": "0b2085218a88e7161d26c7a1fe59535dfaf228a0",
      "parents": [
        "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Wed Sep 23 13:34:17 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:32 2015 -0700"
      },
      "message": "Add tests: Paint#measureText for bidirectional text.\n\nBug: 22408712\nChange-Id: Idff949fcabf360c994a0e3397cf6ec90d3a31162\n"
    },
    {
      "commit": "2779b5978fc1d466cdfb3cf2c4a4a509663d1dd2",
      "tree": "eb7f3ccbbcb895f137dbfb2008e0432e88ce94c2",
      "parents": [
        "21bb7a3e38cc790ffc2735ef28bd5cd729b32e1a"
      ],
      "author": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:26 2015 -0700"
      },
      "committer": {
        "name": "Keisuke Kuroyanagi",
        "email": "ksk@google.com",
        "time": "Tue Sep 29 12:37:26 2015 -0700"
      },
      "message": "Add tests for Paint#getTextRunAdvances\n\nBug: 24308179\nChange-Id: Ic979e67c10fb18c1333963d8b27352968977f28f\n"
    },
    {
      "commit": "e72a703a95156313f6c17540762f6dcd37b7d7e4",
      "tree": "435ef8fbf65defa4c651d8ee79c38193c73c1f84",
      "parents": [
        "7d92c474986c0ed562310a99aebd4ed845027f8b"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 23 10:20:59 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 23 10:20:59 2015 -0400"
      },
      "message": "Add attribute for specifying initial ScaleDrawable level\n\nBug: 19182305\nChange-Id: Ic1f183db6183017352babc6dc190fdb9124c285a\n"
    },
    {
      "commit": "50c29cd92f4fc410f61e2d14ce77f5e8e76daf0b",
      "tree": "d74fa575f18c92b25539fdcf04f1cddb8e05d808",
      "parents": [
        "31cb4bb41fe8290a46e6b7660eb1deeb67ee1558"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 22 15:03:50 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 22 15:03:50 2015 -0400"
      },
      "message": "Allow color state list for vector drawable fill and stroke\n\nRemoves unnecessary invalidateSelf() from VD.onStateChange(). This is\nhandled by the view hosting the drawable.\n\nBug: 22984152\nChange-Id: Idf11a0ffef392cb1d8452aa3f5f836b35027a756\n"
    },
    {
      "commit": "a02d2748be353393b7b593d5adbd37d80dee427d",
      "tree": "8b8f870dc52750ce25bc0e45771872220ccdbb84",
      "parents": [
        "96d9953f74ab16a9a63ebfe4119d5340ec734e87"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 16 17:08:58 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 16 17:08:58 2015 -0400"
      },
      "message": "Clean up DrawableContainer.selectDrawable() docs, params\n\nChange-Id: Ic38cbb4a21dab452950ba0e308ceba3cbe966363\n"
    },
    {
      "commit": "6fe1ea778ca66911a18c01eb1eb2a80137294681",
      "tree": "97740efd00ec3958a205bba90659aeba56c5f6bb",
      "parents": [
        "4bd2301eb788aac904903de24d42af1a42eed1b8",
        "0b6cfe22fda3396b4790ac79fc90488bec4a49a4"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 17:04:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 17:04:09 2015 +0000"
      },
      "message": "Merge \"Revert \"Use floating-point value for Drawable level\"\""
    },
    {
      "commit": "0b6cfe22fda3396b4790ac79fc90488bec4a49a4",
      "tree": "3c292728d5df76c6c089cd733abb994bd63e237a",
      "parents": [
        "3da32b768899e7dabe3a16333edf5eca2b9ebe93"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 16:59:49 2015 +0000"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Sep 14 16:59:49 2015 +0000"
      },
      "message": "Revert \"Use floating-point value for Drawable level\"\n\nThis reverts commit 3da32b768899e7dabe3a16333edf5eca2b9ebe93.\n\nChange-Id: Ie75ce0c285e0f59a7a086f64c0cfe088edb5df04\n"
    },
    {
      "commit": "28aa456ac8e42e4d5e9d8c20736288b7017eae4d",
      "tree": "1e061e1710725ca541dc1881f88d4f4aceda5cf3",
      "parents": [
        "965ca42c0e706dc8fdeeb38dd2751de560f198c0",
        "1d8152726b7ef2094f2e99619581c2abd2117381"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 23:50:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 23:50:45 2015 +0000"
      },
      "message": "am 1d815272: am 58c27e3e: am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u00271d8152726b7ef2094f2e99619581c2abd2117381\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "1d8152726b7ef2094f2e99619581c2abd2117381",
      "tree": "fee2f86b4619aa88a12a11c3bc5bb9bc12ab5e74",
      "parents": [
        "26a11c28563c497625f00fc4fba319de9119ee60",
        "58c27e3e53ef64072412515792433e570a176f15"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 23:44:37 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 23:44:37 2015 +0000"
      },
      "message": "am 58c27e3e: am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u002758c27e3e53ef64072412515792433e570a176f15\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "58c27e3e53ef64072412515792433e570a176f15",
      "tree": "a96c418787b11265446f74a8e75afe3961e6247c",
      "parents": [
        "03c26b274aed35c0a580b309567264d00cb643f2",
        "c0ce6c422cfe089e7a8e209ac924e37bed3ca770"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 09 22:41:42 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 22:41:42 2015 +0000"
      },
      "message": "am c0ce6c42: Merge \"Reduce risk of memory corruption due to finalization.\"\n\n* commit \u0027c0ce6c422cfe089e7a8e209ac924e37bed3ca770\u0027:\n  Reduce risk of memory corruption due to finalization.\n"
    },
    {
      "commit": "ffa84e008c712ceffa09d6b89a49882c88b3cca5",
      "tree": "8eb45713334c4fc5f1c2d4bb59e3f8936a91e37f",
      "parents": [
        "596fd38af207727d508a63fca39506c90ba29c44"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 11 17:01:37 2014 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 08 18:27:36 2015 -0700"
      },
      "message": "Reduce risk of memory corruption due to finalization.\n\nMany classes in graphics/java and elsewhere deallocate native memory\nin a finalizer on the assumption that instance methods can no longer\nbe called once the finalizer has been called.  This is incorrect if\nthe object can be used, possibly indirectly, from another finalizer,\npossibly one in the application.\n\nThis is the initial installment of a patch to cause such post-finalization\nuses to at least see a null pointer rather than causing memory corruption\nby accessing deallocated native memory. This should make it possible to\nidentify and fix such finalization ordering issues.\n\nThere are more graphics classes that need this treatment, and probably\nmany more in other subsystems.\n\nThis solution is \u003c 100% effective if finalizers can be invoked\nconcurrently.  We currently promise that they aren\u0027t.\n\n(In my opinion, the real cause here is a language spec bug.  But that ship\nhas sailed.)\n\nBug: 18178237\nChange-Id: I844cf1e0fbb190407389c4f8e8f072752cca6198\n"
    },
    {
      "commit": "660383cfa7f2d2521708155715aeeea1fa0ff287",
      "tree": "afc2e6c295a48f65a1d36d867650490ae6d6358c",
      "parents": [
        "396d3ca71928bac28ec800e2eb8d7f07244798e6",
        "3da32b768899e7dabe3a16333edf5eca2b9ebe93"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Sep 04 14:21:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 14:21:26 2015 +0000"
      },
      "message": "Merge \"Use floating-point value for Drawable level\""
    },
    {
      "commit": "a72f59a858ebda3d96583502d8ac02443d6223c3",
      "tree": "25fbb0ebd0f2f3cae8ed04e9b63f5cad028c1895",
      "parents": [
        "53f1a815b4401f10cd833217143da44ab0408dcc"
      ],
      "author": {
        "name": "Snild Dolkow",
        "email": "snild.dolkow@sonymobile.com",
        "time": "Fri Sep 04 10:08:05 2015 +0200"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Fri Sep 04 10:08:46 2015 +0200"
      },
      "message": "Update mFillPaint color on GradientDrawable inflation\n\nWhen a GradientDrawable is loaded from scratch, initializeWithState()\nis called with mColors \u003d\u003d null. This sets mFillPaint\u0027s color to\n0x00000000 -- transparent. mColors is then properly set in inflate(),\nbut mFillPaint is not updated there. It will be updated eventually\nthrough a mutate() or ensureValidRect() call, but that\u0027s sometimes too\nlate.\n\nIn our case, a wrapping StateListDrawable called getOpacity(), and\nsince it caches the result, it never got updated.\n\nThis doesn\u0027t cause any problems on preloaded GradientDrawables, since\nthe new GradientDrawable created when fetching a preload will call\ninitializeWithState() in its constructor, fixing the GradientState.\n\nChange-Id: Ic8caa7c6a7c1d4dae5ff31ae943831bd2e014f79\n"
    },
    {
      "commit": "084938f2a1b8224bf9ada8a4bc3b48b5cf9275e9",
      "tree": "e70894b2427fe59d9afc0889311b054552dcbcfa",
      "parents": [
        "be3b06766a1ed0e8cecb78c98f08dc2c2703a6d8"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Sep 01 16:03:58 2015 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Sep 02 23:25:37 2015 +0000"
      },
      "message": "Check whether AnimationDrawable is one shot only when visibility changes\n\nWhen AnimationDrawable becomes VISIBLE again, the current behavior is to\nstart the Drawable from the first frame if it\u0027s not running. For one shot\nAnimationDrawable, it should start once and stay on the last frame.\n\nBug: 23725157\nChange-Id: I5f3095aa00b07fefe7f992851d4190f268c266b2\n"
    },
    {
      "commit": "3da32b768899e7dabe3a16333edf5eca2b9ebe93",
      "tree": "fe6702158566934b6fa920983beede3803944a0c",
      "parents": [
        "3d21421a440bb86dcd80bad8bc85fb1e859cd0d8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 02 13:33:58 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Sep 02 13:33:58 2015 -0400"
      },
      "message": "Use floating-point value for Drawable level\n\nThis allows us to run fine-grained level animations.\n\nBackwards compatibility:\nAnother CL will add DrawableCompat.setLevel(float) to forward calls to\nthe existing integer-based method. For callbacks, developers can override\nonLevelChanged(int) and use DrawableCompat.getLevelFloat() to obtain the\nfloating-point level. Overriding onLevelChanged(float) will only work on\ncurrent API.\n\nBug: 23566299\nChange-Id: I431fe6f3679c8f23f9cf3c2bb1f92a4059ee68e3\n"
    },
    {
      "commit": "008d6d034ea68a7ccc5b7c454f642fcaaf9dc2cb",
      "tree": "f29dff4272ddc12266117b31f8643b8646aebde2",
      "parents": [
        "6b49d300346d130d2681cbd3de7165989c3a33f2",
        "a23748a9ff9ddc8b490fc31752afa9b955d5e156"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Sep 01 21:14:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 21:14:11 2015 +0000"
      },
      "message": "Merge \"Add LocaleList support to Paint and TextView.\""
    },
    {
      "commit": "a23748a9ff9ddc8b490fc31752afa9b955d5e156",
      "tree": "f999dd83d86b9a31f992b197b554358aeed812a0",
      "parents": [
        "cd0b88dc0de58e1de42ef7fc0e693354efd793f0"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Aug 31 14:30:36 2015 -0700"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Sep 01 14:12:40 2015 -0700"
      },
      "message": "Add LocaleList support to Paint and TextView.\n\nThis keeps the existing single-locale APIs working (and adds\nparameter annotations to them), while adding an API for setting and\ngetting the whole locale list.  At the moment, the implementation\nignores the actual data in the locale list except for its primary\nlocale.\n\nAlso add a method to LocaleList to return the system\u0027s default locale\nlist. (Currently a one-member list just containing the system\ndefault locale.)\n\nChange-Id: Icea9d164ddae51f50dd71e18b5d91c96f233b8b8\n"
    },
    {
      "commit": "d54e993924da465018f41a84f6aa9f273aa7c9f5",
      "tree": "b03dedf7edbf4995ae82e345bd489170def9b391",
      "parents": [
        "7bbb9ce2537942469b3030c96be0e2274ed92599"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 01 16:10:03 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Sep 01 16:10:03 2015 -0400"
      },
      "message": "Refactor VectorDrawable to use VObject for paths and groups\n\nCleans up collection typing and encapsulation. VObject encapsulates\ninflation, theme application, and drawing. VFullPath is responsible\nfor rendering nodes to a Path.\n\nChange-Id: Ic760576d8000c4844ec3cab1b4bbcecb4fa1b760\n"
    },
    {
      "commit": "8e88b378336d83b5d026b9cd1a0c1cd6703f7369",
      "tree": "e14f07ea2ef0c48d0377ef1d1e3cee6f6b961963",
      "parents": [
        "4d25f52ae13724388e7be09ae2d1c6cdcb48d49b",
        "9151a6995150f7c0495b98b0da59c4b9d5343167"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 16:43:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 31 16:43:28 2015 +0000"
      },
      "message": "Merge \"Implement missing jumpToCurrentState() in LayerDrawable\""
    },
    {
      "commit": "9151a6995150f7c0495b98b0da59c4b9d5343167",
      "tree": "6c293089a97d5a9b22f795889523ffd27864f384",
      "parents": [
        "d69bb6109322cd5a3a7a005b99393018d7e97d0d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 12:39:27 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 12:39:27 2015 -0400"
      },
      "message": "Implement missing jumpToCurrentState() in LayerDrawable\n\nBug: 23674536\nChange-Id: Icf1a4248d82484e48a958ce019b1f9cb0caeac9e\n"
    },
    {
      "commit": "c725e8d5ea04ffb5821e00db1c6b45cfe2130e05",
      "tree": "1ad0cc55d19da4930d3cc3ebe116b01f41cfdda1",
      "parents": [
        "d69bb6109322cd5a3a7a005b99393018d7e97d0d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 11:36:16 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 31 11:36:16 2015 -0400"
      },
      "message": "Add missing @param in ResourceManager, set InflateException source\n\nBug: 11695070\nChange-Id: I94a4980688a952c1f59f1cb15cf2192e3c51de90\n"
    },
    {
      "commit": "caca720b176a0dab0a43a20496e676687e8d78f7",
      "tree": "c32fc791991e60a0579c9ac571a04d6d599e9174",
      "parents": [
        "43c2091a65ff825071206d6cfd7b7b3caddcb6d0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 28 13:15:49 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 28 13:15:49 2015 -0400"
      },
      "message": "Allow inner classes to be used as custom drawables\n\nBug: 22627299\nChange-Id: I2f21927966470594f1b96feac6d5abaa397f2d15\n"
    },
    {
      "commit": "02fc5fef36357467eba22a0ee250a96734daf791",
      "tree": "088ad67d42c904cdb51355df4dcf973c8af54be1",
      "parents": [
        "306a1d22b8afa60aad2dca9e6a67788eb774d534"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 27 13:16:09 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 27 13:16:09 2015 -0400"
      },
      "message": "Extract drawable inflation to its own class, inflate from class name\n\nBug: 22627299\nChange-Id: Icd2ac88af4f3102e08e52f6f0f7565839da6437a\n"
    },
    {
      "commit": "e0367d26c9af7cc4b3dbe0b7a48fded1860938e2",
      "tree": "9cee049191ad6fef7f7d58cac73235490b316ead",
      "parents": [
        "93f1904f1bd4a67e23383123e32e5cfac331a767",
        "b98adf20a0f27a8e717b627801632766547121a2"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Aug 25 23:25:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 25 23:25:20 2015 +0000"
      },
      "message": "am b98adf20: am bdb151ea: am 4816d7d5: am e30e8980: Merge \"Disable RT animations for header ripple\" into mnc-dr-dev\n\n* commit \u0027b98adf20a0f27a8e717b627801632766547121a2\u0027:\n  Disable RT animations for header ripple\n"
    },
    {
      "commit": "191ac0a72b0a7ba883d9cebee6eff71fbea4ef17",
      "tree": "6858e4ff30b8c1b7a447232cf3524a75e5c5d0b8",
      "parents": [
        "db0fa33f44ac2486400a6737b0712f6b1e8a21ef"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 24 17:25:36 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 24 17:25:36 2015 -0400"
      },
      "message": "Reverse order of RT animations so enter animation works correctly\n\nBug: 23428182\nChange-Id: Id54ad19c6ee71e01656f79d413e45cf2e19bd1ea\n"
    },
    {
      "commit": "b7303a36baf8d0ac3efdeeee3310ef5974ba9cea",
      "tree": "849198070694eacf05379994925381764f57b22b",
      "parents": [
        "5eb67c22489f5fda22770d1fc824e7a8013ec025"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Aug 19 16:51:36 2015 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Aug 21 15:21:12 2015 -0700"
      },
      "message": "Disable RT animations for header ripple\n\nBug: 22208997\nChange-Id: I10a890d4f8f70c7c786940ffdb86cf4d21bdaf05\n"
    },
    {
      "commit": "1303a118029da41ab1263f907053e64cafed7816",
      "tree": "0cceebdd2b6b089c8c46758105fa17f80fe6d5c3",
      "parents": [
        "164752df2a242ec0ae144901337082526ba156ad",
        "e5b44d5c66d19dda8c6fb42615c00e6fbef7e822"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 21:47:37 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 20 21:47:37 2015 +0000"
      },
      "message": "am e5b44d5c: am 5646203c: am 63e9875a: am 786529f2: am 54c807e7: Merge \"Translate ripple mask to account for drawable bounds\" into mnc-dev\n\n* commit \u0027e5b44d5c66d19dda8c6fb42615c00e6fbef7e822\u0027:\n  Translate ripple mask to account for drawable bounds\n"
    },
    {
      "commit": "f0d69b9e33e32b60bf953fc775b7843825e99036",
      "tree": "d0c21b7d138c7c66443136c07a150309cab39da2",
      "parents": [
        "e3de6c5df5a94e627c5ee0f188cbb066233a3dd0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 16:27:21 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Aug 20 16:27:21 2015 -0400"
      },
      "message": "Translate ripple mask to account for drawable bounds\n\nBug: 23354529\nChange-Id: Iaa4fde6b37645492cf902f141f975bdef8e7e14e\n"
    },
    {
      "commit": "1ad545d207db840d0e403569ce214431eead4217",
      "tree": "4cc9b9c82734c57071a3d607a4c5d6734c0ebb87",
      "parents": [
        "e4a6f925621e9360238869ae28f7df1b4c2d97de"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 20 14:23:14 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 20 14:27:10 2015 -0400"
      },
      "message": "Fix path direction enum to match native SkPath values\n\nChange-Id: I4010e400cef0baf6dd23d7f7e837a2bfb7154059\n"
    },
    {
      "commit": "4c5efe9290543b723b76a8bd48518da1ae1dcb26",
      "tree": "237eac6feabafc213a787ee0fac5e1148636fd96",
      "parents": [
        "5fa6c7424a041e78a8d4976ec52ef6f684fa3270"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 13:56:39 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Aug 18 15:32:57 2015 -0400"
      },
      "message": "Add ninePatch support to Canvas.h\n\nChange-Id: Ic095291fe55911c6501c1bdefa4b8da973c77319\n"
    },
    {
      "commit": "773bbe0357b17a16d095ce57c30980992a9c977f",
      "tree": "08a0458aead2f32c01372e0411f280b8c01f5781",
      "parents": [
        "c8e6c7996f440655a5b2338faab358adc6d66435"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 17 15:18:29 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 17 15:24:09 2015 -0700"
      },
      "message": "Revert \"Add ninePatch support to Canvas.h\"\n\nThis reverts commit edca320a2b42011f98c308fdf25fc0494c6a5454.\n\nChange-Id: I30ee93cfc1cac391ce152f03e9e13a1ad24dc91b\n"
    },
    {
      "commit": "deead00082df4839e71026750e55c1af4d62782f",
      "tree": "76653aaf7887977b55d37fd664f734c2a5afcfda",
      "parents": [
        "b247ba1ff53190f5b3dbdd6ec68a83b6847be468",
        "edca320a2b42011f98c308fdf25fc0494c6a5454"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Aug 17 17:20:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 17 17:20:55 2015 +0000"
      },
      "message": "Merge \"Add ninePatch support to Canvas.h\""
    },
    {
      "commit": "96b3da660334f35a62faa2946936059895ab6de0",
      "tree": "6110fb93683547183f299ed7536a4657873195fb",
      "parents": [
        "dc12e1531ff9c4f9cc77289cbc7a0cd838ffcb8b",
        "41551849e698129d4bd8861a1de9cb58f1300ec5"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:24:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 14 20:24:17 2015 +0000"
      },
      "message": "Merge \"Add missing accessors on GradientDrawable, NinePatchDrawable\""
    },
    {
      "commit": "41551849e698129d4bd8861a1de9cb58f1300ec5",
      "tree": "a1522f73c90a38094f7a3a0dce5b8f99788c4770",
      "parents": [
        "c2f61b779884647f6f02ed5f920126b34a3adacc"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 10:50:21 2015 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:23:43 2015 +0000"
      },
      "message": "Add missing accessors on GradientDrawable, NinePatchDrawable\n\nBug: 13248977\nBug: 13249029\nChange-Id: Ia8817a264b7063926e75b2f2a238d5ba36e14ab5\n"
    },
    {
      "commit": "dc12e1531ff9c4f9cc77289cbc7a0cd838ffcb8b",
      "tree": "1e611c63bc2821c0c129f4d4c4c307f17bb4e684",
      "parents": [
        "23999bffafb1de67dc03141b0214aa5f2919ebc8",
        "81590a48a4bb0b6700e5535c5bce720ddfc76fa2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 14 20:21:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 14 20:21:50 2015 +0000"
      },
      "message": "Merge \"Remove framework-private HSV APIs, replace with luminance\""
    },
    {
      "commit": "edca320a2b42011f98c308fdf25fc0494c6a5454",
      "tree": "611529655ca34f7b9080abcc0e32fd7abfb3ea5d",
      "parents": [
        "c2f61b779884647f6f02ed5f920126b34a3adacc"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 10 13:56:39 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Aug 14 14:59:37 2015 -0400"
      },
      "message": "Add ninePatch support to Canvas.h\n\nChange-Id: Ib3202fd7c5b9f35853f286abe84b3ed009df1a81\n"
    }
  ],
  "next": "81590a48a4bb0b6700e5535c5bce720ddfc76fa2"
}
