)]}'
{
  "log": [
    {
      "commit": "4bbca889df9ca76c398f3a11e871fc6ad4a4514d",
      "tree": "af60d21034235eadf51daf332887945d2143a732",
      "parents": [
        "f076aa5594840baf70fd78a00d1152bd13dfb80c"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Apr 19 18:45:25 2011 +0100"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Apr 27 08:25:24 2011 +0100"
      },
      "message": "Expose TTS engine API\n\nThis is a new API for writing text-to-speech engines.\nThe existing API for apps that use TTS remains the same,\nwith some minor additions.\n\nChange-Id: Id577db449ae0e5baec40621d4a08387dbd755342\n"
    },
    {
      "commit": "64e00980a335d86402e2c318bcf19f58d11b8163",
      "tree": "b87b38a9f7728cf985dcfe4c30cdf5d2a6536f87",
      "parents": [
        "87dfce43075e933972b42a0071329b112af33bef",
        "6cc888e77e17ac522f75bf61403307de8ace2ef3"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Apr 26 13:45:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 26 13:45:51 2011 -0700"
      },
      "message": "Merge \"Start ICS header cleanup and finish type matrix.\""
    },
    {
      "commit": "c404c4fbc1bef37b7bf2ac0708f5a2165fa08342",
      "tree": "6cd58c5dc470a9957a6e113ec8536e8fe91b22f3",
      "parents": [
        "fbfb7e50c992080b8c7adff70d1d7ea94cf9fdc7",
        "dae7824c4b78d02159c6ad0896f246942d7b3d8c"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 25 17:44:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 25 17:44:22 2011 -0700"
      },
      "message": "Merge \"Action bar work for phones\""
    },
    {
      "commit": "dae7824c4b78d02159c6ad0896f246942d7b3d8c",
      "tree": "c83aa633bbf5e2713bde0b35a04f6f585839742a",
      "parents": [
        "a13802d8805c2af2fae4d64e3dee99abd73ecfa9"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 25 15:23:41 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Apr 25 17:42:45 2011 -0700"
      },
      "message": "Action bar work for phones\n\nDrop tabs to a second row at \u003c w480dp\n\nMake 9-patches for the cab\u0027s \"done\" button thinner\n\nAdd a \"disable home\" display option to the action bar to turn off\nfocus and touch feedback when tapping home would do nothing\n\nChange-Id: Ib2eedf311655f02055357321e2e9ad5b9037fed1\n"
    },
    {
      "commit": "6cc888e77e17ac522f75bf61403307de8ace2ef3",
      "tree": "bcd815ba22f2165576399fa1cfcf24f828fc6f43",
      "parents": [
        "466e3a22db283958a1da71cc60a23ce3976a3659"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Apr 22 17:05:25 2011 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Apr 25 16:09:48 2011 -0700"
      },
      "message": "Start ICS header cleanup and finish type matrix.\n\nChange-Id: If65f96f08c958d330862c543d85dd9d4a0f90e06\n"
    },
    {
      "commit": "7ada57f8baa14740a2484e5f04a78e63a872d8a8",
      "tree": "2d486190824a9cbb57ff7c6fca4f61199eaca062",
      "parents": [
        "1a2210ced1434924f2b459486bfe95c80f5323e7",
        "6081084e8831d12d2dd5a9a340ee7d35a54edb8a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Apr 25 15:05:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 25 15:05:24 2011 -0700"
      },
      "message": "Merge \"Expose more net types to the public.\""
    },
    {
      "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": "6081084e8831d12d2dd5a9a340ee7d35a54edb8a",
      "tree": "1220d3aa3571eb6a6069ef788185ce1368c77d28",
      "parents": [
        "00425721c14a64979ae29b8a8daf24aafdabc56a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 22 15:28:18 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 22 18:09:03 2011 -0700"
      },
      "message": "Expose more net types to the public.\n\nEthernet and bluetooth.\n\nChange-Id: Ic499709ffa151c0f27aef497373a8de7289e3e7f\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": "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": "4c1f4f7144ad6d73ca2a28eceb5a1c43664799c7",
      "tree": "0989c53ace111afe0b9b1b8ccee4a5f7dbdf84b2",
      "parents": [
        "041a3209c40dc20e91f5d54ca49b634d9c13a7a7",
        "44bc17c6b517aef35a390c81b5aa79c4f284f744"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 16:10:28 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 21 16:10:28 2011 -0700"
      },
      "message": "Merge \"Rework display size access.\""
    },
    {
      "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": "d793299e875a97dc73e04e3beb2a2865563dccdb",
      "tree": "e8cdc375a5debec366cb3a6138226c1ab5ed4fe3",
      "parents": [
        "bf96c356c02c430153c281fb81dc1a00f7ad0b43"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "message": "Add utility method Matrix.perspectiveM\n\nChange-Id: Ic9d5e5d967bbc08acc524c5092ce61a1cdbfd360\n"
    },
    {
      "commit": "8c4da95f6b95f3ce07485ac4e4e7640c32d2e326",
      "tree": "66252697a387f1f1ed9d6bee37c8f3011043c902",
      "parents": [
        "63f9689627b8fd9b94afd35b1274939c56e5642f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 20 13:58:00 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 20 13:58:00 2011 -0700"
      },
      "message": "Fix the build\n\nChange-Id: I725f0664b5563f6af16929eff59d7a8967600660\n"
    },
    {
      "commit": "7454253d9192009f47d2d92152fcfb59d1501e09",
      "tree": "eadad50b777846cdb331edde91fc2b241827145e",
      "parents": [
        "c199ff6466567827f29a6db87c595adac87a9552",
        "72e738a428d7bb39a371da6105f7e2084e67e39d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 20 12:23:27 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 20 12:23:27 2011 -0700"
      },
      "message": "Merge \"Unhide MediaPlayer\u0027s setDataSource method that takes optional http headers to be\""
    },
    {
      "commit": "72e738a428d7bb39a371da6105f7e2084e67e39d",
      "tree": "b7a8e15f9c48650515d01eb6cdd4695f55be280c",
      "parents": [
        "e85626f33e6988b3314d8978c23923f91c3f49c9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 20 10:55:54 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 20 10:55:54 2011 -0700"
      },
      "message": "Unhide MediaPlayer\u0027s setDataSource method that takes optional http headers to be\n\npassed to the server.\n\nChange-Id: I3c7ce140b2d9cd2483cf05c8aff9b374feff2f18\nrelated-to-bug: 4315346\n"
    },
    {
      "commit": "9567a66a5e6f49dd8495fb5f6e2efb9f32e84b35",
      "tree": "ed995619922077d0ab351a1dc2ba405de04af111",
      "parents": [
        "e85626f33e6988b3314d8978c23923f91c3f49c9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 19 18:44:03 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 20 10:26:44 2011 -0700"
      },
      "message": "Deprecate a bunch of APIs.\n\nAnd clean up some documentation.\n\nChange-Id: I7882183b3daf883b7ac6098d19f88dc7cfbcdf61\n"
    },
    {
      "commit": "696cba573e651b0e4f18a4718627c8ccecb3bda0",
      "tree": "ac35e215420949d0d5541379e5c127dd88eea08f",
      "parents": [
        "9bf2d9e13c99486779fb40eac8c0f3079339382f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 29 10:38:16 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 19 13:49:39 2011 -0700"
      },
      "message": "Refactor menu internals.\n\nIn the old world, MenuBuilder and MenuItemImpl were responsible for\ngenerating views for any presentation of a menu. MenuBuilder needed to\nknow any types and resources involved, and the implied caching\nsemantics did not work well for menus presented within AdapterViews.\n\nIn the new world, the MenuPresenter interface takes over the\nresponsibility of generating views or adapters for menu\nitems. MenuBuilder/MenuItemImpl still provide extra metadata tracking\nused by these presenters. Mutiple presenters may be active for a\nsingle menu at a time. All of this remains internal framework\nimplementation details.\n\nBaseMenuPresenter provides a simple base for presenters that treats\nthe host MenuView more like an AdapterView. This allows for less\nrebuilding of views when items are added/removed.\n\nCallbacks have been restructured. Calls that relate to the menu itself\nare still handled by MenuBuilder.Callback, but calls related to a\nspecific presentation of a menu are handled by MenuPresenter.Callback\nobjects attached to a MenuPresenter.\n\nAlso add API to programmatically set divider options for LinearLayout\nand hidden API so that ActionBarView can have finer-grained control\nover divider placement.\n\nChange-Id: I2265b86a084279822908021aec20dfbadc1bb56b\n"
    },
    {
      "commit": "d071ec2b49ee65914b33fca3e8087f14e43237b6",
      "tree": "eb81ad84d8d3a888b72faf1b8b255c3880765289",
      "parents": [
        "a1e99532b4375849a5313c8f9a9152a1fbbe0d36"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 18 14:08:33 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 18 14:08:33 2011 -0700"
      },
      "message": "Integrate from support lib: fix restore of list state.\n\nThe FragmentManager/ListFragment impl was restoring the list\nstate before setting its adapter.  This caused the list view to\nlose the state, since it gets cleared as part of setting the\nadapter.  Now the fragment manager waits on restoring the view\nhierarchy state until after it has done onActivityCreated(),\nat which point we have set the adapter.\n\nIt would be nice to make list view less fragile in this regard,\nbut that is for a different change.\n\nChange-Id: I032d6fe0fefc0dabfae95d44152146029ef5db8e\n"
    },
    {
      "commit": "47c4156567ce5abf8a6fca7fefe6ae9a20fb5117",
      "tree": "accd85c84db9169e2525ea595bb8326d4a14c757",
      "parents": [
        "b0dfade955f2e2e19a827ca2119f3c5d319a824a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 15 19:00:20 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 18 10:18:05 2011 -0700"
      },
      "message": "Back-port new fragment detach APIs from support lib.\n\nThis allow a much cleaner implementation of things like the\nfragment pager class.\n\nChange-Id: I433be3d6c24c9a059d908d442bcfddbf1e8e57e5\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": "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": "5e88ac73ce2de9d5eb22ab222ff25c9dcca99644",
      "tree": "1ec98ca0d844ffaa998d17f06ea7c4fef1e1c2b3",
      "parents": [
        "dcd2ef9acc34c70e7a3c698d7e01e8af0af00f20"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Mar 09 13:34:39 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Apr 08 16:21:34 2011 -0700"
      },
      "message": "Use the new API file format, and some minor tweaks to the old XML files that make the parser easier.\n\nChange-Id: I9307d0d323f1b65816b3e097bf9c4d92f3962b2f\n"
    },
    {
      "commit": "b3fc1a5b8b8f88eaf00b05957523cbdc0944b24b",
      "tree": "4b52043bcf0000532117c7515e5c14f8e3203f47",
      "parents": [
        "43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 06 18:28:55 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Apr 08 13:43:19 2011 +0900"
      },
      "message": "Rename CorrectionSpan to SuggestionSpan\n\nChange-Id: I004b2e012b2de4de959a31da1f55b63ca7c14199\n"
    },
    {
      "commit": "43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09",
      "tree": "a5aac88ebb367a0f046a5724edc8e35cbe192cb9",
      "parents": [
        "ea4af8914a3b6ea68558f20ce502966032ca1ab1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Apr 06 19:22:23 2011 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Apr 07 19:23:05 2011 -0700"
      },
      "message": "Remove the deprecated things from Config.java. These haven\u0027t been working since before 1.0.\n\nChange-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e\n"
    },
    {
      "commit": "ea4af8914a3b6ea68558f20ce502966032ca1ab1",
      "tree": "432ee43c229118b546e7c668327c8073d7fe1f14",
      "parents": [
        "bdf7b013f81b0b56a18cc9dd2fb987b56d595650"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Apr 07 16:56:14 2011 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Apr 07 19:23:03 2011 -0700"
      },
      "message": "final 12.xml from gingerbread.\n\nChange-Id: I6089b57a22e7d9eaa43979ce8e9990192c83203d\n"
    },
    {
      "commit": "e17aeb31030cfeed339a39a107912ad5e9178390",
      "tree": "e0773ea106c5504e2ef107a91f5871827cd76b75",
      "parents": [
        "097786507b07ff7137b305b5cf71b5ecbc6b029e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 07 15:11:57 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 07 18:26:15 2011 -0700"
      },
      "message": "Improve activity manager debug dumps.\n\nActivity manager now does all dump requests into apps\nasynchronously, so it can nicely timeout if there is an\napp problem.  Also lots of general cleanup of the am\ndump output.\n\nChange-Id: Id0dbccffb217315aeb85c964e379833e6aa3f5af\n"
    },
    {
      "commit": "6a839703cd9aa72f5c6f107d0a8f894601d5c308",
      "tree": "d5e22d8d694a0bf9897daffce616a1a211c9fa91",
      "parents": [
        "908ac1694e044f90350dc020f5194a59109d69b4",
        "6934044fd7d2de12c21e3cc9b7da589ec3b71e8e"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Wed Apr 06 17:07:27 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 17:07:27 2011 -0700"
      },
      "message": "Merge \"Word suggestion popup added to EditText.\""
    },
    {
      "commit": "fbfb3dafd90515235ad6ac88d9599e43dadd780a",
      "tree": "56aabf305de1a2a1baa0e4d7b1e49913a287a619",
      "parents": [
        "c837ccb568450c4ed18dd2ec390eba9356d96426",
        "5487500cf3d9f6d7703ce0704cb91837aa95d716"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 06 15:57:21 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 15:57:21 2011 -0700"
      },
      "message": "Merge \"Minor Alt-TAB / Recent Apps Dialog improvements.\""
    },
    {
      "commit": "5487500cf3d9f6d7703ce0704cb91837aa95d716",
      "tree": "cbc4b85dbb6a0a97d811afa00da3e3b1e0b2f561",
      "parents": [
        "fb84ce0df6b2db84981e4efa4530397a85240d4a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 06 15:33:01 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 06 15:38:05 2011 -0700"
      },
      "message": "Minor Alt-TAB / Recent Apps Dialog improvements.\n\nAlt-TAB should have different semantics from the APP_SWITCH key\nor long-press on HOME.  Accordingly, remove the fallback action\nfor Alt-TAB and initiate the task switching behavior directly\nin the policy.\n\nModified RecentApplicationsDialog to be more precise about the\ninitial modifiers that it considers to be holding the dialog.\n\nThe dialog is now dismissed by a second press on the APP_SWITCH\nkey or by a second long press on HOME.\n\nChange-Id: Idf4d803f51103819057cb655ff3b770b7729e4be\n"
    },
    {
      "commit": "6934044fd7d2de12c21e3cc9b7da589ec3b71e8e",
      "tree": "787eea6aee390f7f716e09bdb99e7d6dc87d148c",
      "parents": [
        "99eefad9ab6f573641f45a950b03bf5e7766506d"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Mar 31 13:37:51 2011 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Wed Apr 06 15:04:26 2011 -0700"
      },
      "message": "Word suggestion popup added to EditText.\n\nA double tap on a word will now display a list of suggestions based\non the CorrectionSpans that were added by the IME.\n\nThis is a first implementation of this feature. It needs some attention from\ndesigners.\n\nChange-Id: If863107681ce82a1639f21315878f830c2991fb7\n"
    },
    {
      "commit": "3fc982f41fda1f254bfbc35490d81cd82a0ed90a",
      "tree": "6f9ba92dc2c9001a156f298c37dcdef9c9552600",
      "parents": [
        "fb84ce0df6b2db84981e4efa4530397a85240d4a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 30 16:20:26 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 06 11:00:37 2011 -0700"
      },
      "message": "Add new resource configurations for screen width/height in \"dp\".\n\nYou can now specify resource configuration variants \"wNNNdp\"\nand \"hNNNdp\".  These are the minimum screen width/height in \"dp\"\nunits.  This allows you to do things like have your app adjust\nits layout based only on the about of horizontal space available.\n\nThis introduces a new configuration change flag for screen size.\nNote that this configuration change happens each time the orientation\nchanges.  Applications often say they handle the orientation change\nto avoid being restarted at a screen rotation, and this will now\ncause them to be restarted.  To address this, we assume the app can\nhandle this new config change if its target SDK version is \u003c ICS.\n\nChange-Id: I22f8afa136b4f274423978c570fa7c9855040496\n"
    },
    {
      "commit": "c95c3a3fc7e658eca32803675a28e17f1c55c20a",
      "tree": "086ecd42c3cf878ff0a822d40634c115599c4fe4",
      "parents": [
        "b83dee77e20a1b7ac777debb3828e9d590aa895d",
        "216ce0f16effec873938401d20687acd61d392fb"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 14:03:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 05 14:03:55 2011 -0700"
      },
      "message": "Merge \"Add EXTRA_ORIGIN to RecognizerIntent.\""
    },
    {
      "commit": "216ce0f16effec873938401d20687acd61d392fb",
      "tree": "a1a863e65a18b8d6cf6181e6baf21ff126a0657d",
      "parents": [
        "bb7cf916b23c78dc640f8bdfb7ad5cd6b09c3636"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 16:38:24 2011 -0400"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 16:38:24 2011 -0400"
      },
      "message": "Add EXTRA_ORIGIN to RecognizerIntent.\n\nThis is for passing the http referer of a request, e.g., for speech\ninput from within a browser.\n\nBug: 4161306\nChange-Id: I56fdb7466edd985aab6df8364be1f1619a11a00d\n"
    },
    {
      "commit": "0cd9cb1827b2203dbfc7d7d48cb7384e19521bee",
      "tree": "cbcf6c480386ae10424ac84ab5c708a0b202d1ec",
      "parents": [
        "9f3c6160e4fc089e1bd059ab61f00ed6ab3fbe04",
        "bb7cf916b23c78dc640f8bdfb7ad5cd6b09c3636"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 11:27:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 05 11:27:55 2011 -0700"
      },
      "message": "Merge \"Support speech recognizer confidence values.\""
    },
    {
      "commit": "bb7cf916b23c78dc640f8bdfb7ad5cd6b09c3636",
      "tree": "ec28266699c6d016b0a1699faf05285f70f6cca9",
      "parents": [
        "7f5a026d255fdcbd600a01b4abbd87eb0b528e37"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 09:37:30 2011 -0400"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Apr 05 10:54:18 2011 -0400"
      },
      "message": "Support speech recognizer confidence values.\n\nPass speech recognizer confidence values in the SpeechRecognizer and\nRecognizerIntent APIs through to the caller. This change defines new\nAPI constants for keys to these values.\n\nThe corresponding change is being made to Google Voice Search, and should be\nmade to any other implementations.\n\nBug: 3267513\nBug: 4163206\n\nChange-Id: I294553f2eb9eb3be21298b8434117c8c5309558d\n"
    },
    {
      "commit": "f45f5b271586563f1bfb2af0258d1658cc5536de",
      "tree": "e8100a9880e617e5177e59631fcbf21efb3e86ce",
      "parents": [
        "c4740316423fcd669e09408d11fd46227ccb0b05"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Apr 04 12:08:58 2011 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Apr 04 12:08:58 2011 -0700"
      },
      "message": "Fixing build\n\nChange-Id: If18012c03265f3fa02d8743d583668d9e0245845\n"
    },
    {
      "commit": "aedc2a8fcc2841063b3324e09234eff03044a324",
      "tree": "8ecd021d8a9f0e93e588614779d2bf48fe11eb23",
      "parents": [
        "d4f4e077ab2bc1ca13845a7351768c9b2811f826",
        "08065b9f09ead8895d97b2971622af8c179e1768"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Apr 02 20:39:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 02 20:39:32 2011 -0700"
      },
      "message": "Merge \"Tracking merge of dalvik-dev to master\""
    },
    {
      "commit": "08065b9f09ead8895d97b2971622af8c179e1768",
      "tree": "6bd821f0c111e72ea84f3e7f736e082800721a12",
      "parents": [
        "827107f4ec7d9a53d7bb6e4071858252f263fa8c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 01 15:49:41 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 01 16:00:23 2011 -0700"
      },
      "message": "Tracking merge of dalvik-dev to master\n\ngit cherry-pick --no-commit  a80febd83c8bf0b6717da2a7136179bdc906a5b7\n\ngit cherry-pick --no-commit  5e642b41cf44c5da7afdd95ab3d5e2bdbf7b31dd\n\ngit cherry-pick --no-commit  4886db14c9eee4b6fee69bd54c57c5af04709c4c\n\ngit cherry-pick --no-commit  560c685e448769904047507b9484ce8111967d7e\n\ngit cherry-pick --no-commit  63dde7a2fcfa53dc531558635b64cea613d3cdb4\n\ngit cherry-pick --no-commit  74e5cb91060a379d98dd3a333b5f231bfb4f502e\n\ngit cherry-pick --no-commit  1cc8c9708b555e2e338b7798d38887a2fefcfea6\n\ngit cherry-pick --no-commit  09625a21f5abe0c0db15757f58585d552d62c3d7\n\ngit cherry-pick --no-commit  fcb02dfe0f5a2bb7c07e6d6fc69f756a484b5458\n\ngit cherry-pick --no-commit  a68cb7fa3ab42854768b8145ff85231663770292\n\ngit cherry-pick --no-commit  716beb1c131dd2c6b805d4f681debaa20075010c\n\ngit cherry-pick --no-commit  8c29b1097a7afe3a77e27546a56e396f3620a4ec\n\ngit cherry-pick --no-commit  9c6a1a55d1c8086c1cc57464eea43725694ff70c\n\ngit cherry-pick --no-commit  b14f5ea5c57acdd009ba5b51f1bbe430f3d353b8\n\nChange-Id: I8cc94175441b009e23549762d6baee1dbace4881\n"
    },
    {
      "commit": "ef353dde086a6833471deff4da58a6eaf8a1ef36",
      "tree": "4da339ff2f12d521f1b5863bcd839dca3c982f04",
      "parents": [
        "55311e8d13cd3925185d3db4f3f32f2afd615667"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Mar 31 14:45:36 2011 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Apr 01 14:22:35 2011 -0700"
      },
      "message": "Make BaseObj a public class.\n\nBUG\u003d4156151\n\nChange-Id: Ia5d5ae08ab8e176ad3ca1f38c2c33ef4e9551213\n"
    },
    {
      "commit": "525194034156707bcb1134f5dc54283fe0ff470d",
      "tree": "b2f82d1b4bc9c64d1b4140e835ad4bcf966a13b5",
      "parents": [
        "53ecd4f5cf21da2a4d9394de22b0c59e3a592cf9",
        "54ab310e6062f534f9f3b196e9d65d0396382d5e"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 30 11:48:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 11:48:58 2011 -0700"
      },
      "message": "Merge \"Fix public issue 15862: Theme Theme.Holo.Light.NoActionBar not available for use\""
    },
    {
      "commit": "53ecd4f5cf21da2a4d9394de22b0c59e3a592cf9",
      "tree": "f1fff4bc0ecba263496dd7b90c1237a76ab9ff94",
      "parents": [
        "fc2143473ab560440e684d926661d53410e41af1",
        "037300bba5c87c9a9efe1f693b48f6ff1ffd7479"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Mar 30 11:44:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 11:44:08 2011 -0700"
      },
      "message": "Merge \"Deprecating old RemoteViews API which takes appWidgetId when setting the RemoteViewsAdapter intent.\""
    },
    {
      "commit": "54ab310e6062f534f9f3b196e9d65d0396382d5e",
      "tree": "b19f7cb52de1568d0e132e0a4bef538051850cba",
      "parents": [
        "3164a497a85406fb72f578c33acf5547dbf9aac2"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 30 11:34:00 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 30 11:34:00 2011 -0700"
      },
      "message": "Fix public issue 15862: Theme Theme.Holo.Light.NoActionBar not available for use\n\nChange-Id: Ieb8127772cd62663d11ef893b47f9b2c7068391c\n"
    },
    {
      "commit": "037300bba5c87c9a9efe1f693b48f6ff1ffd7479",
      "tree": "a4d186bd4e1a169a84cba8afd08ffdbcd86c7f3b",
      "parents": [
        "5c8eff3308c79f25bfe07d00c214f665581e5d7e"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Mar 29 15:40:16 2011 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Mar 30 09:37:09 2011 -0700"
      },
      "message": "Deprecating old RemoteViews API which takes appWidgetId when setting the RemoteViewsAdapter intent.\n\nChange-Id: I72edaa839ae0633a1a24d8f69f5f8c664832ed30\n"
    },
    {
      "commit": "3d4bf17f49b82355b3b82d8bdaec4d65c4293bc9",
      "tree": "ba8ea535eb338edbd43fd22909008d009a0f6f46",
      "parents": [
        "5c8eff3308c79f25bfe07d00c214f665581e5d7e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 28 16:16:46 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 29 15:27:58 2011 -0700"
      },
      "message": "Add view/drawable states for drag-accepting / drag-hovered\n\nAdded new drag_can_accept and drag_hovered XML attributes and the View\nlogic to support them.  Drawable states are now refreshed automatically\nwhen a drag starts/ends and when a drag crosses the boundary of a\nparticipating view.\n\nChange-Id: I25f8ee02c83b3fa4f27201997d7eabf4be653fd8\n"
    },
    {
      "commit": "e3797a15fbf769a0abcbe121cfd33b4b658aea1e",
      "tree": "7697cb326fad773c18df482644eb16b2b3982aff",
      "parents": [
        "c50232d517d7b99ae3c3e073f04eb6799c876e8c"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Mar 22 06:34:48 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Sat Mar 26 07:20:34 2011 +0900"
      },
      "message": "Removed APIs for setCorrectionSpan from InputConnection\n\n(\"setCorrectionSpan\" was added in Id3abc9ea4d11753cd )\n\nAlso..\n- Added a class java doc for CorrectionSpan\n- Removed FLAG_DEFAULT\n- Changed the return type of getSuggestions from Array\u003cCharSequence\u003e to String[]\n\nChange-Id: If5eb091e307a7a40c5b4a70ec1fe6059ecd9fb2d\n"
    },
    {
      "commit": "c50232d517d7b99ae3c3e073f04eb6799c876e8c",
      "tree": "d5fc5f5c5afb71e6f0c5b5e7eaa4af6f91827602",
      "parents": [
        "8da36372a390c76cbd3985b93eea881ad6a43040"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Mar 25 13:52:48 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Sat Mar 26 06:12:58 2011 +0900"
      },
      "message": "Add hashCode to InputMethodInfo\n\nThe uniqueness of InputMethodInfo was guaranteed by mId (like InputMethodInfo#equals), but the hashCode was not implemented in the same way.\nThis change fixes a problem happening when the user gets the hashCode of InputMethodInfo obtained through IPC.\n\nChange-Id: Ib876c5cb0d778481100597ec31202f94fb7b8f37\n"
    },
    {
      "commit": "dff626c56ac42bdcc7af5a300eefccd3fee3d166",
      "tree": "a7fe9a7d982cc8a2796b133a3eb748a6ac86e2c7",
      "parents": [
        "ad575f4dda3391baf9fcab927e65afbee32e7b95",
        "c33d8d49e44358d72f19e7f7730c03d3902fa1f2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 24 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 16:42:08 2011 -0700"
      },
      "message": "Merge \"Added a hovered state for drawables.\""
    },
    {
      "commit": "c33d8d49e44358d72f19e7f7730c03d3902fa1f2",
      "tree": "d92a09152ee99115297b176eb4ebade7d9890269",
      "parents": [
        "a032cc008618b83ecbbede537517d1e7998e3264"
      ],
      "author": {
        "name": "PY Laligand",
        "email": "pylaligand@google.com",
        "time": "Mon Mar 14 18:22:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 24 16:14:08 2011 -0700"
      },
      "message": "Added a hovered state for drawables.\n\nChange-Id: I2b12c8593e04e37c8eb748946ca6d4d7a61de36a\n"
    },
    {
      "commit": "b7c25ce3aef3c6e930fc3f31436f52aed8ebed14",
      "tree": "6889c2804c91f71278901d149a344870cca6826e",
      "parents": [
        "a5d42c857818036375fff2da9f0d0ab34219d773",
        "a032cc008618b83ecbbede537517d1e7998e3264"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 24 15:38:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 15:38:04 2011 -0700"
      },
      "message": "Merge \"Add MotionEvent.HOVER_ENTER and HOVER_EXIT.\""
    },
    {
      "commit": "a032cc008618b83ecbbede537517d1e7998e3264",
      "tree": "735a1f6f5fd7dc5607a0edb18a85abc831e5b7de",
      "parents": [
        "e9f66af90a886cc55fc20c14375d8572bdf6dbd3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 07 16:56:21 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 24 15:37:04 2011 -0700"
      },
      "message": "Add MotionEvent.HOVER_ENTER and HOVER_EXIT.\n\nThe input dispatcher sends a HOVER_ENTER to a window before dispatching\nit any HOVER_MOVE events.  For compatibility reasons, the window will\n*also* receive the HOVER_MOVE.  When the pointer moves into a different\nwindow or the pointer goes down or when events are canceled for some reason,\nthe input dispatcher sends a HOVER_EXIT to the previously hovered window.\n\nThe view hierarchy behavior is similar.  All views under the pointer\nreceive onHoverEvent with HOVER_ENTER followed by any number of HOVER_MOVE\nevents.  When the pointer leaves a view, the view receives HOVER_EXIT.\nSimilarly, if a parent view decides to capture hover by returning true\nfrom onHoverEvent, the hovered descendants will receive HOVER_EXIT.\n\nThe default behavior of onHoverEvent is to update the view\u0027s hovered\nstate by calling setHovered(true/false).  Views can query their current\nhovered state using isHovered().\n\nFor testing purposes, the hovered state is mapped to the pressed\ndrawable state.  This will change in a subsequent commit with the\nintroduction of a new hovered drawable state.\n\nChange-Id: Ib76a7a90236c8f2c7336e55773acade6346cacbe\n"
    },
    {
      "commit": "a5d42c857818036375fff2da9f0d0ab34219d773",
      "tree": "2b97eb7d5e41a042856dad44f82fce171d2b106d",
      "parents": [
        "26f9c2ebcdca059f2d9981055883e04f2febd691",
        "e309a0fd2e528039b3c1f1372a9a7095bcd852cc"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 24 15:36:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 15:36:56 2011 -0700"
      },
      "message": "Merge \"NEW_API: Add getTimestamp() to SurfaceTexture.\""
    },
    {
      "commit": "bc377841db05bd5197ffadb58ba52c54b2a85f16",
      "tree": "40f978cf218091cd2d7cdddffcef64f2086277ec",
      "parents": [
        "15cb32ed9d189526d5a98add386b28cea6bc46b7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 22 11:35:22 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Mar 23 09:35:00 2011 -0700"
      },
      "message": "Add custom fragment anims to be run when popping backstack\n\nThe previous fragment implementation allowed for animations\nduring fragment transitions, but did not account for the\ndifferent behavior of fragments when popping the back stack.\nIn general, you probably don\u0027t want to run the same animation\nfor putting a fragment on the stack as for popping it off, which\nis what happens now. For example, you might fade a fragment out when\nputting it on the stack. But when popping ot off, fading it out\nis probably not the behavior you want.\n\nThe new API (setCustomAnimations() overload with two additional\nparameters) allows developers to specify animations to be run\nin the popping operation. Otherwise, the animations are null and\nthe operation will not be animated.\n\nChange-Id: I2e132b3890838358e496149f18a25037a59990aa\n"
    },
    {
      "commit": "462db220a2986f7d9fc3d7e3e6af6615570eaa0b",
      "tree": "88f7788c50bff315dd55172bfb52ccf0f6d83057",
      "parents": [
        "94d76925c285b8788bdc31ca5a667a32c245ca78"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 22 18:44:26 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 22 19:12:13 2011 -0700"
      },
      "message": "fix [4056232] Deprecate Sensor.TYPE_TEMPERATURE and add Sensor.TYPE_AMBIENT_TEMPERATURE\n\nBug: 4056232\nChange-Id: Idf165460fc083f856c320f0f6f8841d73661c829\n"
    },
    {
      "commit": "e9f66af90a886cc55fc20c14375d8572bdf6dbd3",
      "tree": "3a395b1da798649cf0565415b32c3f238631c835",
      "parents": [
        "aceaa225608930011f10950fe2dc319e95e9e200",
        "1969b8799085322f9ef6e75b78c2c9a5d5944801"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 22 14:13:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 22 14:13:34 2011 -0700"
      },
      "message": "Merge \"Fix bug 4142917 - Add support for specifying a custom home icon in action bar\""
    },
    {
      "commit": "1969b8799085322f9ef6e75b78c2c9a5d5944801",
      "tree": "20168ca86dcf2e380fd7f87add838422dae8d76b",
      "parents": [
        "37f421c5947b15dd37b8cba6abb84074a2f26747"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 22 11:52:48 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 22 14:11:06 2011 -0700"
      },
      "message": "Fix bug 4142917 - Add support for specifying a custom home icon in action bar\n\nAdd ActionBar methods for setting icon and logo.\n\nChange-Id: I6151689138c734b7212c3469b8ba8f28f0fd5ec4\n"
    },
    {
      "commit": "2e28aa89050820387dc579f565686938743e1345",
      "tree": "c170431732cc8518ea8c423c036acca040af6c8d",
      "parents": [
        "3c111d7815b7e8f0b4db6406c7353cec24708d58",
        "b6955be94a065f34275cc20161664871bd286f75"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 22 13:08:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 22 13:08:01 2011 -0700"
      },
      "message": "am b6955be9: am b382a054: am 8dcd6647: Merge \"Now have a final API 12.\" into honeycomb-mr1\n\n* commit \u0027b6955be94a065f34275cc20161664871bd286f75\u0027:\n  Now have a final API 12.\n"
    },
    {
      "commit": "99ca5cc5c7e5c29740c03401a16fe4dc1242998e",
      "tree": "07ee24ddd90f0abb9357eb4e8c6d8971b0b2567a",
      "parents": [
        "453c0d5f16a09473b0653566973bf8b6a867cf79"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 22 10:44:59 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 22 10:46:42 2011 -0700"
      },
      "message": "Now have a final API 12.\n\nChange-Id: I7475ed7f82e4875c7e51671703821e5735dc1433\n"
    },
    {
      "commit": "e309a0fd2e528039b3c1f1372a9a7095bcd852cc",
      "tree": "695e1fd00b7471195c7e04ab81688956872ef823",
      "parents": [
        "affb58e727863fdc8d2c0ea444054b581eb41be5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Mar 21 11:04:34 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Mar 21 15:38:36 2011 -0700"
      },
      "message": "NEW_API: Add getTimestamp() to SurfaceTexture.\n\nLike getTransformMatrix, getTimestamp provides a timestamp for the\nOpenGL texture produced by the latest call to updateTexImage().\n\nTimestamps are measured in nanoseconds, and are monotonically\nincreasing.  Other properties of the timestamps (zero point,\ncomparability) depend on the source providing frames to the\nSurfaceTexture, and need to be documented by the source.\n\nbug:3300707\n\nChange-Id: I380d94926d0e9f1c77bb5c1576b72d5ef4e2eba1\n"
    },
    {
      "commit": "5b7ced6a4ebcec34a36d0779773bc9e671732dbf",
      "tree": "0489d59487f225e900896f1f5fd152dc2c498666",
      "parents": [
        "affb58e727863fdc8d2c0ea444054b581eb41be5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 10:25:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 11:13:59 2011 -0700"
      },
      "message": "Support passing headers to MediaMetadataRetriever\u0027s setDataSource API\n\nChange-Id: Ib1a5c08fc5034cac05034db27007a35c9b660b26\nrelated-to-bug: 3506316\n"
    },
    {
      "commit": "affb58e727863fdc8d2c0ea444054b581eb41be5",
      "tree": "1f1a9194ffc8ba610b81bab6a7e046921619a583",
      "parents": [
        "4bb07bbd89624f30ea83b4596a6ce7716305df6c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Mar 21 10:27:18 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Mar 21 10:27:18 2011 -0400"
      },
      "message": "Fix build.\n\nSee Change Ie70ac630\n\nChange-Id: Ifffd53dbe17be64e6234bc6371f44b84c3e123e4\n"
    },
    {
      "commit": "e72f237defd9956a7e2d2e2bee8cd2558c3f83db",
      "tree": "690c037d7a742c07f6c83716e32712cdccbf6bae",
      "parents": [
        "b18a047de574f188b2c7633164f15ab3c9e40b5b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 16 10:43:18 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 18 12:54:26 2011 -0700"
      },
      "message": "More work on making prefs work well on small screens.\n\nTweak padding so layouts now look decent, a few extensions so that\nthe correct title can be shown.\n\nChange-Id: Ieace16bf4962d66564c6e2f67fb588e582943850\n"
    },
    {
      "commit": "315f19be8ef26fee77db2455f8c2997680755f6d",
      "tree": "ea710b662d08d5a3566d501d77a62135419f3d4c",
      "parents": [
        "955652596e07d290d008d2edb384b6ac301d16e0",
        "daa71254f3e3261ecc0e143955c89ced70bbf008"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 17 19:07:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 19:07:17 2011 -0700"
      },
      "message": "am daa71254: am efb56934: am 1d50ad79: Merge \"Whoops, forgot the HONEYCOMB_MR1 constant. :(\" into honeycomb-mr1\n\n* commit \u0027daa71254f3e3261ecc0e143955c89ced70bbf008\u0027:\n  Whoops, forgot the HONEYCOMB_MR1 constant. :(\n"
    },
    {
      "commit": "edf1fc6ce642c8d0f675795635d223b26d9f825c",
      "tree": "6c6fe44bace79b645e4fd663e8a682f91a014f16",
      "parents": [
        "5dbd0978cd7f2d3ff1e28bbfdef2f757de28e1bc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 17 18:34:48 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 17 18:34:48 2011 -0700"
      },
      "message": "Whoops, forgot the HONEYCOMB_MR1 constant. :(\n\nIt shouldn\u0027t be a problem to put this in -- it is a static final\nso it doesn\u0027t actually need to be in the on-device system image.\n\nThis is important for the SDK.\n\nChange-Id: Iaa086247d0d65fe708c40fbab506aa60cd3e1396\n"
    },
    {
      "commit": "454b2d1c34238ba33d8f6861971a74c80c3e302a",
      "tree": "ff078839aaf33111641bad0c51337a27e2d15849",
      "parents": [
        "08aa2cbd5e62e7ca140f78f8bea0477a19880fd9",
        "2c3257b21ddf2a3da843f11d1bb3b4fa8e912707"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 12:38:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 12:38:40 2011 -0700"
      },
      "message": "am 2c3257b2: am 9940c8b6: am def35f7a: Merge \"Fix for 4089881. - Add one more parameter in the interface of DrmEvent and its subclasses   DrmInfoEvent and DrmErrorEvent - Send back DrmInfo in the response of async processDrmInfo calls\" into honeycomb-mr1\n\n* commit \u00272c3257b21ddf2a3da843f11d1bb3b4fa8e912707\u0027:\n  Fix for 4089881. - Add one more parameter in the interface of DrmEvent and its subclasses   DrmInfoEvent and DrmErrorEvent - Send back DrmInfo in the response of async processDrmInfo calls\n"
    },
    {
      "commit": "def35f7a47cde8bf66d4cba4570b289e0e9d625a",
      "tree": "4101430bfb7257571ab92ec9a33fe00a37e7a1cc",
      "parents": [
        "87f50f19eef2e70fcf7294c3b9cd5ca0344b99ee",
        "f8bf3c46f524b1252bf466a351daaef61afdcecb"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 10:49:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 10:49:43 2011 -0700"
      },
      "message": "Merge \"Fix for 4089881. - Add one more parameter in the interface of DrmEvent and its subclasses   DrmInfoEvent and DrmErrorEvent - Send back DrmInfo in the response of async processDrmInfo calls\" into honeycomb-mr1"
    },
    {
      "commit": "f8bf3c46f524b1252bf466a351daaef61afdcecb",
      "tree": "40f222d60751b8278291b5890d7fc3f2fb6a75eb",
      "parents": [
        "3913c131c61288c5b4eedb063d9eb6b6204d2a1f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 16 10:44:03 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 16 21:36:30 2011 -0700"
      },
      "message": "Fix for 4089881.\n- Add one more parameter in the interface of DrmEvent and its subclasses\n  DrmInfoEvent and DrmErrorEvent\n- Send back DrmInfo in the response of async processDrmInfo calls\n\nChange-Id: Ia9b1a641296629a19ae4ffa7913e6c878fd340f8\n"
    },
    {
      "commit": "0677d2526d7b0a00114fb6ba00add1ccaaa2da86",
      "tree": "33e0320921436bb671eedc6a26189b50339b7f8a",
      "parents": [
        "5949f89f3c944ca5992cbe09b5cf3abbacbaa8b6",
        "d799caa9a6623de4af581bebc9759272c10b6588"
      ],
      "author": {
        "name": "Michael Kolb",
        "email": "kolby@google.com",
        "time": "Wed Mar 16 12:35:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 16 12:35:42 2011 -0700"
      },
      "message": "am d799caa9: am 9a0df3c5: am 95fd065e: Merge \"deprecate getVisibleTitleHeight\" into honeycomb-mr1\n\n* commit \u0027d799caa9a6623de4af581bebc9759272c10b6588\u0027:\n  deprecate getVisibleTitleHeight\n"
    },
    {
      "commit": "5949f89f3c944ca5992cbe09b5cf3abbacbaa8b6",
      "tree": "286779d34f33ea191f596a5cbec3859001a6c96c",
      "parents": [
        "a0933013d04ccc1a08e95b1210e5b30f3daadcf3",
        "9812aed2765c671e6c3f5255ac1b8a2fe0e72ef6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 16 11:46:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 16 11:46:00 2011 -0700"
      },
      "message": "Merge \"Add 3D mode key and others.\""
    },
    {
      "commit": "9812aed2765c671e6c3f5255ac1b8a2fe0e72ef6",
      "tree": "a622b446f9ef3484d51245a7817777a5487a496e",
      "parents": [
        "843e29d3751017267b96565c543df0301c31a9f7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 07 17:09:51 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 16 11:31:42 2011 -0700"
      },
      "message": "Add 3D mode key and others.\n\nRelated to an AOSP change request.\n\nChange-Id: I3f4f84b56a1af626a8783f5ecbb823eb12ba9fbe\n"
    },
    {
      "commit": "e54f66524e8beaa681015c6ac20036a5fbf0aa92",
      "tree": "0467376a91cd09f7d4a3711dae452a30661d16e5",
      "parents": [
        "ff51d29a0bbf7006833ad67b1aa8a52a8a9a2514"
      ],
      "author": {
        "name": "Michael Kolb",
        "email": "kolby@google.com",
        "time": "Wed Mar 16 09:11:51 2011 -0700"
      },
      "committer": {
        "name": "Michael Kolb",
        "email": "kolby@google.com",
        "time": "Wed Mar 16 09:25:23 2011 -0700"
      },
      "message": "deprecate getVisibleTitleHeight\n\n\t  Bug: 4104535\n\nChange-Id: I8a6ef21d38a25848efa28e2c06cf2da0ff7af9c4\n"
    },
    {
      "commit": "35267f178c10878034364b8c774580401621cb78",
      "tree": "7156e0c3dc81a1f1897415f70411aa76e2025bde",
      "parents": [
        "d71792e17dbaef42200bb8e762cadf632bb2969e",
        "adb435835fb9a5f2bb74d29930b239dde18504a7"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Mar 15 23:13:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 23:13:56 2011 -0700"
      },
      "message": "Merge \"Add CorrectionSpan and APIs to pass a secure CorrectionSpan to TextView\""
    },
    {
      "commit": "adb435835fb9a5f2bb74d29930b239dde18504a7",
      "tree": "7dfcbef60811268cfde7606bd721ddd75c0b6912",
      "parents": [
        "fd865d0fb5f5b38a41a9196ee54357715bd32254"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Mar 09 10:08:47 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Mar 16 14:44:37 2011 +0900"
      },
      "message": "Add CorrectionSpan and APIs to pass a secure CorrectionSpan to TextView\n\n- CorrectionSpan is a span which has suggestions made by IME.\nThis has a function to change the current IME to other IME specified\nin this span. For security reasons, only the current IME\nis allowed to use this function through InputConnection.\n(IME token is used for checking the validity of it.).\n\n- CorrectionSpan stores following information:\n\nflags, subtype Id, InputMethodInfo Id, suggests, locale, original string\n\nChange-Id: Id3abc9ea4d11753cdc4f483a2bb3128f49ba198a\n"
    },
    {
      "commit": "b1a6e439f63e4fa2b07a4905f00b6badf58e6420",
      "tree": "72b22bb719e02a85ae6457c06894f1a36239f234",
      "parents": [
        "e196481d59982664247bc18d5743727965362dfa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 15 16:23:01 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 15 16:23:01 2011 -0700"
      },
      "message": "Add new PreferenceActivity API for settings.\n\nNeed to redirect to a different activity when on non-xlarge screens.\n\nChange-Id: I8cf4793b117325604d29ecc4478dbf10322a4689\n"
    },
    {
      "commit": "688d8412bd027f33c0c56267d26b96ef10599702",
      "tree": "298a293be304161778e07dd86407ae09ec765491",
      "parents": [
        "6c256d125e465d651cf7f44323113bd8e93f90d5",
        "0958fb1068ee1b5e6c40eee16d943a664b1124b4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 17:47:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 14 17:47:49 2011 -0700"
      },
      "message": "am 0958fb10: am 221830b9: Merge \"Add support for USB accessory serial numbers\" into honeycomb-mr1\n\n* commit \u00270958fb1068ee1b5e6c40eee16d943a664b1124b4\u0027:\n  Add support for USB accessory serial numbers\n"
    },
    {
      "commit": "5c4421f73fe9ce7d9587add4dfa6fdac3b19ca4e",
      "tree": "2b4b1c2db6412974c7c9c1f588cbfdc937bf93d6",
      "parents": [
        "5579bb75965eb72682cc4c12d26018e8c67b8133",
        "67718e076422f8f28f4e30a39df9e462ef32d19b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "message": "am 67718e07: am 132bb659: Merge \"For issue 4082089 Add more info and error events into the DRM framework\" into honeycomb-mr1\n\n* commit \u002767718e076422f8f28f4e30a39df9e462ef32d19b\u0027:\n  For issue 4082089 Add more info and error events into the DRM framework\n"
    },
    {
      "commit": "221830b93d6f35bcf20db2d34978392b43f44221",
      "tree": "d6820eb7f53c45190f6603e9f95b9dd2d0981157",
      "parents": [
        "3fabad87f6cade6ccf7dc6d716e8b91675982088",
        "015b1ecaec27b7cf5f1a78099d9ae34a0c3169f2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 17:39:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 14 17:39:43 2011 -0700"
      },
      "message": "Merge \"Add support for USB accessory serial numbers\" into honeycomb-mr1"
    },
    {
      "commit": "015b1ecaec27b7cf5f1a78099d9ae34a0c3169f2",
      "tree": "3b7a7bca14b9579c6fe647696d4623ad8acb8c71",
      "parents": [
        "9f3f36c95b87aab2c5f7cd6b6e18927f8ebfa9c4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 18:24:35 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 20:10:47 2011 -0400"
      },
      "message": "Add support for USB accessory serial numbers\n\nChange-Id: I47b79f091b300ced60bfc61eff2f771139663aae\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "27b277779c89251f2aafcc7a56db95d264900c9d",
      "tree": "9bec6bf81a5b201b570c8d1a3255c50905679d47",
      "parents": [
        "3ec9d06f070db3a8899ad235736abd0ffaf6f578"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 12:04:15 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 15:29:08 2011 -0700"
      },
      "message": "For issue 4082089\nAdd more info and error events into the DRM framework\n\nChange-Id: I0bb3251c5947fc8e977d478e1ba46b242cb97e9d\n"
    },
    {
      "commit": "df3576275896253ab2f016442beda3020c925fd9",
      "tree": "86755e12ae6592714f275b7f2b31abf357b09fd7",
      "parents": [
        "e1976e5c61cdbd22db291ba1698079469bc21955",
        "ce3bcbade5ca3eac5bae2e06fa37d17f00006a15"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 11 23:10:55 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 23:10:55 2011 -0800"
      },
      "message": "am ce3bcbad: am 9ff64838: Merge \"Fix issues #4087362 and #4087356\" into honeycomb-mr1\n\n* commit \u0027ce3bcbade5ca3eac5bae2e06fa37d17f00006a15\u0027:\n  Fix issues #4087362 and #4087356\n"
    },
    {
      "commit": "e1976e5c61cdbd22db291ba1698079469bc21955",
      "tree": "6a63f718626c92963670674a459dee63d91520d7",
      "parents": [
        "718e64b17f72874996425b7ba9a187d473bc58f7",
        "3b473d958c46ea6511b9599f727b47636e5cbc4a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 23:10:41 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 23:10:41 2011 -0800"
      },
      "message": "am 3b473d95: am 9fffd9a8: Merge \"USB: minor cleanup work\" into honeycomb-mr1\n\n* commit \u00273b473d958c46ea6511b9599f727b47636e5cbc4a\u0027:\n  USB: minor cleanup work\n"
    },
    {
      "commit": "9ff6483843bfa23751b1acf32b169fca9ad97f7f",
      "tree": "cfb9d5fc5d2903031167476fb7917329c0db30a2",
      "parents": [
        "9fffd9a8bb73e9b225878686862d49b27e98c659",
        "cf407ad88bef3bc640489b300f23eaa8ea0b724e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 11 18:01:47 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 11 18:01:47 2011 -0800"
      },
      "message": "Merge \"Fix issues #4087362 and #4087356\" into honeycomb-mr1"
    },
    {
      "commit": "62cfeeb821afb2f3d3b78ad93caa13408cd26eac",
      "tree": "e96a73bc962ae854f737f35d355ac0cbea6c3c50",
      "parents": [
        "14c875eac750ca096de439225b1a028b1facc58e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 18:39:03 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 18:51:29 2011 -0500"
      },
      "message": "USB: minor cleanup work\n\nBug: 4067029\n\nChange-Id: Icd8f912ab8732b5f770a217b9b3731092597ce02\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "cf407ad88bef3bc640489b300f23eaa8ea0b724e",
      "tree": "e4690beb12fc2a68a7466a08a0a302fa41b2fdb3",
      "parents": [
        "0eb7b697b7c180660647b5cd0cd7dd067f6b6abb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 11 13:17:57 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 11 13:48:32 2011 -0800"
      },
      "message": "Fix issues #4087362 and #4087356\n\n4087362: Provide a safer way to call DialogFragment.dismiss()\n4087356: PreferenceActivity.invalidateHeaders() can cause\nIllegalStateException: Can not perform this action after onSaveInstanceState\n\nThese are very safe; the first is just a new public API that\nallows you to use an existing feature in DialogFragment, and the\nsecond just uses the version of commit that avoids the failure if\nhappening at a point where the operation would be lost if restored\nfrom the last state (which is no big deal for preferences).\n\nChange-Id: I53971c9fb1efdcd599694cdcd4585b81afc156b8\n"
    },
    {
      "commit": "b46ecb352617b4c2f2d5f716aa6af6f518d1f579",
      "tree": "465648cbc006a0c0c6b78345ab8427e572dfcd94",
      "parents": [
        "08758fad846ed01045246bb0b87e038fc5d90793",
        "75c95e9a6d5a91b660af62f72b5a3bac0f5c3811"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 11:53:13 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 11:53:13 2011 -0800"
      },
      "message": "am 75c95e9a: am 0eb7b697: Merge changes Ib63ab95a,I585b0610,Ia84da0b5 into honeycomb-mr1\n\n* commit \u002775c95e9a6d5a91b660af62f72b5a3bac0f5c3811\u0027:\n  UsbManager: Hide APIs not needed for USB host or accessory support.\n  Remove MtpClient class from framework and public API\n  UsbDevice: Move IO related methods to new UsbDeviceConnection class\n"
    },
    {
      "commit": "a75075e1671f57217d8b8bb75b2d9c3a6bab37d8",
      "tree": "72d381b474edda72795dd9c01a02b6097eaddb2b",
      "parents": [
        "c72eb9113a2f3f7886afcecf5c29507e0a3a8266"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 11:26:11 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 11:26:38 2011 -0500"
      },
      "message": "UsbManager: Hide APIs not needed for USB host or accessory support.\n\nBug: 4067029\n\nChange-Id: Ib63ab95a6571d6a691834bfb583a68d2e4cfd22e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "acc29cc91be634070c92a807df412ced97b9b375",
      "tree": "0d4f25642cd68ac9d15966129d04ea127665d00d",
      "parents": [
        "364903bac6b9bfde694f1c0c5c40b6a2af628408"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 08:18:08 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Mar 11 10:24:21 2011 -0500"
      },
      "message": "UsbDevice: Move IO related methods to new UsbDeviceConnection class\n\nUsbDevice is now just an immutable parcelable object like UsbInterface and\nUsbEndpoint.\nAll IO related functionality is now contained in UsbDeviceConnection\nand UsbRequest.\n\nBug: 4067029\n\nChange-Id: Ia84da0b512a697acc940eee0c3566711c62e1a68\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "180bb1bf26f3061fdfd58106e62d5874f57f675b",
      "tree": "45b85967bf9c3ec1a4316d938bda6771d3d3c224",
      "parents": [
        "5da447610b804273e33ab1896f900567188e5811"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Mar 10 11:14:00 2011 -0800"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Mar 10 16:55:28 2011 -0800"
      },
      "message": "Refactor in TextView\u0027s HandleViews.\n\nHandleView had a reference on its Controller, and Controller had\na reference to its HandleView.\n\nThis large refactoring breaks this dependency, creating smarter\nHandleView subclasses that don\u0027t have to delegate to the controller\nanymore.\n\nChange-Id: I472621f747cdc78fd8b2bba84c0edc62cb2f6316\n"
    },
    {
      "commit": "26d7eef69ef064ca716ed76220ca2984995882ed",
      "tree": "53527cff471cd4c9cd0c94a0d0862415e75b4a8e",
      "parents": [
        "a3ae42ef0a94ce3cfc65a7e11d2e88dd11ea4c35",
        "84edf14b62eaf3304252bb76b0b2ca3f518c8d54"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 10 07:56:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 10 07:56:59 2011 -0800"
      },
      "message": "am 84edf14b: am cc08c439: Merge \"UsbAccessory: Add URI string, replace type string with description\" into honeycomb-mr1\n\n* commit \u002784edf14b62eaf3304252bb76b0b2ca3f518c8d54\u0027:\n  UsbAccessory: Add URI string, replace type string with description\n"
    },
    {
      "commit": "cc08c439bc7b0afbdafc5ca18c584d2f7724f3df",
      "tree": "219bad973dd1af80c377bb8e9e5355e70b843bac",
      "parents": [
        "3de30a4c1e48d92af14154abddd4fb6fe0c6aa13",
        "ac36d7c715a9cd793b2dce6de547594810101c3a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 10 07:50:30 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 10 07:50:30 2011 -0800"
      },
      "message": "Merge \"UsbAccessory: Add URI string, replace type string with description\" into honeycomb-mr1"
    },
    {
      "commit": "9b12dbdd1e3f4f2390f9baf59bc790ae53236e4f",
      "tree": "ac5d198eb395c7cf78effe38921c62c839aa4fc7",
      "parents": [
        "5a3d6cc188bd38a9475c801a13f7752b24fb1072",
        "4ffdca06ec5575ddaa215941c1cc21de96e76bcb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 19:37:49 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 19:37:49 2011 -0800"
      },
      "message": "am 4ffdca06: am 3de30a4c: Update API.\n\n* commit \u00274ffdca06ec5575ddaa215941c1cc21de96e76bcb\u0027:\n  Update API.\n"
    },
    {
      "commit": "3de30a4c1e48d92af14154abddd4fb6fe0c6aa13",
      "tree": "78f10c5c5f4f053305dca839be8783a04225783d",
      "parents": [
        "efd3266b719eed5f1b217021c0a9e76e4b274b06"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 19:13:11 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 19:13:11 2011 -0800"
      },
      "message": "Update API.\n\nNot sure the changes were correctly rebased last time.\n\nChange-Id: If6ab4014f312bef240df60f0b1cd6d923f472836\n"
    },
    {
      "commit": "ac36d7c715a9cd793b2dce6de547594810101c3a",
      "tree": "5f347132f5896785d47519c1ae728af1113db1f0",
      "parents": [
        "b966b9d9e882835691e5adda292d89dd704df71c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 09 22:03:57 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 09 22:12:49 2011 -0500"
      },
      "message": "UsbAccessory: Add URI string, replace type string with description\n\nThis is a first step toward adding USB accessory URI support\n\nBUG: 4073248\n\nModified USB accessory matching logic to look only at manufacturer, model and version\n(description and URI are not considered when matching apps to accessories)\n\nAlso added test for USB accessory protocol version to accessorytest\n\nBUG: 4080288\n\nChange-Id: I992a3433c74efa7a7db37bf030f02c1f0c92f9e2\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "5a3d6cc188bd38a9475c801a13f7752b24fb1072",
      "tree": "1aa00bfc4cb118831d39d4dc2aaaabf6bd3bafaa",
      "parents": [
        "614ef8df70b417276de28e94d4c624cc1bb5a42e",
        "e6f0ae12b18819424dd8395b433a8fc9caefa77b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 18:39:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 18:39:46 2011 -0800"
      },
      "message": "am e6f0ae12: am efd3266b: Input improvements and bug fixes.\n\n* commit \u0027e6f0ae12b18819424dd8395b433a8fc9caefa77b\u0027:\n  Input improvements and bug fixes.\n"
    },
    {
      "commit": "efd3266b719eed5f1b217021c0a9e76e4b274b06",
      "tree": "f76032f2a0bdfdc9910860063455116a9c792687",
      "parents": [
        "9e8e40cb5f8aeb0702002eee60d1ce394bf699ee"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 08 15:13:06 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 18:30:28 2011 -0800"
      },
      "message": "Input improvements and bug fixes.\n\nAssociate each motion axis with the source from which it comes.\nIt is possible for multiple sources of the same device to define\nthe same axis.  This fixes new API that was introduced in MR1.\n(Bug: 4066146)\n\nFixed a bug that might cause a segfault when using a trackball.\n\nOnly fade out the mouse pointer when touching the touch screen,\nignore other touch pads.\n\nChanged the plural \"sources\" to \"source\" in several places in\nthe InputReader where we intend to refer to a particular source\nrather than to a combination of sources.\n\nImproved the batching code to support batching events from different\nsources of the same device in parallel.  (Bug: 3391564)\n\nChange-Id: I0189e18e464338f126f7bf94370b928e1b1695f2\n"
    },
    {
      "commit": "888f0654fd2ecbe76be12e2a57b41191e78bb87e",
      "tree": "5fac96aba39e7df72974067aab8f091306e2ef59",
      "parents": [
        "6a5ecc090020d84f91374b54f2e8cb1ca152c4bd",
        "5d534f288d0c29337458e267fd207236bc23fec5"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Wed Mar 09 05:10:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 05:10:34 2011 -0800"
      },
      "message": "am 5d534f28: am ea44c7c7: Merge \"Pass the auto login header information to the app.\" into honeycomb-mr1\n\n* commit \u00275d534f288d0c29337458e267fd207236bc23fec5\u0027:\n  Pass the auto login header information to the app.\n"
    },
    {
      "commit": "ea44c7c71431adbce348cf9ef3f22d9561bb7fc1",
      "tree": "dbc4c7984ed917a530623da954dc11c250462c97",
      "parents": [
        "9e697ee9fc9dcc21348d799e1e0bc83dd3abdb18",
        "85a50ff48b2331913cc87f483eafba9f231c8c8c"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Wed Mar 09 05:05:21 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 09 05:05:21 2011 -0800"
      },
      "message": "Merge \"Pass the auto login header information to the app.\" into honeycomb-mr1"
    },
    {
      "commit": "77e1a4c57e1d5a75a09c514ef5b7d358a9150bbf",
      "tree": "6dbf2b0c803e0da60c0a0b07793e4b93e1dbcfa3",
      "parents": [
        "29c6c81584ee3b99e9bfacefcb53bb7233856f84",
        "093cf07f3c58a6553c415d750edba1a75b269f05"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 09 03:57:14 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 03:57:14 2011 -0800"
      },
      "message": "am 093cf07f: am 9e8e4ea0: Merge changes Ib517e5e4,I93be7695,I49bf22a4 into honeycomb-mr1\n\n* commit \u0027093cf07f3c58a6553c415d750edba1a75b269f05\u0027:\n  Close USB dialogs if their corresponding accessory or device has disconnected\n  USB: Add API and dialog for apps to request permissions for USB devices and accessories\n  UsbService: Automatically use system apps by default if it is the only choice\n"
    },
    {
      "commit": "3a68b8338b431eb15d28e92f06452efbbda9493e",
      "tree": "51d551ff5d51e1a141250aff2d6dd604ee3e6e4d",
      "parents": [
        "8c7d8c3ccb37edff424ca01c6474cbed2154d954"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 08 10:08:59 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 08 21:22:19 2011 -0500"
      },
      "message": "USB: Add API and dialog for apps to request permissions for USB devices and accessories\n\nNew APIs:\n\nUsbManager.hasPermission returns true if the caller has permission\nfor the given device or accessory\n\nUsbManager.requestPermission poses a dialog to allow the user to give the caller\npermission for the device or accessory.\nResult is returned via a PendingIntent.\nNo dialog is displayed if the caller already has permission.\n\nAlso moved UsbResolverActivity to SystemUI package\n\nBUG: 4069037\n\nChange-Id: I93be769501a8776b49ac26e468af19f8fa2114c9\n"
    }
  ],
  "next": "85a50ff48b2331913cc87f483eafba9f231c8c8c"
}
