)]}'
{
  "log": [
    {
      "commit": "1b312039a046532532837efd2dac06390ab506c0",
      "tree": "37e60b6963736d63676e540f39d7ba1a7ab5808d",
      "parents": [
        "c54ed966f78b9ee8117931859d62faa6f11fe018"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 06 14:55:48 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 06 14:55:48 2011 -0700"
      },
      "message": "Remove MediaStore.Audio.AudioColumns.ALBUM_ART\n\nThis column doesn\u0027t actually exist in the corresponding table, and\nnever has, so the presence of this definition is confusing.\n\nChange-Id: I199f9a8effbdc9f45d51060830e3ad83675a0dff\n"
    },
    {
      "commit": "b51cc1dd63808da505cd8beb7300f57dc98ff1d3",
      "tree": "779c28c6094586e0d31447b0cd805d114552e915",
      "parents": [
        "8b1b0548b21e6d8fdfb769d9064cd2ff4232bc3d",
        "e0a799a2ac1ca78e30fbac9e4e12a063425c08d3"
      ],
      "author": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Thu May 05 14:59:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 05 14:59:35 2011 -0700"
      },
      "message": "Merge \"Only delay pressed feedback for Views inside a scrolling parent\""
    },
    {
      "commit": "e0a799a2ac1ca78e30fbac9e4e12a063425c08d3",
      "tree": "2c9b15f937b7c3b3db2bba4cf3df5a54838bbe69",
      "parents": [
        "a0449f03eb12462189f7a75f55e4751e1e2bcbcd"
      ],
      "author": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Wed May 04 16:19:22 2011 -0700"
      },
      "committer": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Thu May 05 14:49:20 2011 -0700"
      },
      "message": "Only delay pressed feedback for Views inside a scrolling parent\n\nAdd a method on ViewGroup to determine whether it supports scrolling.\nThis allows us to show the pressed feedback immediately in many cases,\nimproving responsiveness of buttons, etc.\n\nThis patch also lengthens the timeout in order to reduce flashes\nwhen the user is scrolling.\n\nChange-Id: Ieb91ae7a1f8e8f7e87448f2a730381a53947996f"
    },
    {
      "commit": "8f0095cd33558e9cc8a440047908e53b68906f5f",
      "tree": "2f55d779bf102e0c134357d89c7de69d0444634a",
      "parents": [
        "3a5c227279011f850036c29e7c0bc96023298d5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 17:24:22 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:32:29 2011 -0700"
      },
      "message": "Allows to render with an OpenGL context inside a TextureView.\n\nChange-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7\n"
    },
    {
      "commit": "9b4bee0f14bbd137b0797127aff2df46a6321ec5",
      "tree": "9f3e8760941e431286b976e0b8d28b702d9d250d",
      "parents": [
        "d93e19aef7abdac18788d5198eb5cdae06f016fd"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 27 19:24:47 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 28 19:13:25 2011 -0700"
      },
      "message": "Introducing the split action bar.\n\nApply (or extend) the theme Theme.Holo.SplitActionBarWhenNarrow or\nTheme.Holo.Light.SplitActionBarWhenNarrow to enable splitting the\naction bar across both the top and bottom of the screen. This places\nthe action menu along the bottom, leaving more room at the top for\ntitles, navigation, and custom views and more room at the bottom for\nmenu items.\n\nTODO: Refine layout of the action menu when placed at the bottom of\nthe screen. Make action modes split as well.\n\nChange-Id: I92c91f99c533f26aecf6b828ed041386c4f16922\n"
    },
    {
      "commit": "ad44445c772efe66fdf063aa8f78d7ae3233570e",
      "tree": "8097234b893dbc0dfe050a0a98e7acecce74b28b",
      "parents": [
        "efe2a0e6ac8183c98dfe969928509e3b32903b40",
        "aa6c24c21c727a196451332448d4e3b11a80be69"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:47:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 18:47:01 2011 -0700"
      },
      "message": "Merge \"New widget: TextureView Bug #4343984\""
    },
    {
      "commit": "aa6c24c21c727a196451332448d4e3b11a80be69",
      "tree": "27114ab3852d31723d885f3846ee874a07247126",
      "parents": [
        "9fc27819d75e24ad63d7b383d80f5cb66a577a0d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:40:04 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:46:19 2011 -0700"
      },
      "message": "New widget: TextureView\nBug #4343984\n\nTextureView can be used to render media content (video, OpenGL,\nRenderScript) inside a View.\n\nThe key difference with SurfaceView is that TextureView does\nnot create a new Surface. This gives the ability to seamlessly\ntransform, animate, fade, etc. a TextureView, which was hard\nif not impossible to do with a SurfaceView.\nA TextureView also interacts perfectly with ScrollView,\nListView, etc. It allows application to embed media content\nin a much more flexible way than before.\n\nFor instance, to render the camera preview at 50% opacity,\nall you need to do is the following:\n\nmTextureView.setAlpha(0.5f);\nCamera c \u003d Camera.open();\nc.setPreviewTexture(mTextureView.getSurfaceTexture());\nc.startPreview();\n\nTextureView uses a SurfaceTexture to get the job done. More\nAPIs are required to make it easy to create OpenGL contexts\nfor a TextureView. It can currently be done with a bit of\nJNI code.\n\nChange-Id: Iaa7953097ab5beb8437bcbbfa03b2df5b7f80cd7\n"
    },
    {
      "commit": "61773dbda321be54cce0ff4b8cfa993433c1543f",
      "tree": "25ccd566a58afa3031cf4315ef4afb2baea058e9",
      "parents": [
        "4135f45c87d9aedebd0f7999e76d1c53a5042ec2",
        "f715bf95ded30821e81ba93bb48c08725e1c34aa"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Apr 27 21:17:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 27 21:17:52 2011 -0700"
      },
      "message": "Merge \"Unhide camera focus area and metering area API.\""
    },
    {
      "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": "f715bf95ded30821e81ba93bb48c08725e1c34aa",
      "tree": "af443babf17ce86dc29def1929355c596ded0e3c",
      "parents": [
        "88eb5c07f567c30195d4940167cabc50bf2c1e34"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Apr 14 14:04:18 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Apr 27 01:20:53 2011 +0800"
      },
      "message": "Unhide camera focus area and metering area API.\n\nThese API are for touch focus.\n\nbug:3475893\n\nChange-Id: I1e213c0bed0c6fe18dcbfb0457c51c52e7cfae30\n"
    },
    {
      "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"
    }
  ]
}
