)]}'
{
  "log": [
    {
      "commit": "a301fe61c8573c06be754d5788a84d19188ee2d3",
      "tree": "f74dbb59b431a0e8a526f9067b2e5b28d3354db2",
      "parents": [
        "dd01e5b79f4230ea95756f3f128df9c382f2b40f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 04 08:44:59 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 06 08:36:20 2011 -0700"
      },
      "message": "Fix dumpsys output.\n\nChange-Id: If3f51fbc4608ac295fa22d0aee4008f8dce4fa50\n"
    },
    {
      "commit": "ed30fd8e9a2d65ee5c8520de55b0089c219f390c",
      "tree": "26ba777cc019d3adcba613427a2bb2feabf9a54f",
      "parents": [
        "098b781699981a550500d2e30b4c844af63eb187"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 05 07:35:40 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053\n"
    },
    {
      "commit": "a17de9b493123f0d6e6d0b842150bf29322b7a88",
      "tree": "5a7518cfd3276a2e6ed40504f69fd3f8c3008a34",
      "parents": [
        "f2a4568afca603d3166fd86335abe095cd087393"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "message": "Revert \"Add ability for hierarchyviewer to output displaylist info\"\n\nThis reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.\n"
    },
    {
      "commit": "28baf6f096265664a5cb778b7d2ad1c1974f0f4a",
      "tree": "9844c1a3c1d814513704e5eaa0e0818847592488",
      "parents": [
        "2a2dc6894ae2cea2c0c16b27d9acd5d536c71696",
        "2f5f4bc98b4db21102ff8e8d8116f00ab4d2fd2a"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 04 17:58:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:58:04 2011 -0700"
      },
      "message": "Merge \"Add basic walled garden check\""
    },
    {
      "commit": "2a2dc6894ae2cea2c0c16b27d9acd5d536c71696",
      "tree": "06cf53f5255b16d4ceab67dbf95748554e4087a7",
      "parents": [
        "42a3a39e231c02a3c2b7624cb7c64fe10d6ff4b0",
        "9a13f36cddaad01350bdb5f000167811a1d753c9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 04 17:49:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:49:01 2011 -0700"
      },
      "message": "Merge \"Return NetworkStats bundle from NM service.\""
    },
    {
      "commit": "42a3a39e231c02a3c2b7624cb7c64fe10d6ff4b0",
      "tree": "7c19213bb0eba6602acf262ff603454ced479cc7",
      "parents": [
        "600fc592e7668033913ba376a8a10486db0662c9",
        "b2a4b52e8d5e499d33e2765e8c47851bf0266299"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 17:30:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 17:30:30 2011 -0700"
      },
      "message": "Merge \"Add ability for hierarchyviewer to output displaylist info\""
    },
    {
      "commit": "b2a4b52e8d5e499d33e2765e8c47851bf0266299",
      "tree": "fccd7891e4f5ac2b3bb833f226e2c7c23a28202d",
      "parents": [
        "b969d2d9c1771a3a4c813f2c2824522659d26927"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 17:18:27 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6\n"
    },
    {
      "commit": "9a13f36cddaad01350bdb5f000167811a1d753c9",
      "tree": "024269b4f6c6ab8fb284156955ecace0578eaba2",
      "parents": [
        "588f280fe099dc5b18f15124ffb035fc1f5ef2f1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 26 16:25:36 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 04 16:07:21 2011 -0700"
      },
      "message": "Return NetworkStats bundle from NM service.\n\nIntroduce NetworkStats which is a collection of network statistics,\nwhich should match the structure communicated by kernel module through\nnetd.  Will introduce tags and fg/bg stats later.  Kept entirely in a\nflat data structure to optimize parcel speed.\n\nInitial pass at returning NetworkStats from NetworkManagementService,\nboth summary and details.  Will eventually pull data from kernel module\nover netd connection.\n\nChange-Id: I92d9f61678ec8c22e2ce26775fb035a0cf32413f\n"
    },
    {
      "commit": "b6f8bff10963893435afda7b426c7a5b1ac1cc1f",
      "tree": "577ab1c9d76dbc688a0a1976ad4e1b07d9239679",
      "parents": [
        "9f47d10e6acc079eb0fb5cfbd7267c6fe8f44d18",
        "9c7e6fc50614cc1739d4bfbf6187893c27b01a67"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 12:47:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 12:47:30 2011 -0700"
      },
      "message": "am 9c7e6fc5: am f13eb830: Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE\n\n* commit \u00279c7e6fc50614cc1739d4bfbf6187893c27b01a67\u0027:\n  Add auto-restore timeout for secondary networks.\n"
    },
    {
      "commit": "0c19aaaebb5baf78857e2e18ebe7fb37b7e1cf8e",
      "tree": "23a20876a43b62c67c94d7e7b579201a0671f894",
      "parents": [
        "65b96059766a12454236712931d66bffb311729c",
        "8956dbbc5f292d8b79072ae73b25f2114c8c7479"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed May 04 11:26:38 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 11:26:38 2011 -0700"
      },
      "message": "Merge \"On-screen navigation bar (separate from the status bar).\""
    },
    {
      "commit": "9c7e6fc50614cc1739d4bfbf6187893c27b01a67",
      "tree": "8ff559e845d18c1498258f2fa13fe85e9b0e8cbd",
      "parents": [
        "63de615ddb3cb81bbb5b548693faca971d182a6d",
        "f13eb8301f4704179938e374129f2943c9c38d5f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 10:02:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 10:02:16 2011 -0700"
      },
      "message": "am f13eb830: Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE\n\n* commit \u0027f13eb8301f4704179938e374129f2943c9c38d5f\u0027:\n  Add auto-restore timeout for secondary networks.\n"
    },
    {
      "commit": "f13eb8301f4704179938e374129f2943c9c38d5f",
      "tree": "028311ba07490cd91380100b180a47e26f79a5fb",
      "parents": [
        "36132a488b2974db9a90da809c2f3eeab99a4427",
        "f2102f7a1a26d399cc60c516ed7d90ef660de055"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 04 09:59:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 09:59:30 2011 -0700"
      },
      "message": "Merge \"Add auto-restore timeout for secondary networks.\" into honeycomb-LTE"
    },
    {
      "commit": "20c356128492cf43d9ca10308601be585514f165",
      "tree": "37d06e2d80df44f322f8a3bb1ab862314daef787",
      "parents": [
        "2572051c4f6589e5ca8b21158a24a7fa606a5e67",
        "10fbba21e4827a1582d97aa99e4e8d772ce04920"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:19 2011 -0700"
      },
      "message": "am 10fbba21: DO NOT MERGE MountService: Fix running media scanner at boot.\n\n* commit \u002710fbba21e4827a1582d97aa99e4e8d772ce04920\u0027:\n  DO NOT MERGE MountService: Fix running media scanner at boot.\n"
    },
    {
      "commit": "2572051c4f6589e5ca8b21158a24a7fa606a5e67",
      "tree": "64cbd050402aede01867443e9ad93ad9ddeb46cd",
      "parents": [
        "a2a8419db82ae40146bdfd215e3de3be39c7249c",
        "0aa5d7b7f225236ac8461d0b6835b9c6152a2699"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:12 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:12 2011 -0700"
      },
      "message": "am 0aa5d7b7: DO NOT MERGE Fix deadlock in MountService\n\n* commit \u00270aa5d7b7f225236ac8461d0b6835b9c6152a2699\u0027:\n  DO NOT MERGE Fix deadlock in MountService\n"
    },
    {
      "commit": "a2a8419db82ae40146bdfd215e3de3be39c7249c",
      "tree": "7d40976cd68e10045c4dfae23dfae3c1f6702cb4",
      "parents": [
        "60c768d41277e3b7d4988452e15694c7ad5a74d0",
        "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:57:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:57:07 2011 -0700"
      },
      "message": "am e3b498be: DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\n* commit \u0027e3b498be0ae05367e9b84f4fac2ac5cf57a6b091\u0027:\n  DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n"
    },
    {
      "commit": "60c768d41277e3b7d4988452e15694c7ad5a74d0",
      "tree": "82ec67daf5925d8fe9b7e34a27b651b93787cdbb",
      "parents": [
        "79eb78769c8ecd92624f0171d9f22d95fc093b00",
        "346a2d79ecd627e38bc7fc6874fb627995b8bc12"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 08:56:55 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 04 08:56:55 2011 -0700"
      },
      "message": "am 346a2d79: DO NOT MERGE MountService: Add support for multiple volumes\n\n* commit \u0027346a2d79ecd627e38bc7fc6874fb627995b8bc12\u0027:\n  DO NOT MERGE MountService: Add support for multiple volumes\n"
    },
    {
      "commit": "10fbba21e4827a1582d97aa99e4e8d772ce04920",
      "tree": "8ca9af5627e41c963a3e3bf064625a91b9935f25",
      "parents": [
        "0aa5d7b7f225236ac8461d0b6835b9c6152a2699"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:21:51 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Fix running media scanner at boot.\n\nChange-Id: Ia56573023f21fa067a14e7d3ac5a6dbd51ecc8a7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0aa5d7b7f225236ac8461d0b6835b9c6152a2699",
      "tree": "9bc11ff8ac526d26b59635edf1512ae3cd7afd0c",
      "parents": [
        "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:05:47 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE Fix deadlock in MountService\n\nIt is not safe to call into vold with a lock held on mVolumeStates\nsince we will receive events back from vold on a different thread.\nSo in the boot completed handler we make a copy of the volume list and\nthen call vold to mount volumes after releasing the lock\n\nChange-Id: Iaadfb1b8be5567c8e228a8fbc69d4d483c8dc987\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3b498be0ae05367e9b84f4fac2ac5cf57a6b091",
      "tree": "0c1e2fbcf727794950a55df15d84d5edba45bcd8",
      "parents": [
        "346a2d79ecd627e38bc7fc6874fb627995b8bc12"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 24 08:12:30 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\nChange-Id: I8ba7e56797b0106dafaa6388393e5c629f27e6e6\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "346a2d79ecd627e38bc7fc6874fb627995b8bc12",
      "tree": "abbf9844edd66b717f1ce5e6d8e7488cc47b6768",
      "parents": [
        "88741823a67fd8246b3926464bfaa2081b330f40"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 23 14:52:34 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 04 10:41:19 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Add support for multiple volumes\n\nChange-Id: I18527e78a1c04023ae7bc0f269eaac082eb48d7f\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6dcb1557efc546b74323b4367d9b7f674821e1e9",
      "tree": "5b4cdee8983139dbdf5857e55708c97570e3e373",
      "parents": [
        "e409851954f37c5411eb93565146ebb8cfd21bbd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 03 17:04:02 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 03 20:44:51 2011 -0700"
      },
      "message": "Fix a race in SurfaceFlinger that could cause layers to be leaked forever.\n\nThe transaction flags were atomically read-and-cleared to determine if\na transaction was needed, in the later case, mStateLock was taken to\nkeep the current state still during the transaction. This left a small\nwindow open, where a layer could be removed after the transaction flags\nwere checked but before the transaction was started holding the lock.\nIn that situation eTraversalNeeded would be set but only seen during the\nnext transaction cycle; however, because we\u0027re handling this transaction\n(because of another flag) it will be commited, \"loosing\" the information\nabout the layer being removed -- so when the next transaction cycle due\nto eTraversalNeeded starts, it won\u0027t notice that layers have been removed\nand won\u0027t populated the ditchedLayers array.\n\nChange-Id: Iedea9e25fee8dd98a0c5bd5ad41a20fcadf75b47\n"
    },
    {
      "commit": "f2102f7a1a26d399cc60c516ed7d90ef660de055",
      "tree": "ef5a798c8adddd8fc300cdfe9766581b97e12b79",
      "parents": [
        "7e74c60db5261ea137c8f6672f8573873eb5814e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 03 19:02:44 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 03 19:10:26 2011 -0700"
      },
      "message": "Add auto-restore timeout for secondary networks.\n\nSettable per network so you can have not timeout for some and some for others.\nIf you set the old NETWORK_RESTORE_DELAY_PROP_NAME system property\n(android.telephony.apn-restore) it will override this value.\n\nChange-Id: Icca706fdc74245dce679209116660e5dc4b05d23\n"
    },
    {
      "commit": "b2a153adc9860616acdb96d7cdd64494d5a2a0f2",
      "tree": "3e87a5d9681d86ad68c14222774f77bc4bd3ae4a",
      "parents": [
        "be0cc36525f090032d1b84d95e1d8ba5fc714fc2"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun May 01 11:33:26 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:40:14 2011 -0700"
      },
      "message": "frameworks/base: android_native_buffer_t -\u003e ANativeWindowBuffer\n\nChange-Id: Idc2eabaa805bb6d308ebb315872623f28d428417\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "bf8b45cd15e4ae6aaeb29ba697b08f7ec65c195b",
      "tree": "6c23dff105d4214135621d7d13a430f3b992efa6",
      "parents": [
        "ec9b5d17af1199e418b7352313575f0f7288b550",
        "a269b87bd7fecbd977c6c2a054ea333d40408bfb"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:38:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 03 16:38:07 2011 -0700"
      },
      "message": "Merge changes I5c61ac40,I67c40a3c,I3e2ddd01\n\n* changes:\n  frameworks/base: switch CameraService to a HAL module\n  frameworks/base: make the ANativeWindow query() method const\n  frameworks/base: include system/core header camera.h in Camera.h\n"
    },
    {
      "commit": "50a2f8f66173ebafdfe961c73aad4fd22e164b52",
      "tree": "6d5a85a6d8da123167c33ccd5cc76170a06f1766",
      "parents": [
        "1c6afcbf1f0daf3fb5eb3501656963e3a8a99e3b",
        "5fa7ad6fa1316036819ec506205888eac5512f68"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 03 16:34:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 03 16:34:06 2011 -0700"
      },
      "message": "Merge \"Fix a race-condtion in SurfaceFlinger that could lead to a crash.\""
    },
    {
      "commit": "5fa7ad6fa1316036819ec506205888eac5512f68",
      "tree": "9e2a6a9cb7c4dff7d9c28813cebee2f08435e396",
      "parents": [
        "939ccad344c5f32bc9e7dbfa80648c1e75cac62a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 03 16:21:41 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 03 16:21:41 2011 -0700"
      },
      "message": "Fix a race-condtion in SurfaceFlinger that could lead to a crash.\n\nClient::mLayers could be accessed from different threads.\nOn one side from Client::attachLayer() which is currently\ncalled from a binder thread; on the other side from\nClient::detachLayer() which is always called from the main\nthread.\n\nThis could lead to a corruption of Client::mLayers.\n\nWe fix this issue by adding an internal lock to Client.\n\nChange-Id: Ib1317d7750ed5030e6f577efe34b69fc10198bd3\n"
    },
    {
      "commit": "a269b87bd7fecbd977c6c2a054ea333d40408bfb",
      "tree": "f9ee8843a8c38b4926ca8d50d4cec76a9668538a",
      "parents": [
        "4d7c1ce651bd5e283e694fa34641e1dc080613c0"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Apr 14 16:55:59 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 15:49:40 2011 -0700"
      },
      "message": "frameworks/base: switch CameraService to a HAL module\n\nThis patch changes CameraService to load a camera HAL module, instead of\nlinking directly against a library that implements the CameraHardwareInterface\nclass.\n\nCameraHardwareInterface no longer defines the API to the camera HAL.  Instead,\nthis is now in HAL header hardware/camera.h.  We keep CamerHardwareInterface as\na class local to CameraService, which wraps around the new HAL calls.  In the\nfuture, we may remove this class entirely and have CameraService call the HAL\nmethods directly.\n\nChange-Id: I5c61ac40078fc0b50bbac5881a556fe6c8837641\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9c7ac0d142eaf4b083a309299ab023932a9bb109",
      "tree": "eacc12f5b030d872cf460ae77747eece8938c8fd",
      "parents": [
        "9d216f7b0ef66e4d2e32f86cd7e31608fcce49b6"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Apr 14 16:51:21 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 15:49:39 2011 -0700"
      },
      "message": "frameworks/base: include system/core header camera.h in Camera.h\n\nWe define struct CameraInfo in this camera/Camera.h, even though an identical\nstruct camera_info is defined in hardware/camera.h (but not in\nhardware/camera_defs.h).  We may not export struct definitions from the HAL\ninto headers which may find their way into the NDK.\n\nThis commit also renames FRAME_CALLBACK_FLAG_xxx to CAMERA_FRAME_CALLBACK_xxx.\n\nChange-Id: I3e2ddd01d61bf5371ff2fc1a397995e0f1ee11f8\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "2f5f4bc98b4db21102ff8e8d8116f00ab4d2fd2a",
      "tree": "1bffc4effd5dedc452f323f42d7f451b8b7e401c",
      "parents": [
        "a0449f03eb12462189f7a75f55e4751e1e2bcbcd"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon May 02 11:43:28 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue May 03 13:35:21 2011 -0700"
      },
      "message": "Add basic walled garden check\n\nUse multiple DNS resolutions to the same IP address\nas an indication to launch a web view for authentication\n\nBug: 4378442\nChange-Id: Id3cf1e3c5b5bee4468665d0459ac945e5b12e730\n"
    },
    {
      "commit": "e21f3764343ba3b077c6be3cad568ab9ecea85a7",
      "tree": "3cd23b261f3c051671cf2b389e727200199ed0a8",
      "parents": [
        "3165f1a8eb707b36a6b2c66379c3fde85d9cc2fd",
        "75c664582c5ce5d94826f37cb725b447a4d62c50"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 03 12:46:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 12:46:20 2011 -0700"
      },
      "message": "am 75c66458: am 8325c3a8: Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n\n* commit \u002775c664582c5ce5d94826f37cb725b447a4d62c50\u0027:\n  Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n"
    },
    {
      "commit": "75c664582c5ce5d94826f37cb725b447a4d62c50",
      "tree": "e464c39c2bd0870d03795895e571a2d64bebb1ab",
      "parents": [
        "d0d44c4e988ecdea86c2bb04e29d8f6d20c1c631",
        "8325c3a89197e47cfc2eeb4117c927fb8cb91630"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 03 12:26:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 12:26:16 2011 -0700"
      },
      "message": "am 8325c3a8: Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n\n* commit \u00278325c3a89197e47cfc2eeb4117c927fb8cb91630\u0027:\n  Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.\n"
    },
    {
      "commit": "a8e0dfae06298b375637813a3263a62749dd0b82",
      "tree": "05732764028e29a1e26980864063179c7b3c120c",
      "parents": [
        "677cece131528d1edcaad247b87d1f989c3956c2",
        "db46fa25be0a3e8040b118f688b69dd526aed86d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 14:41:57 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 14:41:57 2011 -0700"
      },
      "message": "resolved conflicts for merge of db46fa25 to master\n\nChange-Id: I8df9d5d07588fbd70e417dae567be26f645b74b6\n"
    },
    {
      "commit": "8325c3a89197e47cfc2eeb4117c927fb8cb91630",
      "tree": "9c5c219a485025c29d7bc1a312527b991f5db27a",
      "parents": [
        "de506220d8a3d453463e1abe1b2eb54afd48ec93"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 13:16:06 2011 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 14:06:06 2011 -0700"
      },
      "message": "Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change\nsince file was renamed, making cherry-pick impossible.\n\nChange-Id: Idc802af57fb9926a69ed52d4e776ef57d8b647c6\n"
    },
    {
      "commit": "db46fa25be0a3e8040b118f688b69dd526aed86d",
      "tree": "5b2cabf4eecfe86a209d6a9a47653320111892bb",
      "parents": [
        "d369d64ee7931726d479e60e64d76a31fdba4a8f",
        "a47c40193fcbe9ca07facea78b2828afdae5e025"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 13:29:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 13:29:22 2011 -0700"
      },
      "message": "am a47c4019: Merge \"Add RouteInfo objects for tracking routes.\" into honeycomb-LTE\n\n* commit \u0027a47c40193fcbe9ca07facea78b2828afdae5e025\u0027:\n  Add RouteInfo objects for tracking routes.\n"
    },
    {
      "commit": "aa70f101e08098ed9cb190abe2d7f952561026b8",
      "tree": "8dd78eb19fa32c9c98f31b258aff02accb3ee4fa",
      "parents": [
        "969749319ca17f6e0c6836303a78cc484df2539b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Apr 28 14:28:50 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon May 02 11:17:30 2011 -0700"
      },
      "message": "Add RouteInfo objects for tracking routes.\n\nUsed to have list of gateways for default routes, but general static routes\nshould be supported.\n\nChange-Id: I01730142c6139f2b833b9d48f5381d2d320b69f6\n"
    },
    {
      "commit": "a31b3f2650dedf3cac596ed4763466ec605303e8",
      "tree": "dda820a8bb272033ac032b0f403529eed55e5ff3",
      "parents": [
        "981db85bf2a204f681c845f21332e5327f464a75",
        "08acaec6df66bd6a12b1e63016ed998abff4afdc"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon May 02 10:12:00 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 10:12:00 2011 -0700"
      },
      "message": "am 08acaec6: am a47c0d29: am 58e4a5e2: Merge \"Fixed to draw texture when loadTexture() is called at first time\"\n\n* commit \u002708acaec6df66bd6a12b1e63016ed998abff4afdc\u0027:\n  Fixed to draw texture when loadTexture() is called at first time\n"
    },
    {
      "commit": "0a1b746686f335a650b974ff0d345836f2629794",
      "tree": "22983f8b0d36042da2808c3dce158270f6a2cf2f",
      "parents": [
        "5e3357fcee2a23a08434873a89e8ada4c6e6d893",
        "92618f5fd9e4a0469d60cab39765b7c820c1976b"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon May 02 10:11:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 10:11:11 2011 -0700"
      },
      "message": "am 92618f5f: am 52749c0b: am 03daee63: Merge \"frameworks/base: acquire lock on am only when needed\"\n\n* commit \u002792618f5fd9e4a0469d60cab39765b7c820c1976b\u0027:\n  frameworks/base: acquire lock on am only when needed\n"
    },
    {
      "commit": "08acaec6df66bd6a12b1e63016ed998abff4afdc",
      "tree": "b137a05d546d369c8a5243ec8c70e1ce22789b5e",
      "parents": [
        "737b5c58c9094e5759bd4162f23f73be2b71faaf",
        "a47c0d29bec7c242fb8d5ffe206c4c6ff85a178a"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 17:15:35 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 29 17:15:35 2011 -0700"
      },
      "message": "am a47c0d29: am 58e4a5e2: Merge \"Fixed to draw texture when loadTexture() is called at first time\"\n\n* commit \u0027a47c0d29bec7c242fb8d5ffe206c4c6ff85a178a\u0027:\n  Fixed to draw texture when loadTexture() is called at first time\n"
    },
    {
      "commit": "92618f5fd9e4a0469d60cab39765b7c820c1976b",
      "tree": "f19e9658ba3496bcd10b4c814c0cfcdf85a08d8d",
      "parents": [
        "5eb49e0f1e8e03e8808d8d7da6d5ffb761400e0b",
        "52749c0b1117a05a9c853b7d54f69a281f69cf3c"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 16:44:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 29 16:44:20 2011 -0700"
      },
      "message": "am 52749c0b: am 03daee63: Merge \"frameworks/base: acquire lock on am only when needed\"\n\n* commit \u002752749c0b1117a05a9c853b7d54f69a281f69cf3c\u0027:\n  frameworks/base: acquire lock on am only when needed\n"
    },
    {
      "commit": "58e4a5e2094c5003225fc715ee1a53b2461e71b1",
      "tree": "9aeccabda8af738ff0dda7489e5b62e938c7f016",
      "parents": [
        "9355a24af2a4985902f1e9ab4233df3fb831ef72",
        "222c221a1a0a848a1376b348cdfc8e28806857d7"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 10:00:12 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Apr 29 10:00:12 2011 -0700"
      },
      "message": "Merge \"Fixed to draw texture when loadTexture() is called at first time\""
    },
    {
      "commit": "7ae9f08a179fa3b312b80826cfc3c6dc97b792ec",
      "tree": "7d9b8e8544afeb053adcae6f6237743ce87d4147",
      "parents": [
        "03daee6380772b0ab167a7b28e37d7a21ec89c86",
        "fbce6ac4cb9aebd795603fc2e315f6934bdabda7"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 09:59:30 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Apr 29 09:59:30 2011 -0700"
      },
      "message": "Merge \"Fixed to call computeVisibleRegions() when transparent value changed\""
    },
    {
      "commit": "03daee6380772b0ab167a7b28e37d7a21ec89c86",
      "tree": "8b28f2d92291322c49c33321128f733264b84c3d",
      "parents": [
        "2f463ef18bb235be57b39cbda536bcd2df2d0908",
        "68a4e0a38fca00e9615a3c8ccb2d46edc88cf338"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 29 09:59:22 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Apr 29 09:59:22 2011 -0700"
      },
      "message": "Merge \"frameworks/base: acquire lock on am only when needed\""
    },
    {
      "commit": "a550bdc84af70babb48091197bfb1b93d3671664",
      "tree": "d1bbbd600c4cd3faaf7022a89b7b7678595b3841",
      "parents": [
        "9a51519dfc20d5ed1fb9e25270b8e46e0e3ab8db"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Apr 27 08:26:33 2011 -0700"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Apr 28 16:18:19 2011 -0700"
      },
      "message": "Use passive provider for location based country detection\n\nBug: 4345419\nChange-Id: Ia3e071b97c6971538ea994fdee6029db928201d6\n"
    },
    {
      "commit": "b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c",
      "tree": "40e6e8fe8708c087640f8a26bffdf20eac8e779e",
      "parents": [
        "cb95894bc7ed2f5f4fc541be62631e5456f442d3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 25 23:44:11 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 28 12:28:36 2011 -0700"
      },
      "message": "Tests for ThrottleService, NTP into TrustedTime.\n\nWrote initial suite of tests for ThrottleService, checking a variety\nof edge cases.  Checks going over limits, updating policies, and reset\nafter cycle elapses.\n\nMoved NTP code in ThrottleService into new TrustedTime interface,\nwhich makes it easier to understand, and allows tests to provide custom\nclocks.\n\nChange-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8\n"
    },
    {
      "commit": "fbc07f5a88df8dff3cec026a7a467db2c3160c2a",
      "tree": "4645d72e3158f5172ee7de116dc2cf0173d6bca8",
      "parents": [
        "75e7b005b8c9157880edb9192e6a87cef8f851e0",
        "6d8a98afb0bda0d8a38b8839af94918c76a8fd2c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Apr 28 10:22:49 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 10:22:49 2011 -0700"
      },
      "message": "Merge \"Make InputWindow.h\u0027s window types align with WindowManager.java\u0027s.\""
    },
    {
      "commit": "058520e9eea39d01fc4dd640a15cb85090e30e81",
      "tree": "87e1db1e01d018a4283dca6c71d2c29418069f7f",
      "parents": [
        "d21e7b5d542cc9e93526182272c2bdc995c816fb",
        "2986f5bed370709c10d24c058591d775e6092d89"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 17:13:46 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 27 17:13:46 2011 -0700"
      },
      "message": "Merge changes I22d9e018,Ib0701fcc,Ibc637918,I9eb7e002,I4adcec73\n\n* changes:\n  audioflinger: don\u0027t do work in constructor, instead do it in onFirstRef\n  audioflinger: enumerate all the possible audio interfaces\n  audio/media: convert to using the audio HAL and new audio defs\n  libmedia: move AudioParameter out of AudioSystem\n  audioflinger: move legacy audio hw/policy out to libhardware_legacy\n"
    },
    {
      "commit": "2986f5bed370709c10d24c058591d775e6092d89",
      "tree": "3c2e1233bcf886257c45e538b7c30483d5c0bec4",
      "parents": [
        "31f18889a2c3cd5580db8d2a497a96b7b8a6fd95"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 19:04:32 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 16:20:22 2011 -0700"
      },
      "message": "audioflinger: don\u0027t do work in constructor, instead do it in onFirstRef\n\nChange-Id: I22d9e01821816c3beb52b014330386c7fd2f0411\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "31f18889a2c3cd5580db8d2a497a96b7b8a6fd95",
      "tree": "066564d02a93ac84aca585d03e77ec7aa2b222ee",
      "parents": [
        "24fc2fb1c541e954b83fd31ea9f786a5e9b45501"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Apr 18 16:57:27 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 16:20:22 2011 -0700"
      },
      "message": "audioflinger: enumerate all the possible audio interfaces\n\nKeep track of the primary interface that handles the master volume,\netc.\n\nChange-Id: Ib0701fccff8d8783a99035a241ab7c8ec75c00ac\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "b4a56f10d875dc62a9c73008f98596c7e32fc249",
      "tree": "5258eff2bba73aad718a47790270671e511f5f44",
      "parents": [
        "36f873c765fee84ec26b0e21021ef4c6edc78123",
        "ba5aebd106c61567ad6be905efd18902025735aa"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:54:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 13:54:08 2011 -0700"
      },
      "message": "am ba5aebd1: am ac505b86: am f0556bb9: am 86d1d747: Merge \"Add lock before calling initEglImage\"\n\n* commit \u0027ba5aebd106c61567ad6be905efd18902025735aa\u0027:\n  Add lock before calling initEglImage\n"
    },
    {
      "commit": "a6590e7fee1ef4286f0896358593fdb9aab24f6c",
      "tree": "e277d33c99d649505a4c2cd9b851dd055b5167cc",
      "parents": [
        "cfe7b9fcfaeda1e79a8673e4005bcb307f9e9313",
        "13b21e608e47382cb94a0aeac13b24ac97f355d2"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:53:46 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 13:53:46 2011 -0700"
      },
      "message": "am 13b21e60: Merge \"Auto hide virtual keyboard\"\n\n* commit \u002713b21e608e47382cb94a0aeac13b24ac97f355d2\u0027:\n  Auto hide virtual keyboard\n"
    },
    {
      "commit": "ba5aebd106c61567ad6be905efd18902025735aa",
      "tree": "af526858c576d9fb289a875a318057470761f19b",
      "parents": [
        "d84df05490e8b102e81cca848f65c174398be1b6",
        "ac505b86b45462d9883f9c36fad0ef85e0885ee4"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:41:12 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 13:41:12 2011 -0700"
      },
      "message": "am ac505b86: am f0556bb9: am 86d1d747: Merge \"Add lock before calling initEglImage\"\n\n* commit \u0027ac505b86b45462d9883f9c36fad0ef85e0885ee4\u0027:\n  Add lock before calling initEglImage\n"
    },
    {
      "commit": "13b21e608e47382cb94a0aeac13b24ac97f355d2",
      "tree": "b49e71cb3a876b3dbe107cb06ea85a47c255afb9",
      "parents": [
        "a538b4a206c54ef763dab4da00990a8991425e77",
        "44ad61c3a5bdb01a1c375811faf37915bfae24ca"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 13:20:16 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Apr 27 13:20:16 2011 -0700"
      },
      "message": "Merge \"Auto hide virtual keyboard\""
    },
    {
      "commit": "24fc2fb1c541e954b83fd31ea9f786a5e9b45501",
      "tree": "e85b3ff86b73d56e16ab640919d251c046371c65",
      "parents": [
        "4dc22e77cfd2a1c3671e5646ee87c5e4c15596a0"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:30:36 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 13:10:10 2011 -0700"
      },
      "message": "audio/media: convert to using the audio HAL and new audio defs\n\nChange-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "f0556bb90ff38be96c6099f5efafe386cd7f1083",
      "tree": "4cd192fe57c542e31d2206117414d0c0ab972c88",
      "parents": [
        "30d59fa90ffa1f19674f21596175ccb5fd8febd2",
        "86d1d74762e65b6f64c2d4758aa5fd4af6275696"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 12:43:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 12:43:19 2011 -0700"
      },
      "message": "am 86d1d747: Merge \"Add lock before calling initEglImage\"\n\n* commit \u002786d1d74762e65b6f64c2d4758aa5fd4af6275696\u0027:\n  Add lock before calling initEglImage\n"
    },
    {
      "commit": "86d1d74762e65b6f64c2d4758aa5fd4af6275696",
      "tree": "9aa44e1a21fc0e6c52aed97f57d50ac0e23d6638",
      "parents": [
        "44935c2908b644576b37bd84623461f0eb6ef106",
        "8ecc90d00df9ca90dfbf505daa051eb2a05a14de"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Apr 27 12:28:05 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Apr 27 12:28:05 2011 -0700"
      },
      "message": "Merge \"Add lock before calling initEglImage\""
    },
    {
      "commit": "a3e261d506551713477adb2fd47d1a65b94e64d8",
      "tree": "ccbe33f918417f2268f3d154cd350314793d5ac0",
      "parents": [
        "3bd929579919999852c3e29c536fd06907e620ac"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 27 12:06:23 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 27 12:06:28 2011 -0700"
      },
      "message": "The accessibility input filter state was not unregistered when\nno spoken feedback accessibility services are regitstered.\n\nbug:4343996\n\nChange-Id: Ie709ac24baa084cf3627d6adb6caf1550c399f8b\n"
    },
    {
      "commit": "8956dbbc5f292d8b79072ae73b25f2114c8c7479",
      "tree": "c4519bd579f2520324a7e759e96dbf93f9168fac",
      "parents": [
        "6d8a98afb0bda0d8a38b8839af94918c76a8fd2c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Apr 22 07:55:02 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Apr 27 15:00:31 2011 -0400"
      },
      "message": "On-screen navigation bar (separate from the status bar).\n\nIn Honeycomb we introduced navigation controls in the status\nbar, for xlarge devices without physical buttons. What about\nphones? The status bar is pretty cramped already, and\nbesides, it\u0027s at the top of the display most of the time,\nnot at the bottom where your thumb is likely to be.\n\nEnter the navigation bar. It\u0027s a new window type that\nappears atop almost everything (including the keyguard); the\nwindow manager subtracts its rectangle from the default\nvisible rectangle of other windows (including the status bar\nand notification shade).\n\nHowever, it behaves (on phones) like the status bar in that\napplications that request fullscreen windows can get access\nto those pixels. Well, almost; they need cooperation from\nthe navigation bar implementation to make the navbar\ndisappear, just like the status bar.\n\nThe current SystemUI implementation of the navigation bar on\nphones is still rough, but it has the basics:\n\n + back, home, and menu keys (NB: we\u0027re showing menu all the\n   time right now because checking the api level of the\n   package owning the top window is currently a poor\n   indicator of whether the app requires the menu key)\n + it tries to stick to the same physical end of the device,\n   regardless of device orientation (on a phone, this is\n   the strip of land closest to the microphone)\n\nChange-Id: Ic613a3351220af0bbfbdef63e1d99cbefd5ed1c2\n"
    },
    {
      "commit": "6d8a98afb0bda0d8a38b8839af94918c76a8fd2c",
      "tree": "7383d53c17c9f405c1e6bd41227c2504cf75ff2a",
      "parents": [
        "1bde6f428e8742cbd8cc72c26967d32f10979694"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Apr 27 14:07:12 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Apr 27 14:08:17 2011 -0400"
      },
      "message": "Make InputWindow.h\u0027s window types align with WindowManager.java\u0027s.\n\nChange-Id: Ia4919e02882ebc682c80bfaae1fa775606f17098\n"
    },
    {
      "commit": "5e20a3dd44ec8a5e00b90f17ce412784068f1f14",
      "tree": "9ab7321ffcb99b20653ffb711a926eab261f4384",
      "parents": [
        "f076aa5594840baf70fd78a00d1152bd13dfb80c"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:06:30 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 10:48:38 2011 -0700"
      },
      "message": "audioflinger: move legacy audio hw/policy out to libhardware_legacy\n\nChange-Id: I4adcec73d3c08bcbe15bb19e1ba2ff18b195af45\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "17a650c111d3fdace9be6666146ed99b533a55b1",
      "tree": "c90538ed987d2e167b3477dbff28ad482fab67b3",
      "parents": [
        "e1c6ff4b91072a4071589938c74dd65d66f88fb5",
        "48dca4de70890d324b5830a58bb9fa273164151a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 26 12:44:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 26 12:44:53 2011 -0700"
      },
      "message": "am 48dca4de: am 969357e3: am 223995dc: Fix issue 4335692: HDMI media volume\n\n* commit \u002748dca4de70890d324b5830a58bb9fa273164151a\u0027:\n  Fix issue 4335692: HDMI media volume\n"
    },
    {
      "commit": "48dca4de70890d324b5830a58bb9fa273164151a",
      "tree": "8358b7370aaf5ea0f4fd20f153d755886b092315",
      "parents": [
        "759efacd2d1cf70d10f66fb9656de656ac8ca867",
        "969357e31c93e168e7a4cb3b41c33a6ec26f4a26"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 26 01:14:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 26 01:14:07 2011 -0700"
      },
      "message": "am 969357e3: am 223995dc: Fix issue 4335692: HDMI media volume\n\n* commit \u0027969357e31c93e168e7a4cb3b41c33a6ec26f4a26\u0027:\n  Fix issue 4335692: HDMI media volume\n"
    },
    {
      "commit": "969357e31c93e168e7a4cb3b41c33a6ec26f4a26",
      "tree": "d8c5e4fa35ba1fbb1f4df632171ba2b958a881aa",
      "parents": [
        "ef568c97b5962249cbab7995f76435492a10ba68",
        "223995dcf28aca2399258951a59559a7ae318ceb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 26 00:19:34 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 26 00:19:34 2011 -0700"
      },
      "message": "am 223995dc: Fix issue 4335692: HDMI media volume\n\n* commit \u0027223995dcf28aca2399258951a59559a7ae318ceb\u0027:\n  Fix issue 4335692: HDMI media volume\n"
    },
    {
      "commit": "223995dcf28aca2399258951a59559a7ae318ceb",
      "tree": "6c3e4b195c34ae4c5e164cde6432e7284c3cf698",
      "parents": [
        "c84362a72ab958c4ffe34c16d8cf76883d48f0e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 25 13:34:51 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 25 13:34:51 2011 -0700"
      },
      "message": "Fix issue 4335692: HDMI media volume\n\nForced music stream volume to max when not muted and output device is HDMI.\n\nChange-Id: Ibd287cea8ae1d3f36fea6651a113bd5cf2dbad13\n"
    },
    {
      "commit": "736c2756bf3c14ae9fef7255c119057f7a2be1ed",
      "tree": "5bea187f2f67a91ede0eabfcd0fc15a4b105e7f7",
      "parents": [
        "c1e1f43dab96a317f58e31137c49a4df2e919b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 18:30:36 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 18:30:43 2011 -0700"
      },
      "message": "Touch exploration feature, event bubling, refactor\n\n1. Added an Input Filter that interprets the touch screen motion\n   events to perfrom accessibility exploration. One finger explores.\n   Tapping within a given time and distance slop on the last exlopred\n   location does click and long press, respectively. Two fingers close\n   and in the same diretion drag. Multiple finglers or two fingers in\n   different directions or two fingers too far away are delegated to\n   the view hierarchy. Non moving fingers \"accidentally grabbed the\n   device for the scrren\" are ignored.\n\n2. Added accessibility events for hover enter, hover exit, touch\n   exoloration gesture start, and end. Accessibility hover events\n   are fired by the hover pipeline. An accessibility event is\n   dispatched up the view tree and the topmost view fires it.\n   Thus predecessors can augment the fired event. An accessibility\n   event has several records and a predecessor can optionally\n   modify, delete, and add such to the event.\n\n3. Added onPopulateAccessibilityEvent and refactored the existing\n   accessibility code to use it.\n\n4. Added API for querying the currently enabled accessibility services\n   by feedback type.\n\nChange-Id: Iea2258c07ffae9491071825d966dc453b07e5134\n"
    },
    {
      "commit": "3fb3d7c4e756bd32d5abde0abca9ab52d559bc84",
      "tree": "a1dcfb8f2cdee81a033b85e27f55129ddb695776",
      "parents": [
        "6c079b6819d749fcb72988c5b06becff081c82fd"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 22 17:08:55 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 22 17:23:44 2011 -0700"
      },
      "message": "Revert \"Touch exploration feature, event bubling, refactor\"\n\nThis reverts commit ac84d3ba81f08036308b17e1ab919e43987a3df5.\n\nThere seems to be a problem with this API change. Reverting for now to\nfix the build.\n\nChange-Id: Ifa7426b080651b59afbcec2d3ede09a3ec49644c\n"
    },
    {
      "commit": "f9fa622cc04028fd7c5f5036ea2e0ccfb80d55f3",
      "tree": "c9b8ec24bd7601233d3e49373ce5d68f01485567",
      "parents": [
        "d0f650c6c3a123c856bb0adb138ae7cd0deed3d1",
        "ac84d3ba81f08036308b17e1ab919e43987a3df5"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Apr 22 16:29:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 22 16:29:07 2011 -0700"
      },
      "message": "Merge \"Touch exploration feature, event bubling, refactor\""
    },
    {
      "commit": "dacea8ce503369e7b82ff1c0e1a5a8a48863a25a",
      "tree": "c2975da092931952a787c7dbff59ccc87a4c124c",
      "parents": [
        "fb281f3ad7f78f9046fe3921fe0a2ab74fad5f82"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 22 11:23:13 2011 -0700"
      },
      "message": "Start work on simulating landscape/portrait when orientation is locked.\n\nNot yet working, so turned off.\n\nAlso fix a bug where the display size configuration became inconsistent\nafter a configuration change -- we now figure out everything about the\ndisplay size when computing a new configuration.\n"
    },
    {
      "commit": "ac84d3ba81f08036308b17e1ab919e43987a3df5",
      "tree": "8bf9d7f0b110667e45186d90674465a63e868f26",
      "parents": [
        "1cc1a41b5a095c2eae556c9be0a7ad3f2fc5bfbb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 04 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 21 18:33:52 2011 -0700"
      },
      "message": "Touch exploration feature, event bubling, refactor\n\n1. Added an Input Filter that interprets the touch screen motion\n   events to perfrom accessibility exploration. One finger explores.\n   Tapping within a given time and distance slop on the last exlopred\n   location does click and long press, respectively. Two fingers close\n   and in the same diretion drag. Multiple finglers or two fingers in\n   different directions or two fingers too far away are delegated to\n   the view hierarchy. Non moving fingers \"accidentally grabbed the\n   device for the scrren\" are ignored.\n\n2. Added accessibility events for hover enter, hover exit, touch\n   exoloration gesture start, and end. Accessibility hover events\n   are fired by the hover pipeline. An accessibility event is\n   dispatched up the view tree and the topmost view fires it.\n   Thus predecessors can augment the fired event. An accessibility\n   event has several records and a predecessor can optionally\n   modify, delete, and add such to the event.\n\n3. Added onPopulateAccessibilityEvent and refactored the existing\n   accessibility code to use it.\n\n4. Added API for querying the currently enabled accessibility services\n   by feedback type.\n\nChange-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c\n"
    },
    {
      "commit": "9a365499193b0be18f953fa88bbeca4d477898b3",
      "tree": "300efcdd388fe8c90c63869f4ddf6dc652253b2d",
      "parents": [
        "67c1dff2450069696de893d3d871faf988669f8e",
        "9d13264f6b5818812e61d66baaada599b8ad1faf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:34:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 21 17:34:22 2011 -0700"
      },
      "message": "Merge \"Fix bug in deciding which rotation to use for an orientation.\""
    },
    {
      "commit": "9d13264f6b5818812e61d66baaada599b8ad1faf",
      "tree": "ebc05f5c11a1fe0150cdbb71ff3675d051c6b395",
      "parents": [
        "4c1f4f7144ad6d73ca2a28eceb5a1c43664799c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:27:42 2011 -0700"
      },
      "message": "Fix bug in deciding which rotation to use for an orientation.\n\nChange-Id: Icc928c2188a5865035cafcdab2efd5bae3132b1f\n"
    },
    {
      "commit": "5db1314192b462f3666455fdae42a96ec2918ce9",
      "tree": "008b1830d7e9aef13f1b4d56a7096b6629192a6c",
      "parents": [
        "b104800b6cfaec78e5912015c63f8fc6a2437d0e",
        "9638e5c167be321643bf3f3ee39e3fb45541fb3b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 21 17:14:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 21 17:14:18 2011 -0700"
      },
      "message": "Merge \"Get rid of the \"pid\" parameter from createSurface\""
    },
    {
      "commit": "44bc17c6b517aef35a390c81b5aa79c4f284f744",
      "tree": "b4dabc94a8974f81cf7ea855a93e307205c5b8d7",
      "parents": [
        "52c03d2cb9a782366e804d1910a7c8f072b05353"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 20 18:18:51 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 15:17:52 2011 -0700"
      },
      "message": "Rework display size access.\n\nApplications now get the display size from the window manager.  No\nbehavior should be changed yet, this is just prep for some real\nchanges.\n\nChange-Id: I2958a6660895c1cba2b670509600014e55ee9273\n"
    },
    {
      "commit": "9638e5c167be321643bf3f3ee39e3fb45541fb3b",
      "tree": "ec79a54e7f44db04b4b5cc7f09ba944f6836a258",
      "parents": [
        "2a231f8435dba525c838779e0fd44710ea23cd98"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:19:32 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:26:11 2011 -0700"
      },
      "message": "Get rid of the \"pid\" parameter from createSurface\n\nChange-Id: I28635e3f803e6abe965d79998e305f54a202465d\n"
    },
    {
      "commit": "dee1640afa7bda53f6d0106ad5e5d0a353838d52",
      "tree": "41b23498baaaa5e3225b49ba9171c1956992ebdd",
      "parents": [
        "2a231f8435dba525c838779e0fd44710ea23cd98",
        "79ac969d7a84b7198f9ed814cc0b2f0b7e11a662"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 21:28:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 21:28:35 2011 -0700"
      },
      "message": "Merge \"Add tap/drag touchpad gesture.\""
    },
    {
      "commit": "79ac969d7a84b7198f9ed814cc0b2f0b7e11a662",
      "tree": "0dad92305f9171d8f7e0aebd2eb1a2b1ccfbf265",
      "parents": [
        "3f14891fc9e764d97de07b109f066aedfff90c2e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 21:20:10 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 21:20:10 2011 -0700"
      },
      "message": "Add tap/drag touchpad gesture.\n\nThe mapper sends a DOWN when the finger is released then starts\na short timer.  If the finger is not pressed again before the timer\nelapses, then the mapper sends an UP to complete the tap.  If the\nfinger is pressed again then the mapper starts sending MOVEs\nas part of a drag.\n\nDouble/triple taps work as intended because we also start watching\nfor a new tap when the finger is pressed again.  If a new tap\noccurs the old tap is also finished.  So each individual finger\nshort press/release cycle constitutes a distinct tap.\n\nChange-Id: Iaa51182edee4378162a66adfd746088e93af2a30\n"
    },
    {
      "commit": "9cc5a4e97c69bfb6ab5a8b80d61b30680a20d3d6",
      "tree": "e84673241d1aa4c50f9a98ff26f04078f685df83",
      "parents": [
        "57127bd7c8e133a1dbdfdd7935f39af7da7c5a59",
        "1a338b35be31775a581c4dd4aab99b212d948cc8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 19 18:19:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 18:19:15 2011 -0700"
      },
      "message": "Merge \"remove support for console in SurfaceFlinger\""
    },
    {
      "commit": "3f14891fc9e764d97de07b109f066aedfff90c2e",
      "tree": "7d026487ee719489cea2c1237901ef6cf325efe2",
      "parents": [
        "05d30b14843bf7cf252873f4d0d39706878b28c2",
        "2352b978a3c94cd88f41d0d908f961333fdac1e9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "message": "Merge \"Initial checkin of spot presentation for touchpad gestures.\""
    },
    {
      "commit": "2352b978a3c94cd88f41d0d908f961333fdac1e9",
      "tree": "24f8f19e9b2895cc2c3489bf2dd7a09aaf5834db",
      "parents": [
        "f76dc56c33ba66138af70d72803cf55f881c3717"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 22:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:35:51 2011 -0700"
      },
      "message": "Initial checkin of spot presentation for touchpad gestures.\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: I5126b1e69d95252fda7f2a684c9287e239a57163\n"
    },
    {
      "commit": "25641ca1ac5b09727f86fe01389877332a00455d",
      "tree": "e18f66c852164f4fbc6fbdf3d7c689b9b2ac3d83",
      "parents": [
        "08d1f937236230756bffde241ad6b335da368cf9",
        "0b285499db739ba50f2f839d633e763c70e67f96"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "message": "Merge \"Plumbing in PackageManager and installd for multi-user support.\""
    },
    {
      "commit": "5c14d32d56e5e74c9ada328e6053091685483c7c",
      "tree": "5d79ea6d5a981fd9eda18f4d74fe3b5522e73759",
      "parents": [
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Jozef BABJAK",
        "email": "jozef.babjak@gmail.com",
        "time": "Tue Apr 19 11:27:30 2011 +0200"
      },
      "committer": {
        "name": "Jozef BABJAK",
        "email": "jozef.babjak@gmail.com",
        "time": "Tue Apr 19 11:27:30 2011 +0200"
      },
      "message": "Fix for startup NPE.\n\nChange-Id: I6928939d235faf544a85bb84bba2fa135ddc8e45\n"
    },
    {
      "commit": "1a338b35be31775a581c4dd4aab99b212d948cc8",
      "tree": "56fff98bf8bfca525a290cae364a04e089aee203",
      "parents": [
        "16f61049a872e80628c0004d75e184a6ddf73b02"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 16:25:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 18:09:53 2011 -0700"
      },
      "message": "remove support for console in SurfaceFlinger\n\nthe only supported screen management api now is\n/sys/power/wait_for_fb_{sleep|wake}\n\nChange-Id: I6c7d8d54843da4980b1b38ee3d46cf19be275240\n"
    },
    {
      "commit": "f76dc56c33ba66138af70d72803cf55f881c3717",
      "tree": "fe79aa574b5f695ef20d852feaf7a329ed301a37",
      "parents": [
        "7e0e702fae5635af0193ab45909b875a51c8d224",
        "c94dce521b57763c6ace6cee206214fd476fe8f9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 16:00:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 16:00:07 2011 -0700"
      },
      "message": "Merge \"fix memory corruption when retriving GL_MAX_VIEWPORT_DIMS\""
    },
    {
      "commit": "c94dce521b57763c6ace6cee206214fd476fe8f9",
      "tree": "4b756f471d09abf5ec88531935b2db0837d6a18a",
      "parents": [
        "16f61049a872e80628c0004d75e184a6ddf73b02"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 15:59:24 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 15:59:24 2011 -0700"
      },
      "message": "fix memory corruption when retriving GL_MAX_VIEWPORT_DIMS\n\nChange-Id: I2e0b1eac6dbc6a4ecbbaf31013aa02cf2369fce2\n"
    },
    {
      "commit": "343c1ad7200619230a55caa6aa8a9d041e62b29d",
      "tree": "42ef60951bc803ec683ee61dfa3e29965fb6a32b",
      "parents": [
        "5664eea800ffc40cd1ee93bd228435aa41e7a64c",
        "37677849998e6c9a39afe0a730b2f0131a371f3b"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 15:28:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 18 15:28:47 2011 -0700"
      },
      "message": "am 37677849: am 64c42cae: Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\n* commit \u002737677849998e6c9a39afe0a730b2f0131a371f3b\u0027:\n  Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n"
    },
    {
      "commit": "37677849998e6c9a39afe0a730b2f0131a371f3b",
      "tree": "2c5e95ce98a9ced1744e60a9aa1a454894cd9511",
      "parents": [
        "9a2c93905a2a65db7135f48ca5653d3cf614faed",
        "64c42cae4482fe0157e977b8ddd0f2c2436b3f31"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 15:24:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 18 15:24:47 2011 -0700"
      },
      "message": "am 64c42cae: Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\n* commit \u002764c42cae4482fe0157e977b8ddd0f2c2436b3f31\u0027:\n  Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n"
    },
    {
      "commit": "64c42cae4482fe0157e977b8ddd0f2c2436b3f31",
      "tree": "477c231a37d54f329f002ed5323e30f7e346200b",
      "parents": [
        "6f200f738ed0bbdef5c433b5f571fcb591e1760c"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 14:55:10 2011 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Apr 18 14:55:10 2011 -0700"
      },
      "message": "Rename HierarchicalStateMachine and HierarchicalState to StateMachine and State.\n\nChange-Id: Ib4b33894da75f5f156066092fb145b478e52f7d7\n"
    },
    {
      "commit": "644c4f186259cd26a2fb1e5be3ce32d891adc7af",
      "tree": "465571d42648f723fb1d857c8d8b0c249a1d6650",
      "parents": [
        "19e4be42616c7a337229a9a17dc982374dec8980",
        "5f05f99aaedaba18c426fac287bcb18d56dbe881"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 15 18:15:13 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 15 18:15:13 2011 -0700"
      },
      "message": "Merge \"Fix a GraphicBuffer leak in SurfaceTexture\""
    },
    {
      "commit": "0b285499db739ba50f2f839d633e763c70e67f96",
      "tree": "77e6ecb6572cefdfae2095dcf64c4388adae15c2",
      "parents": [
        "4123211637dcc0155091016f0c0987b80e56ab7b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 14 17:35:23 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 15 15:15:27 2011 -0700"
      },
      "message": "Plumbing in PackageManager and installd for multi-user support.\n\n- Create /data/user directory and symlink /data/user/0 -\u003e /data/data for\n  backward compatibility\n- Create data directories for all packages for new user\n\n- Remove data directories when removing a user\n\n- Create data directories for all users when a package is created\n\n- Clear / Remove data for multiple users\n\n- Fixed a bug in verifying the location of a system app\n\n- pm commands for createUser and removeUser (will be disabled later)\n\n- symlink duplicate lib directories to the original lib directory\n\nChange-Id: Id9fdfcf0e62406a8896aa811314dfc08d5f6ed95\n"
    },
    {
      "commit": "8ecc90d00df9ca90dfbf505daa051eb2a05a14de",
      "tree": "c91635f737ccf9f2387ff63c64b53a3140e6b8e6",
      "parents": [
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Kobi Cohen Arazi",
        "email": "kobic@codeaurora.org",
        "time": "Fri Apr 15 10:38:33 2011 -0700"
      },
      "committer": {
        "name": "Kobi Cohen Arazi",
        "email": "kobic@codeaurora.org",
        "time": "Fri Apr 15 10:38:33 2011 -0700"
      },
      "message": "Add lock before calling initEglImage\n\nWithout that lock, there is a chance of race condition\nwhere while composing a specific index, requestBuf with\nthe same index can be executed and touch the\nsame data that is being used in initEglImage.\n(e.g. dirty flag in texture)\n"
    },
    {
      "commit": "68f1b78b7b9139a0e34285ff641a664e664a14b8",
      "tree": "dbd50188b77a1dfab9310daad8550d553cf72204",
      "parents": [
        "c02c97ef7527e19dce067562692c89d27e7bad52"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 11 14:26:04 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Apr 15 13:49:33 2011 +0900"
      },
      "message": "Add an API to get the last used input method subtype\n\nBug: 4075039\n\n- Voice input requires to know the last used input method subtype.\n\nChange-Id: I603a4fb88a2af5195e52188adfa6585ad80304fa\n"
    },
    {
      "commit": "fa32cd1516e81ef4d23313c5b05c367e16a7ed73",
      "tree": "3a2c6ed34e6616a170a76e49105fa9df447c0071",
      "parents": [
        "3758321fcecf1a6af653937d295a14a5289e8e5b",
        "07a630d23ef326f820e6339b5f691df0aafd3574"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:43:03 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:43:03 2011 -0700"
      },
      "message": "am 07a630d2: am 9a03a73a: am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u002707a630d23ef326f820e6339b5f691df0aafd3574\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "07a630d23ef326f820e6339b5f691df0aafd3574",
      "tree": "5382b9b1cda9bf5a3438dbd3ca3ad7772a70553b",
      "parents": [
        "1bfb2db93514f8ed70d0a02c12d7ce4791d6b336",
        "9a03a73a44c69706fe2b97a28632928f58b434b1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:40:00 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:40:00 2011 -0700"
      },
      "message": "am 9a03a73a: am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u00279a03a73a44c69706fe2b97a28632928f58b434b1\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "9a03a73a44c69706fe2b97a28632928f58b434b1",
      "tree": "67654705627c9cfbefecc8331609542f91acd285",
      "parents": [
        "b590ca85afba6b886cc995e9a6092457174ea016",
        "f6f87c985989603139b31df663f9f9a90543cacc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:27:32 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 14 15:27:32 2011 -0700"
      },
      "message": "am f6f87c98: Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1\n\n* commit \u0027f6f87c985989603139b31df663f9f9a90543cacc\u0027:\n  Fix issue #4291805: Tap Fish crashes on launch\n"
    },
    {
      "commit": "f6f87c985989603139b31df663f9f9a90543cacc",
      "tree": "4861164936215fc7fcc955e6fdc0356ce27dcee4",
      "parents": [
        "4e3d6aa0688f023dfe5feb2eb197207cc8267463",
        "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "message": "Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1"
    },
    {
      "commit": "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e",
      "tree": "05783a9efb7f4fe73ec86f58027c6bd2dbd50cf2",
      "parents": [
        "6bb8b0ecb558373ba99e44ad5c351e1d7bb410d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "message": "Fix issue #4291805: Tap Fish crashes on launch\n\nThe activity manager got a little too aggressive about argument validation.\n\nChange-Id: I3cca0cd3135b98e5c50d26db778ec4ec28a47ec1\n"
    },
    {
      "commit": "0ffc988a7f47013805d5abeed1c20f159b3bd799",
      "tree": "f9873ba8872388b88d75a3d83144e03e7c3f59f4",
      "parents": [
        "5cde33b7d14841677414fa9f43a043bb4a89ffa7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 13 18:15:56 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 10:57:22 2011 -0700"
      },
      "message": "Rewrite battery history storage.\n\nWe now write battery history directly into a buffer, instead of\ncreating objects.  This allows for more efficient storage; later\nit can be even better because we can only write deltas.\n\nThe old code is still there temporarily for validation.\n\nChange-Id: I9707d4d8ff30855be8ebdc93bc078911040d8e0b\n"
    },
    {
      "commit": "44ad61c3a5bdb01a1c375811faf37915bfae24ca",
      "tree": "c53891e964702cb5c0bd99793c763f25444622ff",
      "parents": [
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Wed Apr 13 15:09:16 2011 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Wed Apr 13 15:09:16 2011 +0200"
      },
      "message": "Auto hide virtual keyboard\n\nSometimes the virtual keyboard was not hidden when switching between\napplications. An example of this was when launching the browser from\nthe Google Search widget:\n1) Tap the Google Search widget and enter some text, e.g. \"google\"\n2) Select one search items, e.g. \"google maps\"\n3) Browser opens. Press back button.\n4) Select an item again, e.g. \"google maps\" - Keyboard does not\n   close.\n\nWhen switching application, the virtual keyboard needs to find a new\nZ position (window index) among the other windows. Normally it is\nplaced on top of the first window that is visible and can get focus\n(canBeImeTarget()).\n\nWith a new application being launched, there is\nan exception: a special \"starting window\" is placed on top of the\nActivity window while the application is starting up. Since this\nwindow should not get input, we need to look below that window.\nWhen doing this, the previous implementation assumed that the\nfirst window below always was focusable. If it wasn\u0027t, the\ninput method was placed above the \"starting window\", which\ncaused confusion that led to the keyboard not being closed\nautomatically.\n\nIn the case of the Browser, it sometimes has a \"fake TitleBar\"\nwindow that can not get focus and that is placed above the\nActivity window.\n\nWith this fix, we now keep looking through the windows below\nthe \"starting window\" until we find a window that can receive\ninput.\n\nChange-Id: I1117846eb0f57603e64329bd955e28182f98f226\n"
    },
    {
      "commit": "2432d1bd4828d10d97cf72f974d8312a168bb2ca",
      "tree": "f626829f5ed184965c56f21ced33a49e1ac7b320",
      "parents": [
        "0c5001d776d56bae02a5cc2663286a125d99bc5e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 19:12:30 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 19:12:30 2011 -0700"
      },
      "message": "Forgot to add this file.\n\nChange-Id: I7b29785599ab8e4b8b29099a8398ef86df6aef31\n"
    },
    {
      "commit": "0c5001d776d56bae02a5cc2663286a125d99bc5e",
      "tree": "ea7458737297e313c454f18d672e2b997af13990",
      "parents": [
        "26b05f7dc35f47bc62bf9630df288ae2d6e4657e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 18:16:08 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 12 18:28:06 2011 -0700"
      },
      "message": "Add APIs to remove tasks.\n\nYou can remove sub-tasks inside of a task, or an entire task.\n\nWhen removing an entire task, you can have its process killed\nas well.\n\nWhen the process is killed, any running services will get an\nonTaskRemoved() callback for them to do cleanup before their\nprocess is killed (and the service possibly restarted).\n\nOr they can set a new android:stopWithTask attribute to just\nhave the service automatically (cleanly) stopped at this point.\n\nChange-Id: I1891bc2da006fa53b99c52f9040f1145650e6808\n"
    },
    {
      "commit": "2e3ede527d8a972795a49ffc7eef4ead391107ec",
      "tree": "f2678d126ac68d8b6e017c6e45ff186907286c4a",
      "parents": [
        "83b61471c39fc4d5afc9f56c3ed771a14c8ad194",
        "1d1b4893762c8daad2b31dc79cad2dbcc1b251d2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 15:34:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 12 15:34:42 2011 -0700"
      },
      "message": "Merge \"Updated system packages retain shared user\""
    }
  ],
  "next": "dd66bcbf9d6ef0c50a18d9c4b1b39ce7ef7afcc4"
}
