)]}'
{
  "log": [
    {
      "commit": "3409e728e22609b54de8b33d1e614ca51f6d6a77",
      "tree": "90df9518972aded194e80496514f749cdbe7d417",
      "parents": [
        "634ccf7eb80046749df2f8f30ec3d4dc23fa3457"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:46:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 18:01:51 2012 -0700"
      },
      "message": "Correctly pre-clip paths when recording display lists\nBug #6836448\nExternal bug: http://code.google.com/p/android/issues/detail?id\u003d34946\n\nDO NOT MERGE\n\nDisplayListRenderer::drawPath was not invoking quickReject() properly,\npassing x,y,width,height instead of left,top,right,bottom. A path\ncould thus get rejected when it should be drawn instead.\n\nWhile working on this change I found a similar issue with another\ndrawing command, drawBitmapData().\n\nChange-Id: I8306faf72db14d71b54ecb7de295c9a6957d9494\n"
    },
    {
      "commit": "0a386ffac026e259c408b77c2dd2cc5d2e22b5f8",
      "tree": "73000a03928fb3a3ee5c384f1ea74e28b3c3ee3b",
      "parents": [
        "0f8e402e954c6e37102fa70f81a1d8ec47156338"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:13:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:24:09 2012 -0700"
      },
      "message": "Text shadow alpha handling incorrect\nDO NOT MERGE\n\nExternal bug: http://code.google.com/p/android/issues/detail?id\u003d34879\nThis is a regression from ICS.\n\nThis CL also fixes a bug where a View\u0027s alpha would be applied twice.\n\nChange-Id: I13a1546228f44d4c169259414b6fa103a6e4a0fa\n"
    },
    {
      "commit": "16c88085255c71a1a8fc034129aa2dcc61e1ddd0",
      "tree": "d582a3cff3847c2befee35dccd94d2b1e02b018c",
      "parents": [
        "527ee91b60426b5a344e9905c7f9a14d6d26219e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:03:47 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:11:56 2012 -0700"
      },
      "message": "Textured text calls could be invisible\nBug #6597730\n\nText would sometimes not appear when rendered with textured content\n(BitmapShader, LinearGradientShader, etc.) This was due to a misuse\nof OpenGL texture unit in FontRenderer. Textured text normally uses\ntwo texture units:\n- texture unit 0 for the font cache\n- texture unit 1 for the textured content (gradient, etc.)\n\nRecent changes to the font renderer allow it to bind new textures\nwhile processing the text\u0027s geometry (this happens when caches get\nfull or when switching font size for instance.) The bindings were\ndone without ensuring the texture unit was the correct one\n(unit 0), thus replacing the content of another texture unit\n(unit 1).\n\nThis lead to text being drawn using the font cache itself as the\ncontent texture, making the text invisible.\n\nChange-Id: I392b4c884f09223305f6cbc6253e2ef9a98944c9\n"
    },
    {
      "commit": "44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2",
      "tree": "8d54bda8c5b7021be5d923beb641a9efb22dcf30",
      "parents": [
        "43fa4c5261a732decae3bbfaea2a00f8bb9b709c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jun 06 19:03:58 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Jun 07 06:25:04 2012 -0700"
      },
      "message": "Track canvas clearing for swap buffers logic.\n\nA previous fix made it necessary for a frame to render something to GL\nin order to cause a call to eglSwapBuffers(). Besides the calls being\ntracked as part of issuing a DisplayList, there is also a potential call\nto clear the canvas (via glClear()) on non-opaque surfaces. This call is also\ngood to track, since a surface that gets cleared without any other drawing operations\nis worth flipping to the screen (to erase old contents on that surface).\n\nThis fix tracks the status of the pre-draw operations to find out whether\nglClear() was called and then sets the drawing status appropriately.\n\nIssue #6606422 QuickContact dismissal is janky again (Tracking)\n\nChange-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf\n"
    },
    {
      "commit": "932b7f6765968bd526c03512f3805fbc3924dc29",
      "tree": "bc2597383e0c8973b78627690856f883686526a6",
      "parents": [
        "35b691f056159e938a256420f6d3dec1ebf8bfd9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 13:59:33 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 14:02:55 2012 -0700"
      },
      "message": "Revert \"Add more temporary logging for investigating detachFunctor\"\n\nbug:6608646\n\nThis reverts commit 8857b2f76abad1e4ec742dfd85d0c997880be376\n\nChange-Id: I1563b5974c52b84201ae448298f804eb0dcc235d\n"
    },
    {
      "commit": "8857b2f76abad1e4ec742dfd85d0c997880be376",
      "tree": "adb739712e251a296933fb5eeae700f823b0e072",
      "parents": [
        "0c01222ff6507c6e3eaeec7070a510201165d6f3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 10:53:20 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 11:24:46 2012 -0700"
      },
      "message": "Add more temporary logging for investigating detachFunctor\n\nbug:6596807\nChange-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f\n"
    },
    {
      "commit": "51df04b93e8e362edd867abd7efaf1659b8b8b82",
      "tree": "5c416d400d53da96891465fd5b602e063925622b",
      "parents": [
        "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 23:14:14 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Port the legacy velocity tracker strategy.\n\nFor comparison purposes, port the legacy velocity tracker\nalgorithm as it behaved prior to ICS.\n\nBug: 6413587\nChange-Id: I7e8e56584dcdb1a3c660ca9d8f9c5bd5d868e449\n"
    },
    {
      "commit": "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b",
      "tree": "cc91df96eaa76fe98969e40f9b4e9b4dd0babbd3",
      "parents": [
        "18f329e9480fca75210bb7496e5b4bc987b4ad8f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 22:46:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a second order integrating VT strategy.\n\nBug: 6413587\nChange-Id: I51bc7b8cbff22b10b728fc84ee15370e9984dd55\n"
    },
    {
      "commit": "18f329e9480fca75210bb7496e5b4bc987b4ad8f",
      "tree": "8be6eebdeb6dfd2cd64e0715048db571209a7096",
      "parents": [
        "433927c52f2758e3e69f69d7e03d571ee4f18a26"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 14:18:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a weighted least squares VelocityTracker strategy.\n\nNo change to the default strategy.\n\nBug: 6413587\nChange-Id: I08eb6f9a511e65ad637359b55b5993c26ba93b40\n"
    },
    {
      "commit": "1fbbc0716f9b70c6dcee00c4550757077ef7f7b5",
      "tree": "3e6ba76e20907a8f1073e9872d12a82903043bc6",
      "parents": [
        "f47e76e2c78e78e26110786e99548d718d177c32",
        "53dd12a66884540b87fe428383e2f79d0f5e32ba"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:16:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 03 21:16:38 2012 -0700"
      },
      "message": "Merge \"Implement an integrating VelocityTracker strategy.\" into jb-dev"
    },
    {
      "commit": "f47e76e2c78e78e26110786e99548d718d177c32",
      "tree": "654c967f3332be1ee918cc4d8ab1f35451db7e13",
      "parents": [
        "cc822a769e752c2845dc795f05b7b35b5b3f6614",
        "9eb7d86181729c3eb769d71123c4ce9ffc868f08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:16:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 03 21:16:18 2012 -0700"
      },
      "message": "Merge \"Make velocity tracker strategy configurable.\" into jb-dev"
    },
    {
      "commit": "53dd12a66884540b87fe428383e2f79d0f5e32ba",
      "tree": "7493fd04d9e2ad3143b679b9ae30829877ef38e4",
      "parents": [
        "9eb7d86181729c3eb769d71123c4ce9ffc868f08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 13:24:04 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:23:58 2012 -0700"
      },
      "message": "Implement an integrating VelocityTracker strategy.\n\nThis algorithm better tolerates certain kinds of errors in the\ntouch input than the least squares strategy but it may underestimate\nthe velocity of accelerating movements.  This algorithm is\nmainly of interest as a baseline for testing and comparison with the\nleast squares algorithm, which remains the default.\n\nBug: 6413587\nChange-Id: I8ddb50084e44875e234717907e5b06d03f59788c\n"
    },
    {
      "commit": "9eb7d86181729c3eb769d71123c4ce9ffc868f08",
      "tree": "5844b6bfd4c9eac8bc5015fa54f5255a376805c8",
      "parents": [
        "6e8e41a336dfc0c43b672fd105a23aa48c93ec67"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 12:39:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:21:49 2012 -0700"
      },
      "message": "Make velocity tracker strategy configurable.\n\nThis change is very useful for testing purposes because it makes it\neasy to compare different implementations to see how they behave.\n\nThere is no change to the current default strategy.\n\nBug: 6413587\nChange-Id: I4d8567aa4160571ba9fa397ce419882cd9366749\n"
    },
    {
      "commit": "486590963e2207d68eebd6944fec70d50d41116a",
      "tree": "7a176c6cda01c64980c5c27f9bf495b64d08c84f",
      "parents": [
        "20c15a4271ea3a7fb2210430bfc53f611603cf76"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 15:21:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 17:22:27 2012 -0700"
      },
      "message": "Skip eglSwapBuffers() call when we do not draw to GL\n\nThe fix is to track when we issue GL drawing commands, and to skip the\ncall to eglSwapBuffers() when a DisplayList does not result in\nany actual rendering calls to GL.\n\nIssue #6364143 QuickMuni list items and buttons flicker instead of fade\n\nChange-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3\n"
    },
    {
      "commit": "3534e13486a0081b1229e698f13bd3a37efa3fb0",
      "tree": "c2efe65a2e556c6559745e41e7379e8d9435e805",
      "parents": [
        "2d243bc62a899f7af77886a2a2a82872d63226bb",
        "9e08012869f77f212186a5d5856831a85fb73d40"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "message": "Merge \"Avoid crash if onDetachedFromWindow called after destroy\" into jb-dev"
    },
    {
      "commit": "9e08012869f77f212186a5d5856831a85fb73d40",
      "tree": "716edb488c20ac96334f2d4e5f8b85f1f4438784",
      "parents": [
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:00:19 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:52:00 2012 -0700"
      },
      "message": "Avoid crash if onDetachedFromWindow called after destroy\n\nThis also removes the temporary logging from commit\nf8dafa14e058cdc2f408b59be7911abaceb73c47.\n\nbug:6535911\nChange-Id: Icf1d0438b349a0e92e7d9cefed57a252eed2b9b0\n"
    },
    {
      "commit": "7a9328a3118725389564fe2a9b926837fa3d58a9",
      "tree": "d58f465a269c10e94a4a30f6e2929b8980687c27",
      "parents": [
        "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "message": "Merge \"Add temporary functor lifetime logging\" into jb-dev"
    },
    {
      "commit": "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
      "tree": "bf396dc3918ac55847b1929599cbd3c632e24b0f",
      "parents": [
        "638e012d2b5c2b075b48f86d08daec9b36319cfc",
        "ddf74373616c89e0880a28a2185fd7ce3db91de6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "message": "Merge \"Ensure we always set the proper blending mode Bug #6527305\" into jb-dev"
    },
    {
      "commit": "f8dafa14e058cdc2f408b59be7911abaceb73c47",
      "tree": "a3de994c2147cc21885a021199a24d82060527bb",
      "parents": [
        "c8538ade8df2c2f013f8b93094912057ee1cc417"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 13:29:40 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:26:15 2012 -0700"
      },
      "message": "Add temporary functor lifetime logging\n\nbug:6535911\n\nChange-Id: Ida5cc1def7fe1fc314317bbc5df50e1465753deb\n"
    },
    {
      "commit": "ddf74373616c89e0880a28a2185fd7ce3db91de6",
      "tree": "dab9856ef8a857b0b107c2f471b089605a6c73b1",
      "parents": [
        "51f7c6b3620549429cd6c62e38bace43085e04fb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:07:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:08:10 2012 -0700"
      },
      "message": "Ensure we always set the proper blending mode\nBug #6527305\n\nAt the beginning of a frame, always set the blending mode that we\nthink GL is using just in case it was modified by another entity\n(for instance a WebView functor.)\n\nChange-Id: I0e1d0abee8a2abb2b8e7622aed28346e89562c06\n"
    },
    {
      "commit": "c8538ade8df2c2f013f8b93094912057ee1cc417",
      "tree": "f938473c2ecd51d8cfdede8c2ae3404b37b60767",
      "parents": [
        "0eaeb69d1c4849da8ab1df70b84e90837193df67"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 11:54:06 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 11:54:06 2012 -0700"
      },
      "message": "Don\u0027t clear the functor at every draw\n\ninstead clear functors at invoke time, and let them detach themselves as needed.\n\nbug:6511995\nChange-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b\n"
    },
    {
      "commit": "f26c8be01bb218619e073a209c9d57fe9d26c517",
      "tree": "6b00b9fb738143b19c3e3ec2496becc0e5309722",
      "parents": [
        "7e22a223afa63c591ef56cb325163e5e82046822"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 18 10:58:45 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 18 10:58:45 2012 -0700"
      },
      "message": "Sanitize display list properties\n\nThe comparisons used in the various properties setters could fail badly\nin some specific conditions. The scale properties in particular did not\nuse the same comparisons.\n\nThis change also clamps alpha to the 0..1 range which avoids overflow\nissues with lowp registers in GLSL computations.\n\nChange-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d\n"
    },
    {
      "commit": "49c5fc0b9e850497233e189ff9dcc71a78ebe6e7",
      "tree": "7e67e74c97f750a1f04855071f54c357d0857a5b",
      "parents": [
        "66757217a6d8e6a156d15be55bf77940e2e6194b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:10:01 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:15:24 2012 -0700"
      },
      "message": "Avoid unnecessary copy when invoking drawBitmap(int[])\nBug #6483390\n\nChange-Id: I4d2d725ef50c9401b4bd998b6160128102b40745\n"
    },
    {
      "commit": "7b8523aaed11a3b5ee286776023233036ac0759d",
      "tree": "58c6c71a289be050dc1faa97b7eeb7e97ae9e05d",
      "parents": [
        "e4db99cf87c47730e80dc1431f07f4f1062c648e",
        "e651cc6239616a202f6e96ebc2ed93b4b8b3627c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 20:12:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 20:12:09 2012 -0700"
      },
      "message": "Merge \"Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\" into jb-dev"
    },
    {
      "commit": "e651cc6239616a202f6e96ebc2ed93b4b8b3627c",
      "tree": "7aa90f8cccc91555bd652d0a88a898a026cdc333",
      "parents": [
        "99a6ddd4cd8762654a575eb4ac3d0e5431d919b8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 19:44:40 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 19:44:40 2012 -0700"
      },
      "message": "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\n\nChange-Id: Ie28538a2104d21154fdc78a56525e7403f08287d\n"
    },
    {
      "commit": "e4db99cf87c47730e80dc1431f07f4f1062c648e",
      "tree": "de24f68470ac6de5d7ccc274a0a424e8aa632cef",
      "parents": [
        "08b544c7be67343b10a4130611318b8273d06433",
        "90729403d50488566eb4ae0e09bb1be21979a633"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 19:18:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 19:18:15 2012 -0700"
      },
      "message": "Merge \"Detect when pointer has stopped moving.\" into jb-dev"
    },
    {
      "commit": "08b544c7be67343b10a4130611318b8273d06433",
      "tree": "55964ac3c37a8fbc0cc5d9a9f888c0af2e48da1d",
      "parents": [
        "a5b2d487005e967eb43b5e077713d6f9bc819fe4",
        "dcab190bd23f632f278af448b0c85b4cadcc6692"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 19:17:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 19:17:48 2012 -0700"
      },
      "message": "Merge \"Fix pointer indexing issue in VelocityTracker.\" into jb-dev"
    },
    {
      "commit": "90729403d50488566eb4ae0e09bb1be21979a633",
      "tree": "52f3abce5411493e204de30f273bfa955c95af59",
      "parents": [
        "dcab190bd23f632f278af448b0c85b4cadcc6692"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:46:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:57:05 2012 -0700"
      },
      "message": "Detect when pointer has stopped moving.\n\nSome input devices do not generate ACTION_MOVE events while all\npointers have stopped, thereby lulling the VelocityTracker into\na false sense of complacency.  Before handling the following sample,\nreset the VelocityTracker state so as not to be influenced by\nearlier samples before the pointer stopped.  The velocity after\nstopping is assumed to be discontinuous.\n\nBug: 6413587\nChange-Id: I6387bc036ff141d083d3d17a89e37eeaa3188349\n"
    },
    {
      "commit": "47a4a50df09b5ab76ee06cb8845fe5a02952ec32",
      "tree": "ca04808017f0c7d61b7f886af9aecf0db109ff65",
      "parents": [
        "8ce2d78aa89e89e9a5607d8809bf6d248508a531",
        "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:52:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 18:52:59 2012 -0700"
      },
      "message": "Merge \"Improve touch event resampling.\" into jb-dev"
    },
    {
      "commit": "dcab190bd23f632f278af448b0c85b4cadcc6692",
      "tree": "a5ef26d407c976a8d6cc5504393a54636b68b834",
      "parents": [
        "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "message": "Fix pointer indexing issue in VelocityTracker.\n\nVelocityTracker was implicitly assuming that the pointer ids in\na MotionEvent were ordered.  That is not necessarily the case\nso we need to be careful while copying the pointer coordinates out.\n\nBug: 6413587\nChange-Id: I3b23a954f893eebdf786f2a94207149b092ef036\n"
    },
    {
      "commit": "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5",
      "tree": "2171b655c03b965e92a68889ff5bdfea6da10757",
      "parents": [
        "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 17:00:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:31:53 2012 -0700"
      },
      "message": "Improve touch event resampling.\n\nFixed a few bugs related to the id-to-index mapping for\npointer coordinates.\n\nTightened the bounds on the resampling time interval to\navoid predicting too far into the future.\n\nOnly lerp X and Y components of motion events.\n\nAlter the future to satisfy past predictions.  (Rewrite touch\nevents to conceal obvious discontinuities.)\n\nAdded a system property to control whether resampling is enabled\nfor debugging purposes.\n\nBug: 6375101\nChange-Id: I35972d63278bc4e78148053a4125ad9abeebfedb\n"
    },
    {
      "commit": "00ff47484f8137aa3e59f680ff07d2662cfb4088",
      "tree": "2514eedba6d4ecf505067b34e04a653ca2457ba7",
      "parents": [
        "dbd98bfecb34eb3f7101994a6026c7a68ea1e8a9",
        "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 17:12:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 17:12:32 2012 -0700"
      },
      "message": "Merge \"More VelocityTracker refactoring.\" into jb-dev"
    },
    {
      "commit": "99a6ddd4cd8762654a575eb4ac3d0e5431d919b8",
      "tree": "998293d1bb9efd6b3e0fe2dcb6c994a377c98d8b",
      "parents": [
        "9d9758ae30a59dcf594e0d26ba5d4ee153a3e44a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:32:18 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:32:18 2012 -0700"
      },
      "message": "Forget the name of a texture after freeing\nBug #6408362\n\nFontRenderer allocates large font textures when more room is needed\nto store all the glyphs used by an application. Thse large textures\nare the first to be freed when memory needs to be reclaimed by the\nsystem. When freeing a texture, the renderer would however not set\nthe texture name to an invalid name, leading future allocations to\nbe performed on the same texture name. That name could have by then\nbe recycled by the driver and returned by a call to glGenTexture\nand used to create an entirely different texture. This would cause\nthe font renderer to point to the wrong texture, thus leading to\nthe \"corruptions.\"\n\nChange-Id: I8a1e80e5b79e8f21d1baf5320c090df4f2066cd4\n"
    },
    {
      "commit": "9d9758ae30a59dcf594e0d26ba5d4ee153a3e44a",
      "tree": "9e9699b094cb5bc74c9cd1b4249d2b35c42114bd",
      "parents": [
        "ae91c4cbc79ea910753be65e2f1d7899abcb4da2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:19:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:19:58 2012 -0700"
      },
      "message": "Fix two memory leaks\nBug #6408362\n\nChange-Id: I58543938e7b64d83504e11e97b0dd21ef8ebf3b6\n"
    },
    {
      "commit": "ae91c4cbc79ea910753be65e2f1d7899abcb4da2",
      "tree": "9391544d7731f84a661da570357be4f6c99cbf8d",
      "parents": [
        "2411c3361eb2c15b09a8bfadf5c7c4a3de092ea0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 14:00:27 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 14:06:02 2012 -0700"
      },
      "message": "Properly pre-cache latin glyphs\nBug #6408362\n\nChange-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02\n"
    },
    {
      "commit": "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c",
      "tree": "7b1d7b8335caabd8d2f641e5b56a31ff58d6d2b7",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 15:30:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 16:10:57 2012 -0700"
      },
      "message": "More VelocityTracker refactoring.\n\nBug: 6413587\nChange-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6\n"
    },
    {
      "commit": "dfa1046ecab165eb0daf5caa8475e993350f4a2b",
      "tree": "90cf67b49d82feaad76749749c38c59239bc2b08",
      "parents": [
        "2d97a70ff8bbac5ea807003d65b64e3b255e82bc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 12 16:18:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 12 16:22:35 2012 -0700"
      },
      "message": "Add call sites for OpenGL\u0027s debug label extension\n\nChange-Id: I9c689127e8166cbef92c935f8aa07217ab806dda\n"
    },
    {
      "commit": "8a90e6e3174083f274538567d851f98478fc83e9",
      "tree": "2ac01015731bac0d759c8e7b6526ffa4874a369b",
      "parents": [
        "2f0957607411b99810226ad38d59cf18718b86d0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:24:35 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:32:56 2012 -0700"
      },
      "message": "Minor refactoring before starting on velocity tracker changes.\n\nBug: 6413587\nChange-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154\n"
    },
    {
      "commit": "aa9972943cab627db9b10e5c9c4bb80f99f8a4bd",
      "tree": "66e77c9e649a8c1eabb4c907c2178e1106d9f200",
      "parents": [
        "59f3f5853cd05103b5a83f5ddbe584a5270a9c6b",
        "12d434a9be03214e9c673580a6f55128eec9b3f9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 08 13:35:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 13:35:09 2012 -0700"
      },
      "message": "Merge \"Revert \"Add temporary functor lifetime logging\"\" into jb-dev"
    },
    {
      "commit": "12d434a9be03214e9c673580a6f55128eec9b3f9",
      "tree": "3020622d2ae2b33fd5c48bf43ae395d471ab8dca",
      "parents": [
        "2fe99801e81bb7c0ff846b536cbb7a12707410ed"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 08 13:07:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 13:07:13 2012 -0700"
      },
      "message": "Revert \"Add temporary functor lifetime logging\"\n\nbug:6445573\n\nThis reverts commit 2fe99801e81bb7c0ff846b536cbb7a12707410ed"
    },
    {
      "commit": "4bbcae7eb80704d919d8115d523196798e208439",
      "tree": "c6a50af0b94836f8adec0acbe058003e8922c51c",
      "parents": [
        "d8efe42496806b483bbacea28d2456e8b2eac4fb",
        "d3efd6920e64d0207a0655640297d87d4937ee27"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 13:20:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 07 13:20:00 2012 -0700"
      },
      "message": "Merge \"Fix issue where scale-animating text would jump temporarily a few pixels\" into jb-dev"
    },
    {
      "commit": "d3efd6920e64d0207a0655640297d87d4937ee27",
      "tree": "22054ead2157be4ed8db2147a9507e9f94e0e86c",
      "parents": [
        "73b61d67109c9a4267b93c238bb9cbab7b1304c4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 12:18:19 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 12:18:19 2012 -0700"
      },
      "message": "Fix issue where scale-animating text would jump temporarily a few pixels\n\nSome logic in the native matrix code would determine that a matrix was\n\u0027pureTranslate\u0027 based on the scale values of a matrix being close-enough to 1,\nwhich was within a very small epsilon. This works in general, because screen space\ncoordinates make that epsilon value irrelevant, so close-enough really is close-enough.\n\nHowever, TextView, when centering text, works in a coordinate system that is quite\nhuge, with left/right values about 500,000. These numbers multiplied times that small\nepsilon value would give a result that was significant, and would cause a miscalculation\nof up to 4-5 pixels, causing the snap that we\u0027d see for a couple of frames as the\nscale got \"close enough\" to 1.\n\nThe fix is to remove the optimization of \"close enough\". What we really need the matrix to\ndo is to identify itself as being translate-only when no scale as been set (which is the\ndefault). For the purposes of that check, it is good enough to simply check the values against\n1 directly. Similarly, the bounds-check logic needs to check against 0 and 1 directly.\n\nIssue #6452687: Glitch when changing scale of a view containing text\n\nChange-Id: I167fb45d02201fb879deea0e5a7ca95e38128e17\n"
    },
    {
      "commit": "d34dd71800d9a1077e58c3b7f2511c46848da417",
      "tree": "464ac603e38b3c8593cc03d244892ee3fb3502a6",
      "parents": [
        "5380cdc2e1adc8511b05e7623efb44d67be88418"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 02 18:50:34 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 03 11:14:50 2012 -0700"
      },
      "message": "Fix hang/crash in native path code\n\nAn optimization for paths is to only create a texture for the original native\nPath object, and have all copies of that object use that texture. This works in\nmost cases, but sometimes that original path object may get destroyed (when the\nSDK path object is finalized) while we are still referencing and using that object\nin the DisplayList code. This causes undefined errors such as crashes and hanging\nas we iterate through the operations of a destroyed (and garbage-filled) path object.\n\nThe fix is to use the existing ResourceCache to refcount the original path until\nwe are done with it.\n\nIssue #6414050 Analytics Dogfood App crashes reliably on Jellybean\n\nChange-Id: I5dbec5c069f7d6a1e68c13424f454976a7d188e9\n"
    },
    {
      "commit": "2fe99801e81bb7c0ff846b536cbb7a12707410ed",
      "tree": "3cdd741a9ce1897bbd08ee8f4a81e57cd5271cd0",
      "parents": [
        "e849230f444653e692024b4321044cb9f6188919"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 02 13:34:22 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 02 16:37:24 2012 -0700"
      },
      "message": "Add temporary functor lifetime logging\n\nbug:6405861\n\nNote: revert once the above bug is verified fixed\n\nChange-Id: Iae04ec6ffa73a2711f96e128d60011bcb5864b5c\n"
    },
    {
      "commit": "0632b35b6828cd4324b3d218c2e38f895e819aad",
      "tree": "671bc68d2d73cc08001ad1fda16795bd8bf6f3d4",
      "parents": [
        "5a00661bd6a1bfe82656c51d23a3ac6be99602a2",
        "daa3753a04699724d2cfe824ac1f5a266d643a05"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "message": "Merge \"Improve handling of built-in keyboard.\" into jb-dev"
    },
    {
      "commit": "daa3753a04699724d2cfe824ac1f5a266d643a05",
      "tree": "ddc33d395dd0f3d01a95775397356983fb28a076",
      "parents": [
        "32c8113510b2774f865e8ac763976b90d9db2706"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 15:54:03 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 16:34:20 2012 -0700"
      },
      "message": "Improve handling of built-in keyboard.\n\nThe window manager policy made some incorrect assumptions about the\nmeaning of the Configuration.keyboard field.  We need to be more\ncareful about distinguishing between built-in and external keyboards.\n\nMost of this change is to move the determination of the parts of\nthe Configuration related to input devices into the WindowManagerService\nleveraging new features of the InputManagerService to good effect.\n\nThen we plumb through the flag that indicates whether a device\nis internal or external so that we can be more particular about\nhow the lid switch effects changes to the Configuration.\n\nBug: 6424373\nChange-Id: I36a1c22ade35e578955465a25940a33f227b9763\n"
    },
    {
      "commit": "6f9ad204cc529babeb3aa7c9a57cf00ed7188471",
      "tree": "ebd4cc3f8f598ec8da1d778103fedf05dc3036d3",
      "parents": [
        "427db9b3d10d5c203d0351e683c3cddfd270250c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue May 01 10:05:13 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue May 01 10:05:13 2012 -0700"
      },
      "message": "Fix launcher invisibility bug\n\nThere was a bug in the DisplayList code for layers where we would\nset the alpha value for a layer only if the alpha were non-1. This works\nmost of the time (since the value is usually 1 and doesn\u0027t need to\nbe set at all, and if the value is non-1, it is set correctly). But when\nthe value has been set to a non-1 value, setting alpha back to 1 cannot happen\ndue to this logic. This caused launcher to have some invisible pages when\nreturning to Home because those pages previously had an alpha value of 0, and\nsetting the alpha to 1 had no effect due to this DisplayList code.\n\nThe fix is to simply remove the check for non-1 values; we should\nalways set the alpha value of layers to handle all cases.\n\nIssue #6413892 alpha value is messed up after AlphaAnimation\n\nChange-Id: Ia51acb2eaaf0609ea7189998ed449bdd9ea7e05f\n"
    },
    {
      "commit": "ffd6ea4523d8fa1210d2a7bb757cc65e1d18465f",
      "tree": "1e98fb2139d8b5e7dbf8bf395fb8a6fa185ad85a",
      "parents": [
        "65340c1682dc73671d59cfbe27ee86549d23ed1d",
        "771526c88f5cc4b56a41cb12aa06a28d377a07d5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 17:31:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 17:31:50 2012 -0700"
      },
      "message": "Merge \"Resample touch events on frame boundaries.\" into jb-dev"
    },
    {
      "commit": "771526c88f5cc4b56a41cb12aa06a28d377a07d5",
      "tree": "71c36f271192ee66f069f0d1130a73e91b8302b9",
      "parents": [
        "330314c6fb7c178c0f0da65d6aa8c9e7d3004568"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:13:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:58:42 2012 -0700"
      },
      "message": "Resample touch events on frame boundaries.\n\nBug: 6375101\nChange-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3\n"
    },
    {
      "commit": "665a376d245d7bbfc43e3cfa651afc7448604afa",
      "tree": "a838497443ccd7ea52d429f55a9305debdb57a1e",
      "parents": [
        "d51f90ff7e9c5afa3feb4e2c2a3956861c2fd95e",
        "fdd6fc1beb5076a630c7066b8b1731995636c09f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 15:20:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 15:20:04 2012 -0700"
      },
      "message": "Merge \"Work-around for a Skia rasterization bug Bug #6411457\" into jb-dev"
    },
    {
      "commit": "fdd6fc1beb5076a630c7066b8b1731995636c09f",
      "tree": "8df0ddc48fda9ffb9015e3fb190e68ca806646d4",
      "parents": [
        "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 11:47:13 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 11:47:13 2012 -0700"
      },
      "message": "Work-around for a Skia rasterization bug\nBug #6411457\n\nSkia does not generates the bottom right pixel of a rect when\ndrawing a rect as an SkPath into an alpha8 bitmap.\n\nChange-Id: Ifb5286ae67745c9e44ee387b6d6ad607a9a2e6ce\n"
    },
    {
      "commit": "8bd12ea8001f72f4450e318e43c50dbc46b4869c",
      "tree": "9b4edec9a02b98392cad6871b579139bb62cc92a",
      "parents": [
        "87b16c803932e8d54889cdb60117034fdc2ef75c",
        "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "message": "Merge \"Decode common GL error codes when logging frame error status\" into jb-dev"
    },
    {
      "commit": "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f",
      "tree": "476fde78dde6caa2ab5053d2ba2e2c6b344404eb",
      "parents": [
        "8f8d9fb52c65e50a32babf67ef764e173d2a5473"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "message": "Decode common GL error codes when logging frame error status\n\nChange-Id: I38b333eea53aef20340ce48dfcb0dd30a223f7a8\n"
    },
    {
      "commit": "a75fbc3c76dfe6a1c678b66f83cef878e3f3cdf4",
      "tree": "adb91464ca79fb962644d559a48f482c5ee2d87d",
      "parents": [
        "85973212e9a63590118c2ad8937798bc1aa62687",
        "c2c9543c135ffc4e18c7db0e817112ac03e3e97a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "message": "Merge \"On new content, attach functor directly\" into jb-dev"
    },
    {
      "commit": "c189ef53220059acf2adedc92ac4ac7e6a993e6b",
      "tree": "faf8d04864c0276bf4d5166cc72eb0b5fe77e68b",
      "parents": [
        "1b8f499a14a4340d3422d95c7f6fdc8c0c72b3a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "message": "Ensure we start every frame in the proper GL state\nBug #6345013, #6314960\n\nChange-Id: I6985f7f233eb6a5f9223e9f4be3f323154b5dbf0\n"
    },
    {
      "commit": "c2c9543c135ffc4e18c7db0e817112ac03e3e97a",
      "tree": "59bab91aaec14c1682d7f8500d552c21f1326fe9",
      "parents": [
        "7725180c646d1976a2a2097735862a75ec47c544"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:13:52 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:42:59 2012 -0700"
      },
      "message": "On new content, attach functor directly\n\nbug:6323847\n\ndepends on external/webkit change: https://android-git.corp.google.com/g/#/c/184314/\n\nChange-Id: Ibdf997f3ee4f5c5c1ea5a320556813f175fea93f\n"
    },
    {
      "commit": "3d745c03ace18ee59c539e1b7f1df13f22beb57d",
      "tree": "33caa47aa08df523b6f34ec38a25845418c20f10",
      "parents": [
        "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "message": "Fix the build before the bot yells at me.\n\nChange-Id: Ice7fe02b684ad662262aae3cac7a48a835ebcad5\n"
    },
    {
      "commit": "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47",
      "tree": "04f9b4d5589333970c91e51af6280a5859b78460",
      "parents": [
        "88fffb7a34313d5e94b3974d444d07bd6a4879a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 18:22:09 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:29:31 2012 -0700"
      },
      "message": "Prevent WebView from crashing when detached from the window\nBug #6365056\n\nWebView enqueues a functor in the hardware renderer to handle\nanimations and this functor is called at a later time by the\nhardware renderer. However, the functor was not removed from\nthe queue when WebView was removed from the window. This could\ncause the hardware renderer to attempt to execute an invalid\nfunctor and lead to a crash.\n\nChange-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508\n"
    },
    {
      "commit": "8bca94ad83f82682bc15df29dc25377fe43da17f",
      "tree": "04e78f028b7a6b8c8a9e9e66d0aa4d22ed97f073",
      "parents": [
        "fd6a5245ccb0294dada070444d9d9c6be752e668"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "message": "More work on international keyboards.\n\nChanged the English US keymaps to implement a strict US key map\nwith no additional ALT functions.\n\nFixed a bug copying the alias in the InputDevice copy constructor.\n\nAdded support for end of line comments in KCM and KL files.\n\nAdded the German keyboard layout.\n\nSorted the keys in the keyboard layout files by physical arrangement\nto make it easier to maintain them.\n\nBug: 6110399\nChange-Id: If44d83de5b98f2bf0016cbb8e12264387b286aaa\n"
    },
    {
      "commit": "1271e2cc80b01d577e9db339459ef0222bb9320d",
      "tree": "d308bb451af2ecf76715ec0389de3e95b60e6d5a",
      "parents": [
        "003952ba33f711963ad26588b2aca293deb8d50a"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 20 09:54:27 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 23 11:13:17 2012 -0700"
      },
      "message": "Remove USE_DISPLAY_LIST_PROPERTIES flag\n\nThis flag was still hanging around pending any need to disable\nDisplayList properties. But things seem stable, so it\u0027s time to clean up\nand simplify the code.\n\nAt the same time, I reduced redundance in DisplayList dimensions. We\nused to call drawDisplayList() with width/height parameters that were\nused to do a clip reject. This is redundant with the DisplayList properties\nthat set the bounds of the DisplayList; the left/right and top/bottom properties\nrepresent the same width/height properties formerly used in drawDisplayList().\nThe new approach is to not pass dimensions to drawDisplayList(), but to\ninstead pull those dimensions directly from the DisplayList when needed.\n\nChange-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56\n"
    },
    {
      "commit": "5bbd4b4f5fc19302fa017ad6afee6eb2d489d91a",
      "tree": "2bc118a5ef332003cc7f6791968076c48b3cf84b",
      "parents": [
        "9e6d4b035d4f012d23264d3d2bc946b1ca02dba1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 19:28:00 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 20:11:12 2012 -0700"
      },
      "message": "Get alias for Bluetooth devices.\n\nBluetooth devices can be renamed by the user.  Make the\ninput system aware of the user-specified name and transparently\npass it down to applications.  This enables the keyboard\nlayout picker Settings UI to use device names that are\nconsistent with what the user set in the Bluetooth UI.\n\nBug: 6363157\nChange-Id: I8eea26ce2c69c2a3f09c8de02e9e847610e0419c\n"
    },
    {
      "commit": "9a2bbf680e3b5b98051b9f2913ab6bd31b77f79a",
      "tree": "0e6d9dc80e52a02873462a0e051e34fd6f657bbc",
      "parents": [
        "f35ea5d25b286e166bdc43a589a45b56b6358499"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 14:09:10 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 15:01:57 2012 -0700"
      },
      "message": "Improve handling of certain keyboard layout properties.\n\nAutomatically choose a default value for the \u0027number\u0027 property\nbased on the characters that the key can generate.\n\nDon\u0027t generate any character when ctrl, alt or meta is\npressed unless the behavior exactly matches the modifier keys\nthat are pressed.\n\nSimplified the basic keyboard layouts taking into account the\nnew features.\n\nBug: 6110399\nChange-Id: Ibc0f0b50c2dcf3f962a33ac77c24d2993b77637d\n"
    },
    {
      "commit": "4a3862f6b0a8971b6ab5b1c46735b28e7604d0db",
      "tree": "4091176054868659d2fa6bec36540f56c08bd116",
      "parents": [
        "6ec6f79e1ac1714e3b837796e99f07ff88f66601"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "message": "Add Dvorak keyboard layout.\n\nAdded support for mapping both scan codes and HID usages to\nKeyLayoutMap and KeyCharacterMap.  Keyboard overlays can\nnow influence how key events are mapped to key codes.\n\nBug: 6110399\nChange-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf\n"
    },
    {
      "commit": "6ec6f79e1ac1714e3b837796e99f07ff88f66601",
      "tree": "02aa55617bfa6dd2eb0bec29156e279c8afaaa0d",
      "parents": [
        "a3bc565882dd3984e995363642b1295fe3d24d10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 16:52:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 17:56:32 2012 -0700"
      },
      "message": "Support loading keyboard layout overlays from resources.\n\nAdded the concept of a keyboard layout overlay, which is\na key character map file that has \"type OVERLAY\".\n\nAdded support for loading keyboard layout overlays from\nresources dynamically.  The layouts are reloaded whenever they\nare changed in the Settings application or an application\nis installed.  This is somewhat more aggressive than necessary\nso we might want to optimize it later.\n\nBefore system-ready, the input system uses just the generic\nkeyboard layouts that are included on the device system image.\nAfter system-ready, it considers the user\u0027s selected keyboard\nlayout overlay and attempts to load it as necessary.  We need to\nwait until system-ready before doing this because we need to\nbe in a state where it is safe to start applications or access\ntheir resources.\n\nBug: 6110399\nChange-Id: Iae0886d3356649b0d2440aa00910a888cedd8323\n"
    },
    {
      "commit": "a47425a13c19f95057df78b8bb65bb25657e8753",
      "tree": "675c0d6bf611f2427bb3d11315d410bf9087b20a",
      "parents": [
        "c2346134bb519a54d50655cbef940fc3fdec60a9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 04:09:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 17:01:15 2012 -0700"
      },
      "message": "Add support for input devices that have vibrators.\n\nAdded a getVibrator() method to InputDevice which returns a Vibrator\nassociated with that input device.  Its uses the same API as the\nsystem vibrator which makes it easy for applications to be modified\nto use one or the other.\n\nBug: 6334179\nChange-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e\n"
    },
    {
      "commit": "882735972e9e7ee52a3116a3aba0440968b2da1a",
      "tree": "be12d9a5d1f8608629d74382f6f1927eadcbbdb8",
      "parents": [
        "d4fecc2567ca54427b9c86900bccbc7103ea8fde",
        "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "message": "Merge \"Notify applications when input devices change.\""
    },
    {
      "commit": "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b",
      "tree": "50cf9dd27d673bc5b3f75e6e18e9577873eecd6c",
      "parents": [
        "cc1169831921d9295b2fc01c1eaf7e9b00836f53"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:54:54 2012 -0700"
      },
      "message": "Notify applications when input devices change.\n\nThis change allows the InputManager to keep track of what input\ndevices are registered with the system and when they change.\nIt needs to do this so that it can properly clear its cache of\ninput device properties (especially the key map!) when changes\noccur.\n\nAdded new API so that applications can register listeners for\ninput device changes.\n\nFixed a minor bug in EventHub where it didn\u0027t handle EPOLLHUP\nproperly so it would spam the log about unsupposed epoll events\nuntil inotify noticed that the device was gone and removed it.\n\nChange-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3\n"
    },
    {
      "commit": "a23eed808a1ae4ec0d818c0a9238385e797fd056",
      "tree": "5255c66fa7fe89763e19e0c2b0476c6b3a52a2fe",
      "parents": [
        "b187d52f8adaad068997595118f32cb02d7a9013"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:19:04 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:20:16 2012 -0700"
      },
      "message": "Fix layer blending bug\n\nCached layers were sometimes retaining an obsolete blending\nvalue, causing artifacts where translucent objects were disappearing\ncompletely. Also, added extra tracing info for DisplayLists.\n\nIssue #6303668 Flickering views during SwipeHelper drag\n\nChange-Id: I66ce158652c4a3ed316040585b40b1744e1fad0c\n"
    },
    {
      "commit": "cc1169831921d9295b2fc01c1eaf7e9b00836f53",
      "tree": "0817567e4363330957337e0b3bb6387c4911e25f",
      "parents": [
        "49ccac530b5a798e3c4a79b66b51b8546a0deed1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "message": "HID usage should take precedence over scan code.\n\nChange-Id: Ibd8988e3dcc0d64f4019ffe491d9789733f9d243\n"
    },
    {
      "commit": "49ccac530b5a798e3c4a79b66b51b8546a0deed1",
      "tree": "0b25fa1110effb7e8aa46905928b0b159daa96ab",
      "parents": [
        "db13a6bf788cc48af86c8acf6f74b416dfd84199"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 18:27:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 20:28:09 2012 -0700"
      },
      "message": "Refactor key code mapping.\n\nAdded handling for EV_MSC / MSC_SCAN which typically reports\nthe HID usage associated with a key.  This will enable key maps\nto map keys with HID usages that Linux does not natively recognize.\n\nRemoved keyCode and flags fields from EventHub RawEvent since\nthey don\u0027t necessarily make sense in isolation now that we\npay attention to HID usage codes too.\n\nRemoved the fallback code for mapping keys and axes.  In practice,\nan input device should be self-sufficient.  We should not ever\nneed to look at the built-in keyboard\u0027s key map.  In fact, there\nusually isn\u0027t a built-in keyboard anyhow.  This code was originally\nworking around a problem where we weren\u0027t loading the key map\nfor touch screens with virtual keys, which has long since been fixed.\n\nChange-Id: I0a319bdec44be9514f795526347397e94d53a127\n"
    },
    {
      "commit": "7b6a75872bd2df96a23453d31c2e2e7fcc373554",
      "tree": "4ef0ab122aa11dc7b039693cfce420b8be063996",
      "parents": [
        "d1f3de40ba50f0a3c4545139ea57242612f52971"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "message": "Pass width/height parameters to webview\n\nWhen webview draws into an fbo layer, it needs to know the\nsize of that surface to create the rendering transform appropriately.\nThis change copies in the current viewport size to the structure that\nis passed to the webview.\n\nChange-Id: I7160b0836d00834134c799c95a439cdc045e2035\n"
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "5bcbfcec4bc49a141341dd333aed2d0d774d04a0",
      "tree": "f995770d6649629f57f913f55407812d8eec2b5b",
      "parents": [
        "1558294582b6a4897fea7c8dafafb188ce5ec939"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Apr 06 16:33:11 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Apr 06 16:33:11 2012 -0700"
      },
      "message": "You don\u0027t need LOCAL_STATIC_LIBRARIES when building static library.\n\nand there is no target static library with name libutils.\n\nChange-Id: Ifec34e1b484d749d3fcd11abe610f192a3213767\n"
    },
    {
      "commit": "69bba1dfb75a732e9d1ee92f1088d6fbe1e26f68",
      "tree": "a76e4ccc8eb89ca531b9b393d44d5d0716fb4606",
      "parents": [
        "43de94a94365b024d3ceab5dfe5710e966ec5685",
        "e38fdfae9196afd1bdc14c5ec6c12793af1e2550"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 15:04:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 15:04:53 2012 -0700"
      },
      "message": "Merge \"Add a unique input device descriptor.\""
    },
    {
      "commit": "e38fdfae9196afd1bdc14c5ec6c12793af1e2550",
      "tree": "54523ccf3fc36a1b50410e2cb6e6d1f7230c40cf",
      "parents": [
        "dc0dbbd4a005f16624978b95817b33156acac526"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:51:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:57:19 2012 -0700"
      },
      "message": "Add a unique input device descriptor.\n\nThe purpose of the input device descriptor is to make it possible\nto associate persistent settings for each input device, such as the\nkeyboard layout.\n\nThe descriptor is a hash of the information we have about the\ndevice, such as its vendor id, product id, unique id, name,\nor location.\n\nBug: 6110399\nChange-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981\n"
    },
    {
      "commit": "65924a3e56c2e7ac863f8e25e9f9a58b9db7d513",
      "tree": "b7e3da17b6ebfb31eb9bb7e13adb8345e6f793bb",
      "parents": [
        "7c8fd157da36b68529b08b820051ce775f84a9bf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "message": "fix functor flag parsing, tweak process delay\n\nChange-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012\n"
    },
    {
      "commit": "fda531c9e4e49cfd962d3784b3501f6a1e64dc22",
      "tree": "87adda86eddc128b9b4ec4ea917cd37323a94c07",
      "parents": [
        "30bd284cca7540be3eba2e7874a2c69e051771ce",
        "7b63142d2f4bc32beacedcc761453b8aea1f3a86"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "message": "Merge \"Disable AA lines vertex attrib arrays after rendering\""
    },
    {
      "commit": "7b63142d2f4bc32beacedcc761453b8aea1f3a86",
      "tree": "97efda39b916945683bb98f954438cb86c8a01e5",
      "parents": [
        "2946445b560fde5e63df17f5a2db60c8349fe532"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "message": "Disable AA lines vertex attrib arrays after rendering\n\nChange-Id: I2f035e9d87f4f97bc1e37355c84570fd58df0374\n"
    },
    {
      "commit": "8c8c2400923bd5b0ab1f52adc4f2232dbf690d91",
      "tree": "5c45fa37ab5c4a3666bf5fb15d9b3c108009ca05",
      "parents": [
        "af92c532e7e0fc076aa8fb55c43f8964dba16fcb",
        "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "message": "Merge \"Optimize FBOs composition\""
    },
    {
      "commit": "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62",
      "tree": "1aebdbebe17e17239231c890710b5b1c9c0ac4ae",
      "parents": [
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "message": "Optimize FBOs composition\n\nChange-Id: Ifc8eada8922509373c0e4c3b2ed75b6f08d098de\n"
    },
    {
      "commit": "db8c9a6a4d9bf8c39f834b25611926caf21380f6",
      "tree": "5a1ef2e49ea05c5a28477fcf8525ca66e8e31890",
      "parents": [
        "b3fa3960a03ef553e58bf1add88029a6c072c6b6"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Mar 21 18:54:18 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Apr 03 14:02:17 2012 -0700"
      },
      "message": "Optimization of alpha with DisplayList properties\n\nSome views (such as ImageView and TextView) handle non-opaque alpha\nvalues directly. This was originally an optimization, but we can handle it faster\nin many cases without this optimization when DisplayList properties are enabled.\nBasically, if a view has non-overlapping rendering, we set the alpha value directly\non the renderer (the equivalent of setting it on the Paint object) and draw each\nprimitive with that alpha value. Doing it this way avoids re-creating DisplayLists\nwhile getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.\n\nChange-Id: I0f7827f075d3b35093a882d4adbb300a1063c288\n"
    },
    {
      "commit": "e2eaf6997d429249904f842092b075f3da92c5be",
      "tree": "2187a2a450cdf80d9b1ea10eb53d7d15b09753e6",
      "parents": [
        "7eae9cb4e732934741c66f3c76a1c1f7d556af43",
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "message": "Merge \"Prevent crash when flushing the layers cache Bug #6258973\""
    },
    {
      "commit": "5c88fc744db977ef26887df9605beaa409394806",
      "tree": "3c782510909ace46a555514d9b08044289107406",
      "parents": [
        "6db53c34a7fe8fdc2a8775dc5a400776e2716d38"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:43:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:45:25 2012 -0700"
      },
      "message": "Prevent crash when flushing the layers cache\nBug #6258973\n\nWhen flushing the layer caches we would attempt to delete the FBOs\nassociate with layers in the cache. The FBO property was however not\nalways properly cleared when recycling layers.\n\nChange-Id: I7dedfe391d659a0849f1e1d84df17313b2c6e2b2\n"
    },
    {
      "commit": "b6a80077dca5a17f33350075485a534d7ed8fa2b",
      "tree": "2028588973227614603bb68a124fc58609001561",
      "parents": [
        "191310b7d367b491496de85dce5e286ebfdc4c73",
        "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 17:07:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 17:07:21 2012 -0700"
      },
      "message": "Merge \"Allow fine-grained control over functors execution\""
    },
    {
      "commit": "8d56b0e1d24f7392314df4be6503af395a843696",
      "tree": "35778539d3be9284697f45d1b4962a46c0c57532",
      "parents": [
        "78e2c336de8984dd86410351efedab86ad617ee8"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 16:34:48 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 16:34:48 2012 -0700"
      },
      "message": "Enabling DisplayList properties\n\nAn earlier commit fixed problems with enabling DisplayList properties.\nThis CL actually enables the properties.\n\nChange-Id: I5c41d0c64e9241822af53eb367de0fed7d9608e0\n"
    },
    {
      "commit": "9420abd56a2af7ddbeb70562b79d61b2dca8c5a1",
      "tree": "8625a64e2d9ffd1520d890c2eb7989ccbef28adc",
      "parents": [
        "1d6013357847983180a317e2acaf807bde8b7ea7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 16:28:32 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 15:31:24 2012 -0700"
      },
      "message": "Re-enable DisplayList properties.\n\nRe-enabling DisplayList properties last week caused some app\nerrors due to the way that some transforms were being handled (specifically,\nthose coming from the old Animations and ViewGroup\u0027s childStaticTransformation\nfield). This change pushes *all* transform/alpha data from View.draw() into\nthe view\u0027s DisplayList, making DisplayLists more encapsulated (and correct).\n\nChange-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938\n"
    },
    {
      "commit": "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9",
      "tree": "8e49ffa8f5405f22b8bb12be9e5607ec6a0fc00a",
      "parents": [
        "e6c966caa3aff3099e6fb00caefa10387f57b9c3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 27 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 15:15:07 2012 -0700"
      },
      "message": "Allow fine-grained control over functors execution\n\nAdds non-drawing execution mode\n\nChange-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf\n"
    },
    {
      "commit": "f1260aac0ea7d48794177da0078ab6e85df3f1f3",
      "tree": "7c10c6141a54b91028e523d9ca7392b50679936c",
      "parents": [
        "34461ef1961bfda11601a715944a8ff5ef5f9df4",
        "76240dafe8654cc3b858241e76618e5b2db5451c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:45:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 09:45:38 2012 -0700"
      },
      "message": "Merge \"Disable DisplayList properties pending fixes for AlphaAnimation\""
    },
    {
      "commit": "76240dafe8654cc3b858241e76618e5b2db5451c",
      "tree": "940bdac8b8de930b1cd811ff96c590b894af6c6c",
      "parents": [
        "ee9da04edc5adb8fdcce489ecd09eb67fc2c295e"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:42:34 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:42:34 2012 -0700"
      },
      "message": "Disable DisplayList properties pending fixes for AlphaAnimation\n\nThe new DisplayList properties design has ordering conflicts with the\nway that alpha works with old animations (AlphaAnimation). This CL\ndisables DiksplayList properties while I\u0027m working on a fix and some\nmore thorough tests for old animations-vs-DL properties in general.\n\nChange-Id: I8f6893138f939171491c2ec3c889214ee55d17b7\n"
    },
    {
      "commit": "972ed5809c518ecaaca58723e85282e58c12758c",
      "tree": "e6aeb30c8f0e14ccaa8a56fec5a088040c1a3bf6",
      "parents": [
        "c8947b3d795f9539d248edf95652974f49142b78",
        "b43a1e5ddf274eb5e01dc8e450bd15b640bebe9f"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 15:08:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 15:08:56 2012 -0700"
      },
      "message": "Merge \"Moving libRS\""
    },
    {
      "commit": "b43a1e5ddf274eb5e01dc8e450bd15b640bebe9f",
      "tree": "bf9d1b5d92ef8f65afd8c51016a5da7130bc6d3e",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "message": "Moving libRS\n\nChange-Id: I1e42204e862585b9c2f7818b615890c60f08faf6\n"
    },
    {
      "commit": "d927a1d99630c05ff773f0e9e8791ca9a965e020",
      "tree": "760f8a19e317d68f937eda312efab59200880ecd",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "message": "Deleted the media, camera, drm related files since they are relocated\n\nChange-Id: I9bc5573ee07e30b305b5b879023aa9ec69e10b91\n"
    },
    {
      "commit": "c72cb1c2e0fe7966f4a32a51ef6b5238516ea772",
      "tree": "a2bfba6331eb3f3b101c0b085f041ce62a1931d3",
      "parents": [
        "b85967b9af76e1e60f7a96603e2567a6449d2e04",
        "5ff1959f9541980c2c957f482a4b0999533bbb4e"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Tue Mar 27 08:49:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 08:49:52 2012 -0700"
      },
      "message": "Merge \"State based shader recompile to support camera input.\""
    },
    {
      "commit": "b85967b9af76e1e60f7a96603e2567a6449d2e04",
      "tree": "e1df4cdf8baa0315ee6296feb238d1722dcf7370",
      "parents": [
        "b3cbd0b4d827577b3b8ad34106779c67a48701dd"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 26 14:37:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 27 08:17:54 2012 -0700"
      },
      "message": "Re-enabling DisplayList properties\n\nSeveral issues came up after DisplayList properties were enabled,\nso they were disabled pending fixes. Those issues have been fixed, so\nDisplayList properties are once again being enabled by default. This\nCL both re-enables these properties (in View.java and DisplayListRenderer.h)\nand fixes the various issues that enabling them caused the first time around.\n\nRelated issues (all currently marked as Fixed, though that was simply because\nDL properties were disabled - this CL provides the real fixes now that\nDL properties are enabled by default):\nIssue #6198276 Text input broken\nIssue #6198472 Native crash at pc 00076428 in many different apps in JRM80\nIssue #6204173 Date/time picker isn\u0027t rendering all parts of UI\nIssue #6203941 All Apps overscroll effect is rendered weirdly/has flickering\nIssue #6200058 CAB rendering issue - not drawing items?\nIssue #6198578 Front camera shows black screen after taking picture.\nIssue #6232010 Layers not recreated when children change (DisplayList properties)\n\nChange-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b\n"
    },
    {
      "commit": "f82b111a6d1cce9a31a008c6461ee72fa350f278",
      "tree": "77f0a9597b752713fc6d614329cb7c70385eb9a5",
      "parents": [
        "1fc18056eb87e86773a5863ca60623d4023795a6",
        "ae540b9943dfd3b5ff757954a988978b68e73687"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 26 17:20:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 17:20:06 2012 -0700"
      },
      "message": "Merge \"rsdGL uses DummyConsumer\""
    },
    {
      "commit": "56485fe62882065688e70fcb1f4b5c3894ed2c87",
      "tree": "253c902bca219766169277bb2d27aa6135535ddf",
      "parents": [
        "994c26b2a600a5a9fb9fbada9c6299c0488ecda7",
        "6554943a1dd6854c0f4976900956e556767b49e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "message": "Merge \"Use a status_t return type for GL functors\""
    },
    {
      "commit": "6554943a1dd6854c0f4976900956e556767b49e1",
      "tree": "82d43bbb28af4feeb6c358077ac1083ca3598e7b",
      "parents": [
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "ae540b9943dfd3b5ff757954a988978b68e73687",
      "tree": "f33686011a2957c1ef95b21168aa4033af5b5700",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Fri Mar 23 19:44:11 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Mar 26 15:11:47 2012 -0700"
      },
      "message": "rsdGL uses DummyConsumer\n\nUsing a DummyConsumer instead of a SurfaceTexture avoids\nerrors such as BufferQueue has been abandoned due to the SurfaceTexture\ngoing out of scope and disconnecting from the BufferQueue.\n\nBug: 6172739\nChange-Id: I775ead2d0392a68fd0f7e724d6eb25298d2fb00d\n"
    },
    {
      "commit": "9dcd8c2ab115a0275ed2d1a3846e4788dce9eabb",
      "tree": "1cda95a295f79c531d0e019b497a085878051e78",
      "parents": [
        "0eee33de1558b96462566348d4850556b0b31cc6",
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:53:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 14:53:36 2012 -0700"
      },
      "message": "Merge \"Prevent random crashes on SGX architecture Bug #6219894\""
    },
    {
      "commit": "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd",
      "tree": "7ac017a6e046d16bd148a225b283532a3592c69e",
      "parents": [
        "d4577c0c29f8e38a34d1aeac59803b37769af790"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:52:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:52:00 2012 -0700"
      },
      "message": "Prevent random crashes on SGX architecture\nBug #6219894\n\nChange-Id: If77f29da03e557a50e53bae505e1c638a1dbe2cc\n"
    }
  ],
  "next": "5ff1959f9541980c2c957f482a4b0999533bbb4e"
}
