)]}'
{
  "log": [
    {
      "commit": "d1f3de40ba50f0a3c4545139ea57242612f52971",
      "tree": "aa9701cf0ec2e9589721c97e0596192e813e6c9f",
      "parents": [
        "50a926789f9ec335f72346a3a1c922729a301f34",
        "3bdcdd8531781569d501e7023c22e25e2bae0dd1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 10:52:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 10:52:17 2012 -0700"
      },
      "message": "Merge \"Be more careful about exceptions in input callbacks.\""
    },
    {
      "commit": "50a926789f9ec335f72346a3a1c922729a301f34",
      "tree": "1a4096a95ac15f190fcffb10f406f06f2f3231a6",
      "parents": [
        "b4148125490d48fb57c69b8543c997e3a6be1f44",
        "f882f1ad4edd790483924e7bf485fd7c7240d110"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 11 10:24:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 10:24:20 2012 -0700"
      },
      "message": "Merge \"Bind to the correct face lock service.\""
    },
    {
      "commit": "8d33d39d68d46af758143a56c89322360cbbada2",
      "tree": "0ab6d8815b5864cd74f299bcc458d0592bf980db",
      "parents": [
        "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
        "01038492ff0317f0d3cff54d8a7ee36bb31ff175"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 11 00:12:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 00:12:59 2012 -0700"
      },
      "message": "Merge \"Show physical keyboard control button on the input method switch dialog\""
    },
    {
      "commit": "01038492ff0317f0d3cff54d8a7ee36bb31ff175",
      "tree": "cb598b11ea2c012bd15e7e7f44a3006f752c0b81",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 09 21:08:27 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 11 15:49:35 2012 +0900"
      },
      "message": "Show physical keyboard control button on the input method switch dialog\n\nBug: 5240095\nChange-Id: Ica768083f95c33dc1e494a28ba7d8b6eb989b0ef\n"
    },
    {
      "commit": "3bdcdd8531781569d501e7023c22e25e2bae0dd1",
      "tree": "134407d32b8c13a31e7b847ea884f4e57bcb5aa7",
      "parents": [
        "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 20:36:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 20:36:07 2012 -0700"
      },
      "message": "Be more careful about exceptions in input callbacks.\n\nconsumeEvents() may be called reentrantly so we need to be\ncareful when handling exceptions.  When called directly\nthrough JNI, the exception should be allowed to bubble up\nto the caller.  When called from a Looper callback, the\nexception should be recorded on the MessageQueue and bubbled\nwhen the call to nativePollOnce() returns.\n\nBug: 6312938\nChange-Id: Ief5e315802f586aa85af7eef1bd6e9bea4ce24ab\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": "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb",
      "tree": "6d075d99785de722967eaa3240affa78e96a6718",
      "parents": [
        "b874e5ba816e85a8d60d3063ca172bfb1d693e4f",
        "518e83b8c6408752a15d6c834230c431de23c1a4"
      ],
      "author": {
        "name": "Mangesh Ghiware",
        "email": "mghiware@google.com",
        "time": "Tue Apr 10 18:00:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 18:00:06 2012 -0700"
      },
      "message": "Merge \"On double-tap, simply zoom in if content is too wide.\""
    },
    {
      "commit": "b874e5ba816e85a8d60d3063ca172bfb1d693e4f",
      "tree": "5c77cfa4cbc44cbb38ec0385ebdb1c380c863431",
      "parents": [
        "4527a9242127c28ad9472ec3b7677b444b3ef215",
        "a050663feb6309c63867abd746cdf97388e289a4"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 10 17:58:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 17:58:25 2012 -0700"
      },
      "message": "Merge \"Avoid potential leaks with Runnables posted from ProgressBar\""
    },
    {
      "commit": "a050663feb6309c63867abd746cdf97388e289a4",
      "tree": "5b8af8a90ee2338524103a34ef135c892e8041d4",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 10 17:19:20 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 10 17:52:13 2012 -0700"
      },
      "message": "Avoid potential leaks with Runnables posted from ProgressBar\n\nBug 6093695\n\nHandle pending progress updates when a view is not attached when the\nview becomes attached again. Batch pending progress updates together\nrather than posting separate runnables for each.\n\nChange-Id: I5dea671d5b9fbe1302912ca4734a63955e77ff4d\n"
    },
    {
      "commit": "518e83b8c6408752a15d6c834230c431de23c1a4",
      "tree": "dc44aa5d7f30cf855f5bf575b51f0883f8240419",
      "parents": [
        "4527a9242127c28ad9472ec3b7677b444b3ef215"
      ],
      "author": {
        "name": "Mangesh Ghiware",
        "email": "mghiware@google.com",
        "time": "Tue Apr 10 17:42:49 2012 -0700"
      },
      "committer": {
        "name": "Mangesh Ghiware",
        "email": "mghiware@google.com",
        "time": "Tue Apr 10 17:42:49 2012 -0700"
      },
      "message": "On double-tap, simply zoom in if content is too wide.\n\nBug: 6257654\nChange-Id: I6963476300619d6f0d6af46630f9a86d95ad0dfc\n"
    },
    {
      "commit": "9944ecd28e1c56c4e9f0a50ed6e8be2110ba5c31",
      "tree": "2a66574915f1dc6dc2302400649cc183502e63a0",
      "parents": [
        "2a854c13f864d5493846a7fc66bb6aefeaac8c8b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 15:54:19 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 15:54:19 2012 -0700"
      },
      "message": "Hide the callback for activity animation options.\n\nNot something I want to be stuck reporting forever.\n\nChange-Id: Iab13fb7abb23d466492230242bfbae29f1fd01f3\n"
    },
    {
      "commit": "2a854c13f864d5493846a7fc66bb6aefeaac8c8b",
      "tree": "ebd489d95dd9276e93a92f33af507c321c6d7a97",
      "parents": [
        "4245ab34d12cf7d608f1789981326d9009cc304f",
        "162bc0ea0d7862b92f18d0ce47310a85304205f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 15:25:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 15:25:43 2012 -0700"
      },
      "message": "Merge \"Some small tweaks to improve memory management.\""
    },
    {
      "commit": "f882f1ad4edd790483924e7bf485fd7c7240d110",
      "tree": "ccaf4e7c6197d220e3f65db7f2a8f0d8f28ae74c",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 10 15:13:39 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 10 15:13:39 2012 -0700"
      },
      "message": "Bind to the correct face lock service.\n\nWhen switching users, bind to the correct instance of FaceLock.\n\nTried to get the facelock screen to show up when switching users, but it\ndoesn\u0027t. Power off/on works, but not switching between users on the\nlockscreen. Maybe a timing issue? Or not calling some function to make\nthe overlay visible?\n\nChange-Id: I9300971331c7f0ed93ae7da28170342629426b20\n"
    },
    {
      "commit": "162bc0ea0d7862b92f18d0ce47310a85304205f7",
      "tree": "7d7342164ba4c6dde86e3951bcd6b79dead4273e",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 09 14:06:16 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 14:43:58 2012 -0700"
      },
      "message": "Some small tweaks to improve memory management.\n\nWe now allow processes that currently have stopping activities to\nbe managed as if they were done stopping, so that memory trimming\ncan be done before the process goes to the background.  Hopefully\nthis will reduce cases where the processes goes to the background\nand immediately gets killed, but wouldn\u0027t have had to be killed if\nit had a chance to trim its memory.\n\nAlso change window memory trimming to always do the aggressive\ntrimming when memory is critical, even if not on a low-end device.\n\nAnd tweak web view trimming to not trim for foreground UI events.\n\nChange-Id: I241b3152b52d09757bd14a202477cf69c9b78786\n"
    },
    {
      "commit": "1bee28f4c8a429bba1d82fe778aadbe29b80ba61",
      "tree": "eb46f32887347c769656d981f4e11980ab07b71d",
      "parents": [
        "cd1c059bbc97b67378594f3db03bf0e5c20c9fa8",
        "7102eb2d3068e0b7e5a3b44b61044de20910eca0"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 10 14:23:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 14:23:07 2012 -0700"
      },
      "message": "Merge \"Revert \"Revert \"Keep selection handles in edit fields.\"\"\""
    },
    {
      "commit": "cd1c059bbc97b67378594f3db03bf0e5c20c9fa8",
      "tree": "426dbc36665fa66fdcf4da2bfe51f484b7c262d2",
      "parents": [
        "2b39c3126b3b6b26917395b526bc0d1650f1d96a",
        "7866e84fbcc6a43ddb7641d04e40180dfb8b5319"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Apr 10 14:22:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 14:22:52 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\""
    },
    {
      "commit": "cc0ec913076dfee7fd5c64950334cfd457816aa5",
      "tree": "83962fe12d950828a6cb78f9cded1e332b010e45",
      "parents": [
        "ce5f917b54438a0d1e7b0d5c62f1f2416e7b7d0c",
        "40caf8f4432acd2b9d9230b2b1371660521415c2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 10 14:01:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 14:01:53 2012 -0700"
      },
      "message": "Merge \"Move to Android-specific NTP pool.\""
    },
    {
      "commit": "40caf8f4432acd2b9d9230b2b1371660521415c2",
      "tree": "659eb95e73b9863aafab8788b2c15b5ef0e06a5a",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 10 13:48:10 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 10 13:48:10 2012 -0700"
      },
      "message": "Move to Android-specific NTP pool.\n\nUse \"2.android.pool.ntp.org\" since it returns both IPv4 and IPv6\naddresses.  Verified that NTP client works correctly on both.\n\nChange-Id: I0187ef4a6d3b353cfcc77957b1303ca01c67cbe9\n"
    },
    {
      "commit": "7102eb2d3068e0b7e5a3b44b61044de20910eca0",
      "tree": "cfe9dc1b82db4417cde81d7b5a465864fcb3ff2e",
      "parents": [
        "90c08eafad72454a31282fd887ec23d357c904a4"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 10 13:41:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 13:41:51 2012 -0700"
      },
      "message": "Revert \"Revert \"Keep selection handles in edit fields.\"\"\n\nThis reverts commit 90c08eafad72454a31282fd887ec23d357c904a4"
    },
    {
      "commit": "34ec2b54da52eeed39d9cf9e5f215650b447edd7",
      "tree": "0b0ed3a079dfcfeaeac731c4e3ae4f517d44fbba",
      "parents": [
        "f5711ab0fee749ba665cab59c482151af4bc3ec6"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Apr 10 13:25:33 2012 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Apr 10 13:31:11 2012 -0700"
      },
      "message": "Removed exception from SpannableStringBuilder\n\nBug 6312196\n\nChange-Id: I9cece36b40d8948e0e85bd433954818991009ad5\n"
    },
    {
      "commit": "7866e84fbcc6a43ddb7641d04e40180dfb8b5319",
      "tree": "317fd951fb63f91cde34976a791f66baba57b5ef",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Apr 10 13:29:58 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Apr 10 13:29:58 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I988480b6b1ff1b745b4126ef89ee57b97513d6e2\n"
    },
    {
      "commit": "f5711ab0fee749ba665cab59c482151af4bc3ec6",
      "tree": "dd17d55201d74d6d9fe72b57a60417c55de27ad0",
      "parents": [
        "8330e40b9897afb1e2b2e6354ed3c35e7c557486",
        "90c08eafad72454a31282fd887ec23d357c904a4"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 10 13:16:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 13:16:03 2012 -0700"
      },
      "message": "Merge \"Revert \"Keep selection handles in edit fields.\"\""
    },
    {
      "commit": "90c08eafad72454a31282fd887ec23d357c904a4",
      "tree": "bebc0647cecef432070556bb9ebea18a0cbac46a",
      "parents": [
        "5d84368a7577c5d53ce885cd2d095cc5ba40d924"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 10 13:14:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 13:14:48 2012 -0700"
      },
      "message": "Revert \"Keep selection handles in edit fields.\"\n\nThis reverts commit 5d84368a7577c5d53ce885cd2d095cc5ba40d924"
    },
    {
      "commit": "ad0ef210113f8337f56940962baaf2d19a33871e",
      "tree": "3d8e12bdf5a9e89398a1eddb054b26651a56e4f0",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637",
        "5d84368a7577c5d53ce885cd2d095cc5ba40d924"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 10 12:33:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 12:33:58 2012 -0700"
      },
      "message": "Merge \"Keep selection handles in edit fields.\""
    },
    {
      "commit": "d3ce6f50c114f58a3f50e44764e9b315ac41f637",
      "tree": "218ca271007ddbb20fc6e9f74e954c0934e0d04c",
      "parents": [
        "79af6063d536eb7edbc73be0fa2b8eb734758db7",
        "0249b43f6ce59bfec104f0fe606d9059244f8797"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Apr 10 11:00:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 11:00:57 2012 -0700"
      },
      "message": "Merge \"Faster and simpler replace in SSB, take two\""
    },
    {
      "commit": "79af6063d536eb7edbc73be0fa2b8eb734758db7",
      "tree": "5133d4f8efdcf0ea5fffe95be7f05bdb50f36270",
      "parents": [
        "450c75a59bf510ef97bfc208ee7c7660fdb73afa",
        "e824120016248bcfe3962883fe9f3b0481dd1c3d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 10:31:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 10:31:28 2012 -0700"
      },
      "message": "Merge \"Hide the optional permission stuff, not making it in to JB.\""
    },
    {
      "commit": "0b2b1feaa21914f7fa68073a358b5cba3346f023",
      "tree": "cfb273b4a4d237cdce81669aaeda6316483341b5",
      "parents": [
        "c38cf4c7dbe7d96255d42dabf8ca801830813f5e",
        "f66e930e726f4caf49b7d47c08d160b14628c99f"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Tue Apr 10 06:25:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 06:25:26 2012 -0700"
      },
      "message": "Merge \"Passing useLiveliness flag to FUL in startUi call\""
    },
    {
      "commit": "c38cf4c7dbe7d96255d42dabf8ca801830813f5e",
      "tree": "c34bc1561f67c0838d7ebd4d625b568738dc4589",
      "parents": [
        "06cce885296f60b6cc2d0dad3d167681536a53a5",
        "7d276c377ce0c56630c06a6da431a6cb9bd76d1e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 10 05:33:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 05:33:07 2012 -0700"
      },
      "message": "Merge \"New Android Dreams architecture, disabled for now.\""
    },
    {
      "commit": "9d873d439f017a9a5c017d2c3109360448a98db6",
      "tree": "9b15c2849b47b0256f0a94d9706153f31232b89f",
      "parents": [
        "3da2dc9d4cc4785d2a0eacaf8d00222a46df150b",
        "9847f311f63301ca7d9553abcb0aec56b47cd60c"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 09 22:43:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 22:43:34 2012 -0700"
      },
      "message": "Merge \"Avoid waking EGL in getInitCount\""
    },
    {
      "commit": "3da2dc9d4cc4785d2a0eacaf8d00222a46df150b",
      "tree": "5f2f0f47dbb3f1fac14ec7960e53e522fc2d5873",
      "parents": [
        "02da1f27ed5e9704174bfc17b14cf4cc79715831",
        "0872b370422eb1f9007b4717b8796543873e6390"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 09 22:41:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 22:41:04 2012 -0700"
      },
      "message": "Merge \"Release the scratch pbuffer surface after use\""
    },
    {
      "commit": "2ac05e9c0f8082da41a7b072298c3c2a07f4e317",
      "tree": "1b104d1b64814d0c4cb60e8f7e617812ad2aa39c",
      "parents": [
        "9c8b38113630107a78165d55932c0d1a424e6695",
        "a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 16:49:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 16:49:47 2012 -0700"
      },
      "message": "Merge \"Restrictions for action buttons with text\""
    },
    {
      "commit": "a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b",
      "tree": "a065d566ff776580b546fee06b7dbc5bf1f1718e",
      "parents": [
        "cbcb24cdb812c6f49a17c2c611c4138a7a0a964e"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 15:54:01 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 16:37:52 2012 -0700"
      },
      "message": "Restrictions for action buttons with text\n\nRestrict action buttons with text to 2 lines max. Action buttons with\ntext will always consume at least 2 cells in split mode because they\nlook silly in 1.\n\nNote that this affects text provided by menu items, not TextViews\nembedded within app-provided action views.\n\nFixes bug 6236467\n\nChange-Id: I7bcbf80f448b13a895ddc3bc6a7a555c0f0bac7c\n"
    },
    {
      "commit": "0249b43f6ce59bfec104f0fe606d9059244f8797",
      "tree": "46ceb7c3e6d10e03caace499a8231be9d1e0766f",
      "parents": [
        "7405b90df43a4e2c544f17895158d07130e5922c"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Mon Apr 09 16:02:31 2012 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Mon Apr 09 16:08:37 2012 -0700"
      },
      "message": "Faster and simpler replace in SSB, take two\n\nThis is a new version of CL 179343 which had to be reverted.\n\nThis problem of the previous CL is that the ComposingSpan that\nwas part of the replacement text was correctly added during the\nreplace but was immediately removed because it had a zero-length\nsize.\n\nSwapping the add and remove blocks solves the problem.\n\nThe new non-zero length enforcement also revealed a bug in the\nspell checker where we were creating useless range spans.\n\nChange-Id: I59cebd4708af3becc7ab625ae41bc36837f1a1cf\n"
    },
    {
      "commit": "5d84368a7577c5d53ce885cd2d095cc5ba40d924",
      "tree": "cfe9dc1b82db4417cde81d7b5a465864fcb3ff2e",
      "parents": [
        "cbcb24cdb812c6f49a17c2c611c4138a7a0a964e"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Fri Mar 30 15:18:42 2012 -0700"
      },
      "committer": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Mon Apr 09 15:49:03 2012 -0700"
      },
      "message": "Keep selection handles in edit fields.\n\n Bug 6264769\n Webkit Change: Ie937a8c55da0f8aef66cfcee11beb961669b7168\n\nChange-Id: I9ee89f8b1d4e6954092b8c4d677fb75b79354b36\n"
    },
    {
      "commit": "d408048641ec42f8b15e47c135af788b0c6ca5ef",
      "tree": "394fde6e146c9a0761f8de1c1c106fddb67a9a24",
      "parents": [
        "cbcb24cdb812c6f49a17c2c611c4138a7a0a964e"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Tue Apr 03 11:19:08 2012 -0700"
      },
      "committer": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Mon Apr 09 15:46:55 2012 -0700"
      },
      "message": "Remove composing span after setting text.\n\n Bug 5070241\n\nChange-Id: I8cf7e5f119c7a828df603e91ba4bcf0f571bbc72\n"
    },
    {
      "commit": "e80203959df635536143e9a8c88ec0685c90322b",
      "tree": "4e2076bd97e16723db9c0d22d1780d4911a35a2a",
      "parents": [
        "283be258696d9043ced4003872e0cfe109c4de66",
        "310ee7cf4993ce6aa3f14639917859b7239abef2"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Apr 09 14:09:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 14:09:23 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\""
    },
    {
      "commit": "310ee7cf4993ce6aa3f14639917859b7239abef2",
      "tree": "fe0c6efcdc31256cd706d45fb5bb528bfb30e615",
      "parents": [
        "081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Apr 09 13:54:59 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Apr 09 13:54:59 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I9299202c20b57a4bbdee61cc1db3cb3d7cefb762\n"
    },
    {
      "commit": "f66e930e726f4caf49b7d47c08d160b14628c99f",
      "tree": "e56fda006a71b2bbc7cb3dedec982d1ed97bba6f",
      "parents": [
        "425c726ae0691cadc1b03b5f3726368fbdc46bff"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon Apr 09 14:55:23 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon Apr 09 16:36:28 2012 -0400"
      },
      "message": "Passing useLiveliness flag to FUL in startUi call\n\nBecause of changes in support of multi-user functionaity, the FUL\n\u0027eye blink\u0027 checkbox was no longer enabling liveliness detection.\n\nIt no longer makes sense to check the biometric flags (such as the\nliveliness flag) inside of the Face Unlock service.  Instead, that\nflag is now passed in from lockscreen via the aidl interface when\nstartUi is called.\n\nChange-Id: I591cf1924fbb24da7d54b94ef29824e5197d3b20\n"
    },
    {
      "commit": "425c726ae0691cadc1b03b5f3726368fbdc46bff",
      "tree": "9f509024bcb7c799d3b6d58f1c076a89b30641d7",
      "parents": [
        "82920edd89edda7d8f706d9dce79842586dc8de5",
        "7c5f670bd698c984dcafea8125f4d3939bc42972"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Mon Apr 09 13:27:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 13:27:11 2012 -0700"
      },
      "message": "Merge \"More minor refactoring in SpannableStringBuilder\""
    },
    {
      "commit": "63b81472a33b0bccf38a23c07661f7bcb4c119f7",
      "tree": "857a78255d59c9a71be8500c333b8b664d69cee1",
      "parents": [
        "a379eeca242beb86591ba349784336aa65c8592b",
        "0b8413bbeb528c854e28c5ba1550239867da5c2e"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Apr 09 13:14:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 13:14:28 2012 -0700"
      },
      "message": "Merge \"Make WebView.findAllAsync() and WebView.setFindListener() public.\""
    },
    {
      "commit": "7d276c377ce0c56630c06a6da431a6cb9bd76d1e",
      "tree": "b5c96c71988ec1a0f3cbd7f64269651e69c8de92",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Jan 30 14:33:52 2012 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 15:33:26 2012 -0400"
      },
      "message": "New Android Dreams architecture, disabled for now.\n\nRather than normal Activities (which have a host of problems\nwhen used for this purpose), screen savers are now a\nspecial kind of Service that can add views to its own\nspecial window (TYPE_DREAM, in the SCREENSAVER layer).\n\nDreams are now launched by the power manager; whenever it is\nabout to turn the screen off, it asks the window manager if\nit wants to run a screen saver instead. (http://b/5677408)\n\nAlso, the new config_enableDreams bool allows the entire\nfeature to be switched on or off in one place. It is\ncurrently switched off (and the APIs are all @hidden).\n\nChange-Id: Idfe9d430568471d15f4b463cb70586a899a331f7\n"
    },
    {
      "commit": "0b8413bbeb528c854e28c5ba1550239867da5c2e",
      "tree": "72948ec0bfd3cce3678506f0886a364ecd166776",
      "parents": [
        "0424716328a7d0f7bb794d24f7481a76be08d379"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Mar 26 13:04:10 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Apr 09 11:48:18 2012 -0700"
      },
      "message": "Make WebView.findAllAsync() and WebView.setFindListener() public.\n\nDeprecate WebView.findAll() while we\u0027re at it.\n\nBug: 6052412\nChange-Id: I2f7116786109b4d6a01d24ac892c13b5d1f498f4\n"
    },
    {
      "commit": "bfdd680ab44da173a4a39fcd6feccdebb9d1f855",
      "tree": "7de3a6b4a8718f736545673f30e9d4660ef20307",
      "parents": [
        "081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:49:19 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:57:21 2012 -0700"
      },
      "message": "Migrate to @Override to remove warnings.\n\nBug: 6303344\nChange-Id: I0d33b2ed448467379d576ccd71fb5ae20c878852\n"
    },
    {
      "commit": "081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4",
      "tree": "096e2755d6afa766f5fb802905977aab6d0a6313",
      "parents": [
        "4b3c5232109422c5c9bee044c01721536ceab488",
        "04d5811500874d44010df2b4ce37a0b21095168f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 10:52:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 10:52:26 2012 -0700"
      },
      "message": "Merge \"Tweaks to Activity up navigation\""
    },
    {
      "commit": "4b3c5232109422c5c9bee044c01721536ceab488",
      "tree": "e2344c8cc75b19263247688ed011453eec212405",
      "parents": [
        "079f09c6ca4148d8e640e34ec03a3eb4fb3507cc",
        "21a547823de52806de48f70b8360353344a5ad88"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:31:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 10:31:20 2012 -0700"
      },
      "message": "Merge \"Splice operations before collapsing ifaces.\""
    },
    {
      "commit": "04d5811500874d44010df2b4ce37a0b21095168f",
      "tree": "351bac0ba6a305a65bc3d0a38cc55e0a9aa1f2b0",
      "parents": [
        "e2427cac775390ecae2cd6d0d2ab2a3d6280f2df"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 10:22:12 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 09 10:31:15 2012 -0700"
      },
      "message": "Tweaks to Activity up navigation\n\nBe more explicit in docs about getParentActivityIntent and guard against\ncalls when a parent has not been declared in the manifest.\n\nMove automatic up navigation to happen after dispatch of the menu\nselection event of id android.R.id.home to fragments. (Last.)\n\nFixes bug 6305357\n\nChange-Id: I944e5c40774121f9a28250d8d98da6aa646f9357\n"
    },
    {
      "commit": "21a547823de52806de48f70b8360353344a5ad88",
      "tree": "56214736d2974f63dbdf4d8dd62deb5526965bf9",
      "parents": [
        "b52e3e55098c4a6e3dbfe19885895411cfb38911"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:27:55 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:27:55 2012 -0700"
      },
      "message": "Splice operations before collapsing ifaces.\n\nBug: 6241038\nChange-Id: Ide9058703f7305df8fb070af149ddce0653a0abf\n"
    },
    {
      "commit": "079f09c6ca4148d8e640e34ec03a3eb4fb3507cc",
      "tree": "bf789fd8321728a7c5e2094c632e3ea522999dab",
      "parents": [
        "d1404465df624a66e9f80b2957bf18624a91df7a",
        "59f482764e346a5c5ac118ee1f7b24da645c2559"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 08:39:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 08:39:05 2012 -0700"
      },
      "message": "Merge \"Added support for USB audio devices\""
    },
    {
      "commit": "d1404465df624a66e9f80b2957bf18624a91df7a",
      "tree": "bfb2b0e0487406bac8cc8000da7c5156dae50d4b",
      "parents": [
        "b9e90a3a8d815bf3376432b36169c9ed6471c890",
        "4879f1f183d3d2fd775fe9366934d6077601be05"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 08:35:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 08:35:00 2012 -0700"
      },
      "message": "Merge \"Remove Chronometer logspew.\""
    },
    {
      "commit": "b9e90a3a8d815bf3376432b36169c9ed6471c890",
      "tree": "84316fcb38434cf96791ac4d4bc9e42df10cb993",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc",
        "de6b5152bbea011071c01d252bad8c22dbf9a30e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 07:28:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 07:28:59 2012 -0700"
      },
      "message": "Merge \"Fix alignment of notification action buttons.\""
    },
    {
      "commit": "4879f1f183d3d2fd775fe9366934d6077601be05",
      "tree": "3789f1ca900d78bfd8c4015b11a4654784c2a211",
      "parents": [
        "de6b5152bbea011071c01d252bad8c22dbf9a30e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 10:18:28 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 10:18:28 2012 -0400"
      },
      "message": "Remove Chronometer logspew.\n\nChange-Id: Ie9ea1ac9fb0b8053b00ce162c191dfa44c1ff6ab\n"
    },
    {
      "commit": "63c115c4aa2158ea18338a9fb2c2619755958ddc",
      "tree": "d2d63436732059121c58634ed8794e2c55501967",
      "parents": [
        "12578bde993ff907ce285a68db34ad6c5756c5b0",
        "db919155a87b4adf44874b817838458e04d9d17c"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Fri Apr 06 20:22:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 20:22:57 2012 -0700"
      },
      "message": "Merge \"Expose NORMALIZED_NUMBER in the API\""
    },
    {
      "commit": "12578bde993ff907ce285a68db34ad6c5756c5b0",
      "tree": "a6a55e2197ed3efc715ac2e61536c84194e3dbd0",
      "parents": [
        "cd837070f64a7dffb5e78b37763da63c01600ebf",
        "603b44589682db3ff33ade172facb0c5e309f1be"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 18:26:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 18:26:48 2012 -0700"
      },
      "message": "Merge \"Ensure that apps crash if they throw exceptions.\""
    },
    {
      "commit": "603b44589682db3ff33ade172facb0c5e309f1be",
      "tree": "d0cca13c7957a11a8fe10f652366bb122022c6b0",
      "parents": [
        "e38fdfae9196afd1bdc14c5ec6c12793af1e2550"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 17:39:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 18:25:09 2012 -0700"
      },
      "message": "Ensure that apps crash if they throw exceptions.\n\nPreviously, if an app threw an uncaught exception in an input,\nvsync or native activity callback, it would log the exception then\ncontinue limping merrily along.  In the case of input, it\ncould result in an ANR occurring because we had not drained\nall of the pending input events and marked them as finished\n(we only marked the most recent one finished).\n\nBug: 6304124\nChange-Id: I87d76f7fd605e1a8af1237c66d8d62973080277e\n"
    },
    {
      "commit": "59f482764e346a5c5ac118ee1f7b24da645c2559",
      "tree": "db34c5faaf30daecdbae082961fc71501adeec2d",
      "parents": [
        "85d9e02094a0eefe21b949effb5e7c8f042c92c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 05 19:42:21 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 06 18:24:48 2012 -0700"
      },
      "message": "Added support for USB audio devices\n\nTwo types of USB audio devices are defined:\n- USB audio device: the audio device in USB device mode while\nthe Android device is in USB host mode.\n- USB audio accessory: the audio device in USB host mode while\nthe Android device is in USB device mode.\n\nRenamed intents for analog and digital docks to avoid confusion:\n - ACTION_USB_ANLG_HEADSET_PLUG to ACTION_ANALOG_AUDIO_DOCK_PLUG\n - ACTION_USB_DGTL_HEADSET_PLUG to ACTION_DIGITAL_AUDIO_DOCK_PLUG\n\nFactorized code in AudioService broadcast receiver.\n\nChange-Id: I1b6d0257a9d68ecb9495c78c98bac8c67fec7891\n"
    },
    {
      "commit": "e2427cac775390ecae2cd6d0d2ab2a3d6280f2df",
      "tree": "3aa1c44b9e23321421fcfb4f8a4bfb0349d2c29f",
      "parents": [
        "9f4c85d03be8b639f9d7f7cf65acdc5295ec1994",
        "7ba5d57ad4a0d2d9e348abd0de486a27344dc204"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 06 16:41:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 16:41:17 2012 -0700"
      },
      "message": "Merge \"Add contentDescription for compact action_mode_close_item\""
    },
    {
      "commit": "7ba5d57ad4a0d2d9e348abd0de486a27344dc204",
      "tree": "f222f19baa80d02672a02519f2e4615a7d8a647b",
      "parents": [
        "e7aff2998489dcf2baf731150ebb63a8e8c509cf"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 06 16:39:11 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 06 16:39:11 2012 -0700"
      },
      "message": "Add contentDescription for compact action_mode_close_item\n\nFix bug 6219630\n\nChange-Id: I551624466d02f5d31be7030518b0d47b3b7f03b5\n"
    },
    {
      "commit": "9f4c85d03be8b639f9d7f7cf65acdc5295ec1994",
      "tree": "fc45a0d337250ec813bcfa15523962c26cddfd0e",
      "parents": [
        "5bcbfcec4bc49a141341dd333aed2d0d774d04a0",
        "442d572dda15c61bf5f5af0210a6fd057a0af702"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Apr 06 16:38:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 16:38:34 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\""
    },
    {
      "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": "43de94a94365b024d3ceab5dfe5710e966ec5685",
      "tree": "3a5b22e0b36068b672752f06802e21bbca7969d0",
      "parents": [
        "bf64e70f9b818d992d3aad8424f2f0ad3966d729",
        "bc6862300fe5675addfe4ed5d0c7c345aad463aa"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Fri Apr 06 14:46:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 14:46:24 2012 -0700"
      },
      "message": "Merge \"Revert \"Faster and simpler replace in SSB\"\""
    },
    {
      "commit": "bc6862300fe5675addfe4ed5d0c7c345aad463aa",
      "tree": "fa67dedc022e1946a0efbc60c4a6067e6136df32",
      "parents": [
        "5713c9cfa9a0ed7625c8a48925a5c33b2c070460"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Fri Apr 06 14:37:46 2012 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Fri Apr 06 14:37:46 2012 -0700"
      },
      "message": "Revert \"Faster and simpler replace in SSB\"\n\nBug 6300658\n\nThis change reveals a weird race condition where sometimes the\ntext is entered twice. Adding a debugger slows down everything,\nand the problem is no longer reproducable. Reverting for now.\n\nThis reverts commit ebd9a23817052c4d2aaa1058efa2b80b08003d4a.\n"
    },
    {
      "commit": "bf64e70f9b818d992d3aad8424f2f0ad3966d729",
      "tree": "793029ea2e456a6bfe58fb6eb59f90fe3b380c39",
      "parents": [
        "a987d2bde7789779e23803b858267724dbade2db",
        "c4a07d1caa9befd4fa8165ff05fa5e92480d8e27"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:35:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 14:35:16 2012 -0700"
      },
      "message": "Merge \"Attribute alarm broadcast wakelocks to the sender\""
    },
    {
      "commit": "c4a07d1caa9befd4fa8165ff05fa5e92480d8e27",
      "tree": "21b4785e8bad532974031cbb2f580164689ec2bd",
      "parents": [
        "e4d8a5dd42070d919dbd774f24c6684ecf1e350e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:19:13 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:23:12 2012 -0700"
      },
      "message": "Attribute alarm broadcast wakelocks to the sender\n\nWakelock usage for the purpose of sending an alarm broadcast is now\nattributed to the application which posted the alarm, not to the OS.\n\nBug 5911317\n\nChange-Id: I8cb79c3bd5db467388716ab68285f4ab0bfe468b\n"
    },
    {
      "commit": "36dec4efa8ddd68f28a2597c6bae2e0d49f72c40",
      "tree": "9e47ba7e9fea04cb48fb97abfe36165a2d0dbdf0",
      "parents": [
        "1ade5ae9c812464f086f2151069781db1b27db2f",
        "7ab8c4abca2abb6a5f6d900299365371073bcfd2"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 06 14:14:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 14:14:45 2012 -0700"
      },
      "message": "Merge \"Fixes a bug in migration of lock settings to LockSettingsService.\""
    },
    {
      "commit": "a5372055d37924d536fc43866edea7b09f7c60fa",
      "tree": "212ab6f0d933fbb990eb124d3b6df69ebb717e02",
      "parents": [
        "a3bd242954b1efc9a12cdc352125692925c8f506",
        "b52e3e55098c4a6e3dbfe19885895411cfb38911"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 06 13:40:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 13:40:41 2012 -0700"
      },
      "message": "Merge \"INetworkStatsSession with lifecycle for caching.\""
    },
    {
      "commit": "e824120016248bcfe3962883fe9f3b0481dd1c3d",
      "tree": "463c783909b57b829e22385c954b08a9c2b8e08b",
      "parents": [
        "29d6fa9d8b651b6940e6f3f9182f5b72c404c739"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 13:39:09 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 13:39:09 2012 -0700"
      },
      "message": "Hide the optional permission stuff, not making it in to JB.\n\nAlso lock down the rest of the development tools permissions to\nbe development permissions that must be granted through an\nexplicit shell command.\n\nChange-Id: I1ba216fffe1aab4bb9f83fcef108efc504f892f4\n"
    },
    {
      "commit": "b52e3e55098c4a6e3dbfe19885895411cfb38911",
      "tree": "2b40b88a64184c36d5a3794b8dab7450cc9d99eb",
      "parents": [
        "5713c9cfa9a0ed7625c8a48925a5c33b2c070460"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 06 11:12:08 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 06 13:38:29 2012 -0700"
      },
      "message": "INetworkStatsSession with lifecycle for caching.\n\nUsers outside system_server now explicitly communicate their\nlifecycle, which keeps a strong-reference chain to any fully loaded\nNetworkStatsCollection histories.\n\nBug: 6236498\nChange-Id: I8e22739b6e89a626b676967a736d7117fd000778\n"
    },
    {
      "commit": "85d9e02094a0eefe21b949effb5e7c8f042c92c8",
      "tree": "107e78eaf98560d50d40f660fd1b76968b4a4c8f",
      "parents": [
        "3d4d2159bc84f03ea4be12af8c7de9500985bb82",
        "5e4705a82786103982b2c9980b0dcd0bb54208d3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 13:22:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 13:22:35 2012 -0700"
      },
      "message": "Merge \"Fix dumb bug.\""
    },
    {
      "commit": "442d572dda15c61bf5f5af0210a6fd057a0af702",
      "tree": "781e2561a39b833f445da913e17ce7f56460c826",
      "parents": [
        "dc0dbbd4a005f16624978b95817b33156acac526"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Apr 06 13:04:40 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Apr 06 13:04:40 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I5899fbec882970afd4840aded5ef0eab32b40e54\n"
    },
    {
      "commit": "5e4705a82786103982b2c9980b0dcd0bb54208d3",
      "tree": "0ff7b6abcb061ac713a1f1169326e94264f31f86",
      "parents": [
        "29d6fa9d8b651b6940e6f3f9182f5b72c404c739"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 12:55:53 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 12:55:53 2012 -0700"
      },
      "message": "Fix dumb bug.\n\nChange-Id: I5e0dfc0f03677888c22d938013299a8ec4597c69\n"
    },
    {
      "commit": "3d4d2159bc84f03ea4be12af8c7de9500985bb82",
      "tree": "04f7539e95bb32b9fec322fab4cf9ea27ac2a2a4",
      "parents": [
        "5713c9cfa9a0ed7625c8a48925a5c33b2c070460",
        "65924a3e56c2e7ac863f8e25e9f9a58b9db7d513"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 06 12:51:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 12:51:36 2012 -0700"
      },
      "message": "Merge \"fix functor flag parsing, tweak process delay\""
    },
    {
      "commit": "5713c9cfa9a0ed7625c8a48925a5c33b2c070460",
      "tree": "d738b3b51ac064bfe5a89c2ea390fe06bbbb33db",
      "parents": [
        "29d6fa9d8b651b6940e6f3f9182f5b72c404c739",
        "9d5a4be05b6d51ebb768e5fbcfa27ed9a39269b3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Apr 06 11:29:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 11:29:25 2012 -0700"
      },
      "message": "Merge \"Add Intents to notify when USB audio devices or accessories are attached\""
    },
    {
      "commit": "29d6fa9d8b651b6940e6f3f9182f5b72c404c739",
      "tree": "87c56ad1fb531a82f86f81b7622e8dd95f4a1ecc",
      "parents": [
        "dc0dbbd4a005f16624978b95817b33156acac526",
        "31b0e0e86ad061cd8005e80817bcad017e2d56dd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 11:11:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 11:11:32 2012 -0700"
      },
      "message": "Merge \"Implement call log permission compatibility.\""
    },
    {
      "commit": "9d5a4be05b6d51ebb768e5fbcfa27ed9a39269b3",
      "tree": "db59588972ac584c2a2ead8fb4037429bfc73183",
      "parents": [
        "e7aff2998489dcf2baf731150ebb63a8e8c509cf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Apr 06 09:41:32 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Apr 06 11:00:27 2012 -0700"
      },
      "message": "Add Intents to notify when USB audio devices or accessories are attached\n\nIn this change, only the USB audio accessory support is implemented.\n\nChange-Id: Id9b411319b07a96dc56649ca74cc5f3f89a55a7c\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "7ab8c4abca2abb6a5f6d900299365371073bcfd2",
      "tree": "94e97a0460dd09a23c622100f9cada85e6331039",
      "parents": [
        "2184a985da15eddd010e53120ebb1da9f8af53e1"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 06 09:27:12 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 06 09:27:12 2012 -0700"
      },
      "message": "Fixes a bug in migration of lock settings to LockSettingsService.\n\nDue to the code to handle backward compatibility, the migration\nended up being recursive.\n\nChange-Id: I1c2cf4a81fbdee6a4b74cafb624625716c88cad3\n"
    },
    {
      "commit": "335a6625b6540ad21feaeae3a4f593f86e200019",
      "tree": "9259866ff2153c1818857e80920ebcb4382a6598",
      "parents": [
        "aca9ef4ded2fc4215a8e64036fb170ac334b3f46",
        "2af3524beb75150d347accc925022daa53b4a789"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Apr 06 09:06:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 09:06:28 2012 -0700"
      },
      "message": "Merge changes Iac9cc917,I8eed4b0d\n\n* changes:\n  TextureView: add setSurfaceTexture method\n  SurfaceTexture: add GL context attach \u0026 detach\n"
    },
    {
      "commit": "de6b5152bbea011071c01d252bad8c22dbf9a30e",
      "tree": "6366c45952f361735dd2e8baedfd54de45f31fd8",
      "parents": [
        "419ad1e3b1f82c94ade87a70e7a4d033f9cab818"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Apr 04 23:46:14 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Apr 06 10:23:07 2012 -0400"
      },
      "message": "Fix alignment of notification action buttons.\n\nChange-Id: Ibfb8f54b6aa59f1c7a56a5e3e8b0c762e48dd496\n"
    },
    {
      "commit": "419ad1e3b1f82c94ade87a70e7a4d033f9cab818",
      "tree": "2416da8d808ccf4b65aace3056a99fae4103fa60",
      "parents": [
        "f6710615c6cc1746d1ecc7aebc9afed457dcca41",
        "05a6cbe2863614a1761adc033c905458b27be47e"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Apr 05 22:12:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 22:12:36 2012 -0700"
      },
      "message": "Merge \"Fix a bug with IME blinking just after leaving the lock screen\""
    },
    {
      "commit": "f6710615c6cc1746d1ecc7aebc9afed457dcca41",
      "tree": "0d31e5cf0e4ed91c9b97bfe49bad04c34095738f",
      "parents": [
        "ac14351e16e1258f1cb54e2bf772b8be004eb2b8"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Mar 30 18:31:36 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Apr 06 13:01:51 2012 +0900"
      },
      "message": "Supplement for I772164d9c67e95876c228efcce2\n\nThis should be merged with I1519258dd3ce95ad01\n\nChange-Id: I48c5f86ff43f51913eb69d697bb1d75714b67aa3\n"
    },
    {
      "commit": "31b0e0e86ad061cd8005e80817bcad017e2d56dd",
      "tree": "f69e9622ac7c1d06dbd78fcac3d5934f831417de",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 19:33:30 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 19:33:30 2012 -0700"
      },
      "message": "Implement call log permission compatibility.\n\nIf a pre-JellyBean application requests read/write contacts, it\nwill implicitly be given read/write call log.\n\nChange-Id: I029db4b09fda737bb8fba4e1611355ebdbbfd34f\n"
    },
    {
      "commit": "ac14351e16e1258f1cb54e2bf772b8be004eb2b8",
      "tree": "55c22fe8e19d35764f00a6ffad899e4fd2c4ccd0",
      "parents": [
        "030711c39b6093024d784c1c3d7566bd5a3e3489"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 18:57:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 19:33:11 2012 -0700"
      },
      "message": "Move some APIs from window manager to input manager.\n\nSimplified input injection API down to just one call.\n\nRemoved all input state reading API.  It was only used by the\nwindow manager policy and required a permission that applications\ncould not obtain.  READ_INPUT_STATE is now unused and deprecated.\n\nChange-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00\n"
    },
    {
      "commit": "e8644b695d6c548d2c93e1da7b4a6aff786f1427",
      "tree": "cb83145f1cee9f99da171f49f40eb2f48cb4c270",
      "parents": [
        "dab7850012466a80bc1b10f2f1b8c87e7d050227",
        "9801435820dc159725c0185f18f7e60e0fb1b833"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 19:03:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 19:03:37 2012 -0700"
      },
      "message": "Merge \"Fix so that status bar doesn\u0027t resize when hiding nav bar.\""
    },
    {
      "commit": "9847f311f63301ca7d9553abcb0aec56b47cd60c",
      "tree": "959d24b6c3cd32b6b108f16af78fce1645a4c8f1",
      "parents": [
        "0872b370422eb1f9007b4717b8796543873e6390"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Apr 05 10:37:13 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Apr 05 18:37:43 2012 -0700"
      },
      "message": "Avoid waking EGL in getInitCount\n\nChange-Id: I5e0423b090c27fa4262e2a76ce4d232f8fbb8755\n"
    },
    {
      "commit": "0872b370422eb1f9007b4717b8796543873e6390",
      "tree": "186ff954be5e0f76ba100a995ea90df7f2a30e3d",
      "parents": [
        "dab7850012466a80bc1b10f2f1b8c87e7d050227"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 02 12:22:51 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Apr 05 18:37:43 2012 -0700"
      },
      "message": "Release the scratch pbuffer surface after use\n\nChange-Id: Icf010969d19b20c3ddf64b44a78a115ac92f7ea5\n"
    },
    {
      "commit": "9801435820dc159725c0185f18f7e60e0fb1b833",
      "tree": "62919488882ed2e7c0325746376b83524b6cec32",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 18:31:41 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 18:31:41 2012 -0700"
      },
      "message": "Fix so that status bar doesn\u0027t resize when hiding nav bar.\n\nThe status bar now extends behind the nav bar, and uses\nfitsSystemWindows to ensure its content is not covered.  We\nalways report a stable content insets (as if the nav bar is\nvisible) even if the nav bar is hidden, so the content doesn\u0027t\njump when transitioing.  This does mean that if you only hide\nthe nav bar (and not the status bar), when in landscape you\nwill end up with a status bar whose right side still leaves\nroom for the nav bar.  But why the hell would you want to do\nthat?\n\nAlso improve documentation on setSystemUiVisibility().\n\nChange-Id: I8087d875f1214ef0085a91b5ed5c2f35ff2fc1b3\n"
    },
    {
      "commit": "dab7850012466a80bc1b10f2f1b8c87e7d050227",
      "tree": "3bfcde8a1ee82022d15537f30f4e715025cc6474",
      "parents": [
        "43504980021dc5baacd94384a0a0823c12b92b1a",
        "8ab700cbbab60f7a01a86cbf16496e1f34236dd6"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 05 17:59:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 17:59:33 2012 -0700"
      },
      "message": "Merge \"Fix a bug in TaskStackBuilder where task stack PendingIntents would not clear tasks properly.\""
    },
    {
      "commit": "8ab700cbbab60f7a01a86cbf16496e1f34236dd6",
      "tree": "265d8a0dbb1b68a677433e81626f24db1d33531d",
      "parents": [
        "818e7e9c83ade56574a605e54125b4fdb1b91aaf"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 05 17:54:10 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 05 17:54:10 2012 -0700"
      },
      "message": "Fix a bug in TaskStackBuilder where task stack PendingIntents would\nnot clear tasks properly.\n\nChange-Id: I5a7918fa5e400c160409a45d3e00b32f6f4809aa\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": "43504980021dc5baacd94384a0a0823c12b92b1a",
      "tree": "2c4ba6a2ecd59b0333c765f3655eeb9f26334f4f",
      "parents": [
        "389b65fea2219e389e6212b9a799f8b39dbfc6ca",
        "c00fd7ab302198635885c1e090b41e3d11adc8ea"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 05 17:31:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 17:31:19 2012 -0700"
      },
      "message": "Merge \"Fix 6216452: Add search target to lock screen\""
    },
    {
      "commit": "389b65fea2219e389e6212b9a799f8b39dbfc6ca",
      "tree": "8e689f65e46a58b6dae21f46775462ab0804cf6a",
      "parents": [
        "8b461b6936f2287471c02d217ed4c15a2741b30c",
        "5012ebbc5c00194236f425403e8771061dc7bf92"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 05 17:23:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 17:23:56 2012 -0700"
      },
      "message": "Merge \"Minor twaek to the focus behavior.\""
    },
    {
      "commit": "5012ebbc5c00194236f425403e8771061dc7bf92",
      "tree": "41d2ad203451beaf9424817229486bc3cdf4ac3e",
      "parents": [
        "b39e509f43665f20877e590d007ac4dfab4d918c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 05 17:08:46 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 05 17:22:19 2012 -0700"
      },
      "message": "Minor twaek to the focus behavior.\n\nbug:6296603\n\nChange-Id: I3bd0b291e6013cae019ca9049d9d3dc506845ab0\n"
    },
    {
      "commit": "7c5f670bd698c984dcafea8125f4d3939bc42972",
      "tree": "095830e78b44f24d0d2ce173cb115b410ba14a1e",
      "parents": [
        "8b461b6936f2287471c02d217ed4c15a2741b30c"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Apr 05 17:17:53 2012 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Apr 05 17:17:53 2012 -0700"
      },
      "message": "More minor refactoring in SpannableStringBuilder\n\nNo change in the functionnalities.\n\nChange-Id: I009acc75b4f70e65a810cdc67505bc0b13e627b2\n"
    },
    {
      "commit": "c00fd7ab302198635885c1e090b41e3d11adc8ea",
      "tree": "61177c47cfdbe3cfeaf6eb6a129c4f1eb3cccefd",
      "parents": [
        "e4d8a5dd42070d919dbd774f24c6684ecf1e350e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 22 18:37:38 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 05 17:14:02 2012 -0700"
      },
      "message": "Fix 6216452: Add search target to lock screen\n\nChange-Id: I0784e844fb8e1f904f37d2572c6ddbd6c22e95d1\n"
    },
    {
      "commit": "8b461b6936f2287471c02d217ed4c15a2741b30c",
      "tree": "e20003805034d8ef4df1cab489a06d415566e6de",
      "parents": [
        "2119ade6d737345d58145e773f5877c199a3e20d",
        "ebd9a23817052c4d2aaa1058efa2b80b08003d4a"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Apr 05 17:03:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 17:03:46 2012 -0700"
      },
      "message": "Merge \"Faster and simpler replace in SSB\""
    },
    {
      "commit": "330401243ed992eb62e59c8ac34d6862eb64d712",
      "tree": "41296a3eec05835799c64070afa4493428ca1032",
      "parents": [
        "05b8594f5cf9c8515ec0bcd2949e4ac263db59f6",
        "8fc27e8b87bd1def854a03d84009143b315d4176"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 05 16:17:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:17:54 2012 -0700"
      },
      "message": "Merge \"Support metered Wi-Fi NetworkPolicy.\""
    },
    {
      "commit": "2af3524beb75150d347accc925022daa53b4a789",
      "tree": "59cfc11680f13d6d4589db9c40c387ee63cbd185",
      "parents": [
        "c6d993077761fc737bbb0f4db44b961a4e7b6bbb"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 05 11:44:30 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 05 16:11:43 2012 -0700"
      },
      "message": "TextureView: add setSurfaceTexture method\n\nThis change adds support for transferring control of a TextureView\u0027s\nSurfaceTexture between the UI framework and the application.  It makes the\nTextureView detach the SurfaceTexture from the UI framework\u0027s GLES context\nbefore calling the surfaceTextureDestroyed callback, allowing the app to use\nthe SurfaceTexture in its own GLES context if it so chooses.  This change also\nadds the TextureView#setSurfaceTexture method, allowing an app have the\nTextureView use a SurfaceTexture that already exists rather than creating a new\none.\n\nChange-Id: Iac9cc917687e4239dd1c24eae553709aa37512da\n"
    },
    {
      "commit": "c6d993077761fc737bbb0f4db44b961a4e7b6bbb",
      "tree": "d0211f91c3650c5195d146799479b67652c7d01b",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 05 11:34:02 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 05 16:11:43 2012 -0700"
      },
      "message": "SurfaceTexture: add GL context attach \u0026 detach\n\nThis change adds Java API support for detaching a SurfaceTexture from one GLES\ncontext and then attaching it to a different one.\n\nChange-Id: I8eed4b0d0e339c11598cb0408d9f4f2d99b3aa06\n"
    },
    {
      "commit": "8fc27e8b87bd1def854a03d84009143b315d4176",
      "tree": "f91a0a4b574e925f15c27f2e39db848b0140fc47",
      "parents": [
        "1c35d117f01b5a6f66b82c57eb29350f16694070"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 04 20:40:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 05 16:02:25 2012 -0700"
      },
      "message": "Support metered Wi-Fi NetworkPolicy.\n\nAdd networkId field to NetworkIdentity to identify Wi-Fi networks by\nSSID.  Add support for policies without usage cycles.\n\nOnly apply mobile policies when SIM state is ready, which is cleaner\nthan just checking for airplane mode.  Also avoids creating no-op\ndefault policies when subscriberId is null.\n\nBug: 3001465, 3291052\nChange-Id: I1f8aaa49a5db306df022c402ea7f3f5d4bc0cfc7\n"
    },
    {
      "commit": "e9bdb31ea1dc3c1c2b1833a4bf0031d85928a45b",
      "tree": "6ce11f382c228c01cc4a12102d2ef6f10c4adc3e",
      "parents": [
        "23b871d7147de910b53646cdb987e28dac0df927",
        "4532e6158474a263d9d26c2b42240bcf7ce9b172"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 15:30:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 15:30:10 2012 -0700"
      },
      "message": "Merge \"Refactor input system into its own service.\""
    }
  ],
  "next": "23b871d7147de910b53646cdb987e28dac0df927"
}
