)]}'
{
  "log": [
    {
      "commit": "56f67d21459ad3f136c73c8932904d4a495989c0",
      "tree": "7d13afccbdd481fc71aef6403c5baf65bba56c47",
      "parents": [
        "cc927375cea38f44d810d9dd5ba87abb624d7e0c"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Aug 28 14:36:42 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Aug 28 17:01:16 2009 -0700"
      },
      "message": "add the ability to specify yieldpoints in a ContentProviderOperation\n"
    },
    {
      "commit": "e9df3cf79c2084391d5af140680cb4a18feca2e2",
      "tree": "4ad27fcdf972fc7e7b31d0c431f10739f197ec82",
      "parents": [
        "49237345d83e62fdb9eb8d50b13ad086636a04fa",
        "1e3483780ce4eda729cb2984470fd6964006e4fb"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Aug 27 23:54:12 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Aug 27 23:54:12 2009 -0700"
      },
      "message": "resolved conflicts for merge of 1e348378 to eclair\n"
    },
    {
      "commit": "49237345d83e62fdb9eb8d50b13ad086636a04fa",
      "tree": "224ca2d134177a09184c1440f4fceac13a10b627",
      "parents": [
        "5511c66955d96019ee62ac334d73e4d2bcda178b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 20:08:01 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 21:51:00 2009 -0700"
      },
      "message": "Add platform infrastructure for features.\n\nThis introduces a new mechanism to define features associated with\na platform, query the current device for the available features,\nand enforce that apps requiring features that aren\u0027t available can\u0027t\nbe installed.\n\nAlso now allows uses-library to specify that a library is optional,\nso the lack of such a library will not prevent the app from being\ninstalled (but if it does exist it will be correctly linked into\nthe app).\n\nChange-Id: I5b369b46cfa0b3d37c9e08fd14ef1098a978e67b\n"
    },
    {
      "commit": "5c7aede8d69f4f0ad617d39decd4453b029ba6af",
      "tree": "59fc865b1571430f27377701ed7dc373bc3ba762",
      "parents": [
        "c298a8518a8fd73a303132c7db241f10eb46c5b6"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 27 21:41:27 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 27 21:43:35 2009 -0700"
      },
      "message": "allow delaying after yielding\n"
    },
    {
      "commit": "1e3483780ce4eda729cb2984470fd6964006e4fb",
      "tree": "e116696fa43345e9c11f08a7dcaf3743c41da304",
      "parents": [
        "f734e027bfed6c884e5f060c3291d3aeb5706dc8",
        "590f63433ce786722d263c7e913a88d3101e5cbc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 27 18:32:27 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 27 18:32:27 2009 -0700"
      },
      "message": "Merge change 23043 into donut\n\n* changes:\n  Revert \"Remove third party support for Quick Search Box (aka global search).\"\n"
    },
    {
      "commit": "590f63433ce786722d263c7e913a88d3101e5cbc",
      "tree": "960b467a9e86d9ca94b47e4d4f29828168484d55",
      "parents": [
        "b56de7474d93e634f77be58a794fbd1b0e68f6a8"
      ],
      "author": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Thu Aug 27 17:42:48 2009 -0700"
      },
      "committer": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Thu Aug 27 17:42:48 2009 -0700"
      },
      "message": "Revert \"Remove third party support for Quick Search Box (aka global search).\"\n\nThis reverts commit a647b7f29d65a7792cede74284e714b591337992.\n"
    },
    {
      "commit": "e5276a74746b5e8f09b05a50155e7aa0bbb4a747",
      "tree": "38f66bbad2a14adbee770b1d1c1caa842ecf4e28",
      "parents": [
        "d6ac7c73e17f0ce0cc3b1290760c4f67cafcdec5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 16:28:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 16:28:44 2009 -0700"
      },
      "message": "Fix issue #2084148: Define the format for the auto focus preview for barcode scanning\n\nAdd new manifest/aapt support for specifying device features an application\nrequires.  The aapt badging now returns these (as well as uses-permission since\nI need to look for those anyway); if an app doesn\u0027t explicitly request the\ncamera feature but does request the permission, then aapt will say that it has\nrequested both the basic camera feature as well as the autofocus feature.\n\nHere\u0027s what you put in your manifest to say you need a camera but don\u0027t need\nautofocus:\n\n    \u003cuses-permission android:name\u003d\"android.permission.CAMERA\" /\u003e\n    \u003cuses-feature android:name\u003d\"android.hardware.camera\" /\u003e\n    \u003cuses-feature android:name\u003d\"android.hardware.camera.autofocus\" android:required\u003d\"false\" /\u003e\n\nHere\u0027s what will be seen from aapt:\n\nuses-permission:\u0027android.permission.CAMERA\u0027\nuses-feature:\u0027android.hardware.camera\u0027\nuses-feature-not-required:\u0027android.hardware.camera.autofocus\u0027\n\nChange-Id: I4dd19cee0486cc54771f5bf14fc9db0e892115d5\n"
    },
    {
      "commit": "fa5260290f3c19988c292f21845a948374c3c31d",
      "tree": "8bac5ec40baa474a194671671deb7ca2a13fc9e8",
      "parents": [
        "6391830d103ccb19465c69660065c22c2711dcfd",
        "f734e027bfed6c884e5f060c3291d3aeb5706dc8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 14:40:51 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 27 14:40:51 2009 -0700"
      },
      "message": "am f734e027: Merge change 22939 into donut\n\nMerge commit \u0027f734e027bfed6c884e5f060c3291d3aeb5706dc8\u0027 into eclair\n\n* commit \u0027f734e027bfed6c884e5f060c3291d3aeb5706dc8\u0027:\n  Final Donut API list.\n"
    },
    {
      "commit": "0409cde3601131caf14c88d132c65d74774bbd79",
      "tree": "17c5933801ab4c29207ed0c662d5d7b70451445c",
      "parents": [
        "1e0f7627389a18d7a2ea74d7a5fb2c251de56a56"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Aug 27 13:00:24 2009 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Aug 27 13:31:04 2009 -0700"
      },
      "message": "Updating synchronized to match x-net changes\n"
    },
    {
      "commit": "fe240ecf85ba4b5e95caa602398587d4cce6459b",
      "tree": "fc1a8b3b2ebac5e9d2bb458f03a260a220cf958c",
      "parents": [
        "aa0a3b09e7a2947130e9a98c459a63349ef2d339"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 12:51:11 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 12:51:11 2009 -0700"
      },
      "message": "Change these string constants back to match donut.\n\nUnfortunately we are stuck with the donut ones, can\u0027t change these in Eclair\nto be the more correct names.\n\nChange-Id: Id8aaa2e90cd21631b18a36bea3755a63d0e6d577\n"
    },
    {
      "commit": "6eccc390737a873d2334d628e1d06cc1857fcaee",
      "tree": "a354950e79bb037777c7fb7e96bb60424d778d63",
      "parents": [
        "b0f5b755e7f34ac00a390911d27c12f7e9e84154"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 12:11:10 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 12:11:10 2009 -0700"
      },
      "message": "Final Donut API list.\n"
    },
    {
      "commit": "d497d87650dd79f7d6a4751d79598d68ceb4b789",
      "tree": "e1bb8e0f192139b0ab2ebb19d5d16a24428a894e",
      "parents": [
        "97f870956a37d441f82e21135a5e68d3ecdd0bf5"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Tue Aug 25 19:32:54 2009 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Aug 26 12:39:55 2009 +0100"
      },
      "message": "Pass the estimated size of new HTML 5 databases to the ChromeClient so it can use that amount to figure an initial default quota.\n\nChange-Id:Ic9372b0c86472b42ba5d0b964aaff1e2bbfe3efa\n"
    },
    {
      "commit": "534aa012b5063abeaa36b9ade69851add8b7a48f",
      "tree": "ee2922b196c3e2b27cddaffc859f5985b29e3153",
      "parents": [
        "5439f4e30300084beb3f1ecbb19bcfd1bcac9e5d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 25 14:33:44 2009 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 25 17:27:15 2009 -0700"
      },
      "message": "Mark all legacy contacts APIs as deprecated.\n\nNow that we\u0027ve merged ContactsContract and are relying on\ncompatibility mode, we\u0027re marking the previous public\ncontacts API as deprecated.\n\nFixes http://b/2076016\n"
    },
    {
      "commit": "fa5382208b12586ed05e9e307227234ab676aa3c",
      "tree": "62e2c4390cc40f30b0abe04cd6fbcbc87f56a8bc",
      "parents": [
        "4b474440cef8afa5e355a9406bb076af8e493ca7"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Aug 25 14:47:44 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Aug 25 14:47:44 2009 -0700"
      },
      "message": "Fix build break\n- Introduced in 22109\n"
    },
    {
      "commit": "7aba54b2edcb94f43c991c555b23fc1de364835e",
      "tree": "236e10de49ded0f19999f0669ebc66d5273c19c7",
      "parents": [
        "617b22dc075bbf704421adf15f39388ec098b4fd"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Thu Aug 20 19:20:54 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Aug 25 12:44:56 2009 -0700"
      },
      "message": "Fix bug 1546445: Correct spelling errors in API\n- InstrumentationTestCase.injectInsrumentation\n- AndroidTestRunner.setInstrumentaiton\n"
    },
    {
      "commit": "dbade9d6a075b1d5b8ebe10ee8961a5de296c93b",
      "tree": "ba87f0dbb1f4ca2521a7282a65faa6ed0963eb9e",
      "parents": [
        "523018f1828884e96b1265f3e347410280577945"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Aug 25 13:20:19 2009 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Aug 25 13:47:47 2009 -0400"
      },
      "message": "expose runtime changes to gamma\n"
    },
    {
      "commit": "4a51c20ce607c74914f90fd897f04080121ac13b",
      "tree": "067caf43aa752a8952061d7d8e03fb1aeb77c96e",
      "parents": [
        "cf3a08307d1599eaa91d7cc4e7c601e5fa13037f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 21 15:14:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 24 17:37:32 2009 -0700"
      },
      "message": "I am getting tired of the java doc warnings, so fix them.\n\nChange-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1\n"
    },
    {
      "commit": "f6f9f2d0256930ce0bb4913b2260b8480914edc2",
      "tree": "bf42a25258b12bf78239bcb14a753a3cfeafc573",
      "parents": [
        "2e951b5511750ebfbba28263ee5384bfa7f45128"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 21 16:26:03 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 24 17:00:54 2009 -0700"
      },
      "message": "Add more control over a service\u0027s start state.\n\nOne of the problems I have been noticing is background services\nsitting around running and using resources.  Some times this is\ndue to the app developer doing this when they shouldn\u0027t, but there\nare also a number of issues with the current Service interaction\nmodel that make it very difficult (or impossible) to avoid\ngetting services stuck in the started state.  This is a\nchange/enhancement to the Service API to try to address this.\n\nThe main change is that Service.onStart() has been deprecated,\nreplaced with a new Service.onStartCommand() that allows the\nservice to better control how the system should manage it.  The\nkey part here is a new result code returned by the function, telling\nthe system what it should do with the service afterwards:\n\n- START_STICKY is basically the same as the previous behavior,\n  where we usually leave the service running.  The only difference\n  is that it if it gets restarted because its process is killed,\n  onStartCommand() will be called on the new service with a null\n  Intent instead of not being called at all.\n\n- START_NOT_STICKY says that, upon returning to the system, if\n  its process is killed with no remaining start commands to\n  deliver, then the service will be stopped instead of restarted.\n  This makes a lot more sense for services that are intended to\n  only run while executing commands sent to them.\n\n- START_REDELIVER_INTENT is like START_NOT_STICKY, except if\n  the service\u0027s process is killed before it calls stopSelf()\n  for a given intent, that intent will be re-delivered to it\n  until it completes (unless after 4 or more tries it still\n  can\u0027t complete, at which point we give up).\n\nChange-Id: I978f5ca420d70023d1b5e7f97de639d09381f8ad\n"
    },
    {
      "commit": "dd03c6135f91df6d5d9e71de1487520dc3345742",
      "tree": "c4948e1ca876b218b8c50abd6171ad2be10396cd",
      "parents": [
        "bfcfb7eec61bd196cfd91f7b2c5715751308c048",
        "081a136d259c02b2ab8ba773c38e404f7b3c3de4"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 21 12:59:04 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 21 12:59:04 2009 -0700"
      },
      "message": "resolved conflicts for merge of 081a136d to eclair\n"
    },
    {
      "commit": "081a136d259c02b2ab8ba773c38e404f7b3c3de4",
      "tree": "dd6766ddccbd1c1d3c80d1ba87d5899290d71347",
      "parents": [
        "e97c2006bf7c391c933307e520a392e532aa5d6a"
      ],
      "author": {
        "name": "Anonymous Coward",
        "email": "nobody@android.com",
        "time": "Thu Aug 20 17:53:27 2009 -0700"
      },
      "committer": {
        "name": "Anonymous Coward",
        "email": "nobody@android.com",
        "time": "Fri Aug 21 12:47:14 2009 -0700"
      },
      "message": "Remove third party support for Quick Search Box (aka global search).\n\n- @hides relevant APIs\n- removes relevant javadoc\n- enforces that only system apps can participate\n\nnote: general support is still there, will be easy to reenable when we are ready.\n"
    },
    {
      "commit": "3be63c09309b21c01b535271625d4c39045690e5",
      "tree": "5bc349f6c916ddb80bf852fa68de11cdfe3cfadf",
      "parents": [
        "e13ec26e6cab65831eefbd7b3c7aeee9ea714c91"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 20 19:31:38 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 20 20:34:42 2009 -0700"
      },
      "message": "Infrastructure for supporting wallpaper previews.\n\nVarious things that will allow us to show previews of wallpapers.\nAlso some fixes to animations across wallpapers.\n"
    },
    {
      "commit": "77709755b74bcc852cd511ff833c2827c0f0e1aa",
      "tree": "d526a9851433873588bf3504b1f2baa9e9555548",
      "parents": [
        "404780d62b8f6fe6787fca27cf36fe2c20b7220e"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 17:18:58 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 17:18:58 2009 -0700"
      },
      "message": "- add a reset to EntityIterator to allow it to go back to the beginning\n- clean up the debug printing of SyncResult\n"
    },
    {
      "commit": "8ada1c438af76552685775f1deb8f179fcf35997",
      "tree": "e84a20613eb86c337cb3e0daf210657dba44ef7a",
      "parents": [
        "58b6d1be26bd015b0da9336e82a83fd2cf303d2a"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 15:08:08 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 15:08:08 2009 -0700"
      },
      "message": "build fix\n"
    },
    {
      "commit": "58b6d1be26bd015b0da9336e82a83fd2cf303d2a",
      "tree": "e6e3583faebc207185dbb902ba7c21d1cb738c05",
      "parents": [
        "cc4f3424e5b5227d0711ae7d3850a8b903c15a07"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 14:23:28 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 14:24:36 2009 -0700"
      },
      "message": "build fix\n"
    },
    {
      "commit": "e0616ffb741b64e3bc7a1e3ad9def3d50eee53fd",
      "tree": "36beef758104791c49182db6cf4499d5ba885bcb",
      "parents": [
        "9e61acd9ff267fe9fdbcd130905bdd63ff70db3a"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Aug 19 13:13:18 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Aug 20 13:52:22 2009 -0700"
      },
      "message": "add a supportsUploading flag in the SyncAdapter description and honor it in the SyncManager\n"
    },
    {
      "commit": "45e2704ff512d41e22af2801d76e96955469ce8d",
      "tree": "9fff1a5f5e577c5545c2a9e7fdf4a25812d0973b",
      "parents": [
        "f768d24f7d9c01d1e01fdbccc3adc75fda3f8d4b"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Aug 19 11:00:00 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Aug 19 20:39:54 2009 -0700"
      },
      "message": "API CHANGE\n\nJavadoc, and unhide the first pieces of the Bluetooth API.\n\nWith this commit there is enough public API to connect and use an RFCOMM\nconnection between Bluetooth devices.\n"
    },
    {
      "commit": "0fa46a8de908a523540b9b709c18b759abba9e82",
      "tree": "614a167fc82401fc76c00639b46365e8db17e461",
      "parents": [
        "789de3a824003759c369e0f7c74520ef322d0504"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 18:37:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 18:38:28 2009 -0700"
      },
      "message": "fix build. forgot current.xml\n"
    },
    {
      "commit": "f8fbdb6b920562473dc47046924ac8ffed0b8daf",
      "tree": "24caa0567a13d5f7d3b6691c30a2edcfaf0029d6",
      "parents": [
        "7773e87178ba4978184198d83aa68498887a878f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 19 12:39:43 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 19 17:45:56 2009 -0700"
      },
      "message": "Add wallpaper transition animations.\n\nThe window manager now detects when a transition between two\nwallpaper activities is happening, and switches to a new set\nof animations for that.  The animations I defined here are just\nan arbitrary something that can work in this case.\n"
    },
    {
      "commit": "c818b141ee97a7a26fe069456d4b662d06c9eaea",
      "tree": "b8dab289aafc825d14d7968f27a2e665cc2d1883",
      "parents": [
        "460f541001112cdbee6902d33769191d5b264884"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Aug 19 08:32:21 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Aug 19 13:04:53 2009 -0700"
      },
      "message": "Do not enable the rew/pause/ffwd buttons when the media being played does not\nsupport these functions.\nThis extends the MediaPlayerControl interface with some new methods, and uses\nreflection to detect whether the old or new interface is used by an application.\n"
    },
    {
      "commit": "d8a43f61680bacf0d4b52a03ff3c7a07307377fc",
      "tree": "298808433ea17b6842b87424629fa1869478ed94",
      "parents": [
        "30c0b83490d856c1cd82441c8e2d800a88927237"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 23:33:56 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 18 13:59:27 2009 -0700"
      },
      "message": "Fix issue #2047139: Remove Service.setForeground()\n\nThis API is becoming seriously abused, so now it is deprecated and has\nbecome a no-op.\n\nAs an alternative, there is now a new API that allows you to make a service\nbe in the foreground but requires providing a persistent notification to\ngo along with this state, allowing the user to know about and control it.\n"
    },
    {
      "commit": "4a6679b97e0285c5b65ec5c0d9080ff90d3e9e81",
      "tree": "3356b9b309a39344d320635140a4380d5e1e5318",
      "parents": [
        "084cd8266ecbc70714fd3c7d27488411a00338b7"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Aug 17 13:05:39 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Aug 18 11:06:52 2009 -0700"
      },
      "message": "make syncadapter set whether the account is syncable\n"
    },
    {
      "commit": "5d8cbf8da3f44709bd9e64b10c037cdb543ffb17",
      "tree": "d6eaf79f8949e4f3f5f7777574341e30f7df4cb7",
      "parents": [
        "6919f69281e32d0c3d4b3791b273f71f178cbb7c",
        "d5884a9ba45e58294c09fd2747c87d761b9daee5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Aug 18 10:59:20 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 10:59:20 2009 -0700"
      },
      "message": "am d5884a9b: Merge change 21358 into donut\n\nMerge commit \u0027d5884a9ba45e58294c09fd2747c87d761b9daee5\u0027 into eclair\n\n* commit \u0027d5884a9ba45e58294c09fd2747c87d761b9daee5\u0027:\n  Unhide the broadcast intent that signals completion of the TTS language\n"
    },
    {
      "commit": "d2d6014f715f12f6263f61ba3eeb6f8cba6d0fa6",
      "tree": "6e075767b94546c6f0d6629587dd9a0204cef72e",
      "parents": [
        "1a8c1599de630ae4199b71cb3eca75d7db9c40d6"
      ],
      "author": {
        "name": "krosaen",
        "email": "krosaen@android.com",
        "time": "Mon Aug 17 08:56:48 2009 -0700"
      },
      "committer": {
        "name": "Karl Rosaen",
        "email": "krosaen@android.com",
        "time": "Tue Aug 18 08:56:03 2009 -0700"
      },
      "message": "NEW API for SearchManager and Activity to \u0027triggerSearch\u0027.\n\nThis is pretty much the same thing as startSearch, except it also launches the\nquery.  We enforce that this can only be done for the package of the app that is\nassociated with the search mananger (e.g you can\u0027t trigger a contacts search\nfrom anywhere).\n"
    },
    {
      "commit": "8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd",
      "tree": "302a410dcd7af7bbf61f435cd96dd8b7384def2e",
      "parents": [
        "948ee251276e1ce7f5c5517b24bf88a75e99f160"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 15:15:18 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 21:23:05 2009 -0700"
      },
      "message": "Allow wallpapers to get touch events.\n"
    },
    {
      "commit": "38710f4c0ef96590476f28176adadbd04b0cabc0",
      "tree": "0a09f4bbb78ba4ea7b0074fd8f88391246fe5994",
      "parents": [
        "d9d2576017fadcf47589b54e8ee198f48cc19352"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Aug 17 18:29:52 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Aug 17 18:29:52 2009 -0700"
      },
      "message": "Make ZoomButtonsController public.\n"
    },
    {
      "commit": "20ea6ce0e8a758cc5c33eb2577495bf9f4dce16e",
      "tree": "cd953a03c33a8040bd2be14a4a4ee95a78e234c8",
      "parents": [
        "d87116728447eef3b73dd3b87074a5d12b532261"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Aug 17 15:47:14 2009 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Aug 17 16:06:15 2009 -0700"
      },
      "message": "Change get/set IsSyncable() methods to static.  Add isUserFacing flag to SyncAdapterType. Update api file.\n"
    },
    {
      "commit": "5e787c42f2a6b3afc8ec8320a08d51b2d44b8614",
      "tree": "f9aeb3e37f12d679a8f48a05c8c8be1328c46f35",
      "parents": [
        "76c830b229fc21d5ea0ea28955084cc187e25fc6"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Sun Aug 16 23:13:53 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Aug 17 13:02:42 2009 -0700"
      },
      "message": "- add a \"isSyncable\" flag to a given account/authority pair that\n  indicates whether or not syncs should be attempted for it.\n- add public methods to get and set this parameter\n"
    },
    {
      "commit": "7341d7a104b47996445d069a695e155a07184606",
      "tree": "1be8efee3847179fbb0ed4d556be029ad23f5832",
      "parents": [
        "56e7ba2928bce62283a62ad1c9d9f1ec7b54c24c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 14 11:37:52 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 10:42:59 2009 -0700"
      },
      "message": "More work on wallpapers.\n\n- Do better about figuring out when to stop them and other related window\n  management.\n- Fix problem where we were not redrawing the surface when the orientation\n  changed.  This was the cause of the device hang.\n"
    },
    {
      "commit": "ffd0cb04f97e62d286d185c520580d81a9c328b1",
      "tree": "d864589d0cfa54abc971091b172d1497cb79adcb",
      "parents": [
        "fa2944d93f4c5050fb4a99d90006791c2995b31c"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Sat Aug 15 21:45:26 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Sat Aug 15 22:40:25 2009 -0700"
      },
      "message": "do not merge: cherrypicked 3710f390968e683a0ad3adf0b517dfcade3564ce from master branch\n"
    },
    {
      "commit": "9f5eadd2eed8b95c077a15d9e3e3c66fd151c215",
      "tree": "70be8f3a4d506d6117dd8f7a0d65e3599a4123ca",
      "parents": [
        "c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Aug 14 15:44:31 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Aug 14 15:44:31 2009 -0700"
      },
      "message": "Unhide the broadcast intent that signals completion of the TTS language\nfiles. This is required for bug 2022435.\nCorrect the javadoc where two intents were mislabelled as broadcast,\nbut were activity actions.\n"
    },
    {
      "commit": "317a6280cc109e873646e4652be1582d870eedfd",
      "tree": "3b6d41d465282970f498e172b81ed0ee83e3183e",
      "parents": [
        "81655243a6a373cfde1e689970eeb62af19622d1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 17:29:02 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 18:19:32 2009 -0700"
      },
      "message": "Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.\n\nthis also ripples into the window manager API by making some constant there deprecated as well.\n"
    },
    {
      "commit": "385df699a6d602cab501092821a79cc6ab3a390e",
      "tree": "06e4c6f8f129c9350a8798d9e41f7384c8b5f4f5",
      "parents": [
        "25660ec2c8175559d86d50bc2bfdef29589d0813"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 11:59:57 2009 +0100"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 13:07:48 2009 +0100"
      },
      "message": "remove Gears\n"
    },
    {
      "commit": "766cbfe44be3c5013a6a22bd6cd8ad1055a37256",
      "tree": "6421896684d28f3483fd60de185ed8dc63d4aa44",
      "parents": [
        "2cd0a5c6aab3089b5b7edeeae808405b077d13cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 18:33:39 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 21:40:05 2009 -0700"
      },
      "message": "Add new API to compare certs of two UIDs.\n"
    },
    {
      "commit": "04bfa42078020de663747c9110a14c0529481fe6",
      "tree": "67e29869e77871dd12884ef3a0a2cfc07b377cf3",
      "parents": [
        "add6cc9df24e3af34a425df87f13e34ecabc887e",
        "6550076f6c093f9919c9e0784558365b518b4e0d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 21:11:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 21:32:10 2009 -0700"
      },
      "message": "resolved conflicts for merge of 6550076f to master\n"
    },
    {
      "commit": "fe77ec8e0881963714b2464efad9514d921d089a",
      "tree": "266b761bcaedba13dcb5a07da60eac973bc5aae1",
      "parents": [
        "b3fa1084ba31698fa5c58150a713d7abbadb1cd2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 16:53:56 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 17:57:14 2009 -0700"
      },
      "message": "The DONUT constant also needs to be updated to the official SDK version.\n\nAlso remove all of the resource value padding.\n"
    },
    {
      "commit": "a9f1dd021f8f6ee777bc4d27913bd40c42e753af",
      "tree": "da094eda66b853fbf4106f8ee76b2f681ee84cc5",
      "parents": [
        "c71c35d69f0a829df1c3d027815547932cc25337"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Aug 12 15:00:10 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Aug 12 16:04:10 2009 -0700"
      },
      "message": "Make \u003cfont size\u003e and \u003cfont height\u003e in string resources respect density.\n\nThis unfortunately requires API changes because the existing text markup\nclasses had no access to the screen density.\n\nTextPaint gains a \"density\" field so that TextView can pass the density\nalong.  AbsoluteSizeSpan gains a new flag to indicate that its argument\nis in dip instead of in physical pixels.  LineHeightSpan gains an inner\ninterface whose chooseHeight() method includes a TextPaint argument so\nit can get at the density.  And when StringBlock creates the markup\nobjects, it now uses the density-aware versions.\n\nBug 1976971, Bug 2031746\n"
    },
    {
      "commit": "72c82ab9923025a91bbabb32e56bfea27bfd083b",
      "tree": "2a97f8a85bc5f23c13e3f7a6476533bec88c81a7",
      "parents": [
        "a5f743f1fc7c5037ee7ad4ab611115b6d44af5b8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 21:13:54 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 14:41:29 2009 -0700"
      },
      "message": "Report wallpaper offset to the wallpaper, use this in the image wallpaper.\n\nWallpapers can now be just the size of the screen, and get told when their\nscroll position should change to do the updating on their own.\n"
    },
    {
      "commit": "a5f743f1fc7c5037ee7ad4ab611115b6d44af5b8",
      "tree": "98cc01fff05a40c7713c46e2398f5b7763637114",
      "parents": [
        "e7037b6c9ec41fd93eebc03bdba120a95d47dc6f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 12 09:53:48 2009 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 12 12:48:12 2009 -0700"
      },
      "message": "Add AsyncQueryHandler helper for queryEntities().\n\nRecently we added queryEntities() to the ContentProvider\ninterface to read out Entity objects atomically.  This\nchange adds a helper to AsyncQueryHandler to perform these\nqueries on a background thread, returning the result when\nfinished.\n"
    },
    {
      "commit": "c8a0a75e1c61d1ab24bd46a8243041c107e738ac",
      "tree": "2fb0685253fe71e77f91e0ca7259c83a2b91cae8",
      "parents": [
        "2ce89adde442fac551413362ea442caa088c25e4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 10 23:05:49 2009 -0700"
      },
      "committer": {
        "name": "Cary Clark",
        "email": "cary@android.com",
        "time": "Tue Aug 11 10:03:16 2009 -0400"
      },
      "message": "Implement support for scrolling a wallpaper.\n\nThis currently only works for a wallpaper that is larger than the\nscreen.  Set the scroll position with the new wallpaper API.  Right\nnow only does jump scrolls.\n"
    },
    {
      "commit": "08b75b1ffb856ab97e1577eb7d20c69a18fcacca",
      "tree": "6e21491680637ce47cf0cbf68abefdcabda93b67",
      "parents": [
        "3afaaf7ade7984a243d36a6d0b8b59d51dbbc926"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 01 20:13:45 2009 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 10 20:59:20 2009 -0700"
      },
      "message": "New ContentProviderOperation to assert values during batch.\n\nWhen performing a set of batch operations, some callers need\nto enforce that a query has specific values.  For example,\nwhen persisting edited Contact values, we need to assert\nthat the RawContacts.VERSION matches the version we read out\nthrough queryEntities().\n\nThis change adds a new TYPE_ASSERT that uses withValues()\nand withSelection(), and checks all values when applying the\nbatch operation, bailing if any values don\u0027t match.\n"
    },
    {
      "commit": "759a39e8d2a8b27ef07e102394629dce68aa186b",
      "tree": "acf932f5da454591ce3399df4888b84d4242c2c1",
      "parents": [
        "29b8fca9fde246c1dc5acd8d09f4f78f611772a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 09 17:20:27 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 09 17:20:27 2009 -0700"
      },
      "message": "Live wallpapers become a little more real.\n\nThis adds a new theme for having a wallpaper, and fixes up the window manager\nto do the right thing when transitioning between a windows with and without\nwallpapers (between two windows with wallpapers is not yet addressed).\n\nThe wallpaper API now has callbacks to tell you when to start/stop animating.\n\nAlso fiddle the image wallpaper to be a little more interesting.\n"
    },
    {
      "commit": "4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3",
      "tree": "4bda953a3a1e32695c3c22006dc320b6a0cbcb1b",
      "parents": [
        "542040c51c49874c92d01381de1b1986cb53b4dd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Aug 08 20:40:27 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Aug 08 22:13:46 2009 -0700"
      },
      "message": "Very primitive wallpapers in a surface.\n\nThis is all of the basic pieces:\n\n- The WallpaperService now creates a surface with the window manager for its\n  contents.\n- There is a simple service that displays a bitmap.\n- The wallpaper manager takes care of starting and stopping the service.\n- The window manager knows about wallpaper windows and how to layer them with\n  the windows that want to be shown on top of wallpaper.\n\nLots and lots of issues remain, but at this point you can actually write a\nwallpaper service, select it in the UI, and see it behind an activity.\n"
    },
    {
      "commit": "89325078db6c1369b6c027c4eb3cb6234f11839a",
      "tree": "be410b65c5c39795a4cb062b8602947ceaee5f0e",
      "parents": [
        "5d1e4c4db0e445835e89cf223cebb9fe09304012"
      ],
      "author": {
        "name": "Alex Gruenstein",
        "email": "alexgru@android.com",
        "time": "Fri Aug 07 16:31:12 2009 -0700"
      },
      "committer": {
        "name": "Alex Gruenstein",
        "email": "alexgru@android.com",
        "time": "Fri Aug 07 16:31:12 2009 -0700"
      },
      "message": "unhide postUrl\n"
    },
    {
      "commit": "640992dec96fa88f0bbd42c6a02902640a000b35",
      "tree": "c2e3d4130f2230557b5f5fc7b8776b8bb041a1df",
      "parents": [
        "509ca0792b7cb14ddcea7d2c7e83159d0621e725"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Aug 06 15:52:55 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Aug 06 19:19:45 2009 -0400"
      },
      "message": "gps: Unhide GpsStatus.NmeaListener interface for receiving NMEA sentences\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8cc6a5026aeb5cf9cc36529426fe0cc66714f5fb",
      "tree": "ca9812a99f135eeed8a1e6217cc4b21e006858a3",
      "parents": [
        "53c66b490a7bcae0efd3c8379ba01080d25ef69c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 05 21:29:42 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 05 21:29:42 2009 -0700"
      },
      "message": "First bit of wallpaper work.\n\nThis is mostly refactoring, adding a new WallpaperManager class that takes care\nof the old wallpaper APIs on Context, so we don\u0027t need to pollute Context with\nvarious new wallpaper APIs as they are needed.  Also adds the first little\ndefinition of a wallpaper service, which is not yet used or useful.\n"
    },
    {
      "commit": "0dd7cb4b4ef86eb7d4e837b1948501da66adeebe",
      "tree": "df786b0b8b9b3ca4fda02e4bcb7b44db501a5150",
      "parents": [
        "a2136d6b18a26ff34f2e5cd3f6c9413f0c96a5ba"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 04 05:49:43 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 04 20:53:52 2009 -0700"
      },
      "message": "Finish implementation of multiple pointer support for MotionEvent.\n\nThe major things going on here:\n\n- The MotionEvent API is now extended to included \"pointer ID\" information, for\n  applications to keep track of individual fingers as they move up and down.\n  PointerLocation has been updated to take advantage of this.\n\n- The input system now has logic to generate MotionEvents with the new ID\n  information, synthesizing an identifier as new points are down and trying to\n  keep pointer ids consistent across events by looking at the distance between\n  the last and next set of pointers.\n\n- We now support the new multitouch driver protocol, and will use that instead\n  of the old one if it is available.  We do NOT use any finger id information\n  coming from the driver, but always synthesize pointer ids in user space.\n  (This is simply because we don\u0027t yet have a driver reporting this information\n  from which to base an implementation on.)\n\n- Increase maximum number of fingers to 10.  This code has only been used\n  with a driver that reports up to 2, so no idea how more will actually work.\n\n- Oh and the input system can now detect and report physical DPAD devices.\n"
    },
    {
      "commit": "e832234a85ec560f3a8f1fe602324051d4e6e729",
      "tree": "b9b04ca3f0e5db43fc7d990dd34989a9a20e02b5",
      "parents": [
        "5d10146362306d05e01a025fedc451aaa7078f72"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Aug 03 17:18:58 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Aug 03 17:18:58 2009 -0700"
      },
      "message": "Make ZoomButtonsController public.\n"
    },
    {
      "commit": "2801ac1a77f41224edf1b68965f4bc7d467d1d70",
      "tree": "53999b337aab395d5714fea86fabd36e4fbba95f",
      "parents": [
        "ae7d38ad9294630505b26b2947c174c5138d89f2",
        "f4fbdfa53fe0497d9b1f3b9642df357bb765e84f"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jul 30 16:07:30 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 16:07:30 2009 -0700"
      },
      "message": "am f4fbdfa5: Update current.xml after review comments.\n\nMerge commit \u0027f4fbdfa53fe0497d9b1f3b9642df357bb765e84f\u0027\n\n* commit \u0027f4fbdfa53fe0497d9b1f3b9642df357bb765e84f\u0027:\n  Update current.xml after review comments.\n"
    },
    {
      "commit": "ab752276ee9838fe05b3fedb18075120c72cfb54",
      "tree": "220ff5d0170a13f72196b4bd20c81c2843a5ace9",
      "parents": [
        "a31ce104f557212198cd7c95e05c7b67abcdbe8a",
        "0da3bdb476086db02a1076780676b21e239c79d6"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jul 30 16:07:11 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 16:07:11 2009 -0700"
      },
      "message": "am 0da3bdb4: Fix public API caused due to CDMA changes.\n\nMerge commit \u00270da3bdb476086db02a1076780676b21e239c79d6\u0027\n\n* commit \u00270da3bdb476086db02a1076780676b21e239c79d6\u0027:\n  Fix public API caused due to CDMA changes.\n"
    },
    {
      "commit": "f4fbdfa53fe0497d9b1f3b9642df357bb765e84f",
      "tree": "4aa0a048e1167c061c66617fae637d1ba0c34c2a",
      "parents": [
        "0da3bdb476086db02a1076780676b21e239c79d6"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jul 30 14:09:59 2009 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jul 30 14:09:59 2009 -0700"
      },
      "message": "Update current.xml after review comments.\n"
    },
    {
      "commit": "0da3bdb476086db02a1076780676b21e239c79d6",
      "tree": "f658147f459c12abbf3976c7e02a187677df5b89",
      "parents": [
        "6af2552d244ff933dfd54570121db455cc7c3cda"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Jul 28 11:17:24 2009 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jul 30 12:37:43 2009 -0700"
      },
      "message": "Fix public API caused due to CDMA changes.\n"
    },
    {
      "commit": "cdc50d779bce9606b2563248af1e39cfba6b735c",
      "tree": "af629100e200117b083c76035196c99b088bacb2",
      "parents": [
        "0c05edf0c5d20fff5ab4ceb19c21a7d72088c2e2",
        "c6eb5ac988518f41938c4f021003d6c202d84819"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 09:57:32 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 09:57:32 2009 -0700"
      },
      "message": "am c6eb5ac9: Merge change 9071 into donut\n\nMerge commit \u0027c6eb5ac988518f41938c4f021003d6c202d84819\u0027\n\n* commit \u0027c6eb5ac988518f41938c4f021003d6c202d84819\u0027:\n  Fix issue #2018454: NullPointerException in ImageSpan constructor\n"
    },
    {
      "commit": "0cbdb39991d65909e00700db0c8e9e9447365882",
      "tree": "5e41acef5131e526a000e3608ef9814dff123cad",
      "parents": [
        "ba272be7253ce2002d85bb03c32848413f7bcf8d",
        "41c104339951e0e5e78240e1f48455c21b3ba5fd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jul 30 09:56:45 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 09:56:45 2009 -0700"
      },
      "message": "am 41c10433: Fix MulticastLock API to match WifiLock API.\n\nMerge commit \u002741c104339951e0e5e78240e1f48455c21b3ba5fd\u0027\n\n* commit \u002741c104339951e0e5e78240e1f48455c21b3ba5fd\u0027:\n  Fix MulticastLock API to match WifiLock API.\n"
    },
    {
      "commit": "cdc0d941e8d34e63ef2f4b2eda6e040a7d902792",
      "tree": "1a65a7000810c7e096452c5b9e2cafdacd5be65f",
      "parents": [
        "98ad09880b148d69f4202ad40872d1cdfc1e491e",
        "2bad713f31d642d5350949b90b3abe00fbd9ca55"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 06:56:37 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 06:56:37 2009 -0700"
      },
      "message": "am 2bad713f: Merge change 8860 into donut\n\nMerge commit \u00272bad713f31d642d5350949b90b3abe00fbd9ca55\u0027\n\n* commit \u00272bad713f31d642d5350949b90b3abe00fbd9ca55\u0027:\n  Fix bug 2017664\n"
    },
    {
      "commit": "0cd6376fa14089cee42991f751962ffd7f455797",
      "tree": "2080505bbfe6a6646ce2ddc18ca74d063e7b54fe",
      "parents": [
        "65e5438df929ceb8c44fd930b2a363e021914bd0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 17:36:27 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 17:55:58 2009 -0700"
      },
      "message": "Fix issue #2018454: NullPointerException in ImageSpan constructor\n"
    },
    {
      "commit": "41c104339951e0e5e78240e1f48455c21b3ba5fd",
      "tree": "26cc0680f87ba2602fade2b333ccae536d8bf014",
      "parents": [
        "0067057c31720f64926d6ee3d841b15dc197d2df"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jul 29 16:18:38 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jul 29 16:30:23 2009 -0700"
      },
      "message": "Fix MulticastLock API to match WifiLock API.\n\nAdds option to make lock refcounted or not.  Fixes 2017680.\n"
    },
    {
      "commit": "ff1907f60a777262c46496e2a2dc2c35f8061cdd",
      "tree": "68f113475ce8a2d0edbaf62844165ce8ba6f0e28",
      "parents": [
        "8b6a3807f1028df0fea2e6cb57fd2f9c72350cdb"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Jul 29 12:02:15 2009 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Jul 29 12:06:13 2009 -0700"
      },
      "message": "Updating API XML for the java.util.concurrent update.\n"
    },
    {
      "commit": "ed06578eddde07abe325fa4c92910bb7246cd49f",
      "tree": "fbef6293b4f1e924602b54e02c37415960604c84",
      "parents": [
        "0869f7ef1efa9fe2e26b20e525952ad611d379aa"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 28 14:31:48 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 29 11:26:10 2009 -0700"
      },
      "message": "Fix bug 2017664\nRemoved the TTS_ prefix in the TextToSpeech class to follow the standard naming convention.\nMoved the TTS-related intents from the Intent class to TextToSpeech and TextToSpeech.Engine.\nRenamed the TextToSpeech.Engine constants that are used as extras for the\n  ACTION_TTS_CHECK_TTS_DATA intent to prefix them with EXTRA_.\nCleaned up the other TextToSpeech.Engine constant to remove superfluous mentions of\n  \"TTS\" in the name.\n"
    },
    {
      "commit": "de5dc2bba926aaf1392684d20b28ff373bdb6537",
      "tree": "cdc1acb96a909d62301a25b6eff5c6eaf6aa0db6",
      "parents": [
        "4ed9d78754fb64e825bdf935fede93a9f8c8d5f2"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Jul 29 10:33:13 2009 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Jul 29 10:49:10 2009 -0700"
      },
      "message": "New current.xml to correspond to the util.concurrent updates.\n"
    },
    {
      "commit": "a5d7b1b7f7b75d5adf9802f341b22509195c77d5",
      "tree": "ecb6dec2ce2fd5952414602202c1b48b7f901a58",
      "parents": [
        "2ec556ddc840ae71cd1e618e593a6ce8555f5590",
        "159e1a9a13ccfa4d99941e21068994366e2bbc7b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 29 09:46:38 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 29 09:46:38 2009 -0700"
      },
      "message": "am 159e1a9a: Merge change 8883 into donut\n\nMerge commit \u0027159e1a9a13ccfa4d99941e21068994366e2bbc7b\u0027\n\n* commit \u0027159e1a9a13ccfa4d99941e21068994366e2bbc7b\u0027:\n  fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN\n"
    },
    {
      "commit": "59e2ad93bf37c7ded44c033d38fe7c972e2f4118",
      "tree": "c6c9f7416111e9bceab53e83c52917c42561d27a",
      "parents": [
        "c6c18133b3969a17c79d21728578f510c8b1560e"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Tue Jul 28 13:38:06 2009 +0100"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Wed Jul 29 11:07:44 2009 +0100"
      },
      "message": "Wire in the AppCache out-of-space callback\n"
    },
    {
      "commit": "c87c4a3e3b3c3949ae3c6f8fd245b71691d5ca3b",
      "tree": "069b03c066cab8854e0e56c728b44157a3717567",
      "parents": [
        "de36313b0b80c019c2784edd9d41f6761fe80685"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 15:59:52 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 15:59:52 2009 -0700"
      },
      "message": "fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN\n"
    },
    {
      "commit": "02f5228c3c224dc8804cbedd40899fa0c42bfd4a",
      "tree": "21267ea74f5159b7aa52751c6e8a3de368c08c39",
      "parents": [
        "b2fe1fd4ae31df7a0366c59c4a1393fb281c4fde",
        "f0d83fd907e0d2a0b2fe563cea9ffa830ecfd33f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 15:23:21 2009 -0700"
      },
      "message": "resolved conflicts for merge of f0d83fd9 to master\n"
    },
    {
      "commit": "7f2054392e9957d3ba8579ef08c29cfb27df564e",
      "tree": "5e07f36bea3038fa5c13e4b81fa6421be79652ac",
      "parents": [
        "ecbbecf6c535e7f3e1d072d43766a95aa18ee464"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 00:13:47 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 00:13:47 2009 -0700"
      },
      "message": "Updates from API review.\n\n    * AccessibilityService -- document onBind() to not be implemented.\n    * GestureLibrary.getLearner() -- needs to be hidden.\n    * IntentSender -- remove protected constructors, document that it is retrieved from a PendingIntent.\n    * Hide permissions: SHUTDOWN, STOP_APP_SWITCHES.\n    * Context -- hide BACKUP_SERVICE.\n    * ContextWrapper -- hide getSharedPrefs bla h blah\n    * Intent.parseUri() -- fix docs.\n    * ApplicationInfo.FLAG_TEST_ONLY?!?\n    * Hide MockContext.getSharedPrefs blah blah\n"
    },
    {
      "commit": "3843b2669bcfa995e60a46a1034404c1116b8ab9",
      "tree": "7946cac6c887a6cda273117a6a8dc6d0f0078bee",
      "parents": [
        "fbfa9d14810d9d8c6e3284378203e120c9f1b4a1"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Jul 27 18:52:10 2009 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Jul 27 19:15:50 2009 -0700"
      },
      "message": "Updating current.xml to include the proper synchronized modifiers.\n\nWhen I updated this file earlier, some other modifiers got lost in\nthe merge.\n"
    },
    {
      "commit": "fbfa9d14810d9d8c6e3284378203e120c9f1b4a1",
      "tree": "cf223de79d17c04124c67194154b4e96cd915d14",
      "parents": [
        "bb9001c69a313b28d805fe1cfbb7e848eb6aa55f"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Jun 26 16:01:06 2009 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Jul 27 18:11:50 2009 -0700"
      },
      "message": "Update Dalvik luni module to Harmony 772995. Prior to submission\nthe set of preloaded classes should be regenerated...\n"
    },
    {
      "commit": "3026a023b8979b7ddcb3fe97bbc45531c89fda92",
      "tree": "02433741f7668e4255134bb9d5a9fcf1dbace0ae",
      "parents": [
        "2c3fc83ac5b267d6a551deb36b30064a2e617944"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 27 07:12:26 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 27 12:21:29 2009 -0700"
      },
      "message": "Fix issue 2001517: AudioTrack compatibility issue.\n\nModified enum values in AudioFormat.java and AudioSystem.h.\nAdded code for backward compatibility in AudioTrack.java and AudioRecord.java.\n"
    },
    {
      "commit": "143a2ce1ea33aeba81cff26f66144065d379dc64",
      "tree": "9ab90c2cd4eee95af89100d22a66cfbc5a1327c2",
      "parents": [
        "461628716e3b6ea217839ef584375e81436b77fc",
        "ba989ad0ed91beda010d44945fa015d75d99cf67"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 27 10:50:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 27 10:50:53 2009 -0700"
      },
      "message": "am ba989ad0: Merge change 8648 into donut\n\nMerge commit \u0027ba989ad0ed91beda010d44945fa015d75d99cf67\u0027\n\n* commit \u0027ba989ad0ed91beda010d44945fa015d75d99cf67\u0027:\n  Use the old string for bookmarks permissions.\n"
    },
    {
      "commit": "e7d1c8f3777375468de2e5932a691ef388ee2e75",
      "tree": "fd778f845a29b3ad47420b22929c768a12670462",
      "parents": [
        "9377738cdbb7eb0a1267cb536443cbed700ff5e9"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Jul 27 11:10:28 2009 -0400"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Jul 27 11:14:04 2009 -0400"
      },
      "message": "Use the old string for bookmarks permissions.\n\nWhen we made the bookmark permissions public, we also changed their\nnames, which might break existing apps.  Change them back.  Depends\non a change in packages/apps/Browser\n"
    },
    {
      "commit": "ddca3ee3e86fbaa05c1528bd72afd955f0fb4ee6",
      "tree": "8ebc21b041c8abb73e648ff9edc31a665901ae15",
      "parents": [
        "8e4ac7140a038ca135c5981700efc75a0ad59765"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 23 19:01:31 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 24 17:30:15 2009 -0700"
      },
      "message": "Add support for power keys, improve behavior of virtual keys.\n\nThe platform now knows how to deal with a platform key, which at this\npoint is \"just like end call, but don\u0027t end a call.\"\n\nAlso improve the handling of virtual keys, to allow for canceling when\nsliding off into the display and providing haptic feedback.\n\nFinally fixes a bug where the raw x and y in motion event were not\nalways set which caused the status bar to not work.\n"
    },
    {
      "commit": "e2dba02441b42afbae725109ac779877a4b72aa0",
      "tree": "d9a81dc7e16f48b164c1507d135c2436a73b3954",
      "parents": [
        "2470a7b4a82f9d1afc3c6b278aa313334f6412ab",
        "11ea33471e1a14a8594f0b2cd012d86340dd3bd8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 24 16:08:56 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 24 16:08:56 2009 -0700"
      },
      "message": "am 11ea3347: Allow for screen density drawables in compatibility mode.\n\nMerge commit \u002711ea33471e1a14a8594f0b2cd012d86340dd3bd8\u0027\n\n* commit \u002711ea33471e1a14a8594f0b2cd012d86340dd3bd8\u0027:\n  Allow for screen density drawables in compatibility mode.\n"
    },
    {
      "commit": "11ea33471e1a14a8594f0b2cd012d86340dd3bd8",
      "tree": "bb73c079d8bb21c19fa913b8fd9c587a9089ea84",
      "parents": [
        "3b99e64e5899030b5d6f8201cb56cd149c80b24d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 22 21:48:55 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 24 10:47:15 2009 -0700"
      },
      "message": "Allow for screen density drawables in compatibility mode.\n\nThis change allows us to use drawables that match the current screen\ndensity even when being loaded in compatibility mode.  In this case,\nthe bitmap is loaded in the screen density, and the bitmap and\nnine-patch drawables take care of accounting for the density difference.\n\nThis should be safe for existing applications, for the most part, since\nthey shouldn\u0027t really be pulling the bitmap out of the drawable.  For\nthe small rare chance of them breaking, it worth getting the correct\ngraphics.  Also this will only happen when there is actually a resource\nof the matching density, and no existing apps should have resources for\nanything besides the default density (though of course all of the\nframework resources will be available in the native density).\n\nAs part of this, the bitmap density API has been changed to a single\ninteger provider the DPI unit density.\n"
    },
    {
      "commit": "d4a1d2e14297a3387fdb5761090961e714370492",
      "tree": "429926e69913d0e7d0082455d50142b47172c075",
      "parents": [
        "c8f361450403e0b08a9d7dc4785bb12624435c37"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Jul 16 16:36:38 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Jul 23 16:03:54 2009 -0700"
      },
      "message": "add account manager permission checking\n"
    },
    {
      "commit": "a553c25b33c99b345cf1c8688f8df0ed8df14e5a",
      "tree": "025c461b13e66ad0ceac8d0f8d9b13fd88ae168a",
      "parents": [
        "ebd7bc54028949619bbf3fa5ed6c1188f588c230"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 17 12:17:14 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 06:03:39 2009 -0700"
      },
      "message": "Fix issue 1795088       Improve audio routing code\n\nInitial commit for review.\nIntegrated comments after patch set 1 review.\nFixed lockup in AudioFlinger::ThreadBase::exit()\nFixed lockup when playing tone with AudioPlocyService startTone()\n"
    },
    {
      "commit": "f021077c465b2ff3f317fd64720107941cc94e9e",
      "tree": "c71a030a4b672a97c531847f056b6ab85396cb11",
      "parents": [
        "e39900ca7aa73a7a484cc0cff79188940df64cdb",
        "280436accc45c1883766a98499148439fa044531"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 17:34:28 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 17:34:28 2009 -0700"
      },
      "message": "am 280436ac: Merge change 8261 into donut\n\nMerge commit \u0027280436accc45c1883766a98499148439fa044531\u0027\n\n* commit \u0027280436accc45c1883766a98499148439fa044531\u0027:\n  Remove recently-added android.opengl.Version API\n"
    },
    {
      "commit": "7e263332e0c68f67868cb3245bf42f41e847d816",
      "tree": "52b0cff91b2cad4684c1367f8ca874bc1be7df68",
      "parents": [
        "ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 15:22:59 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 15:22:59 2009 -0700"
      },
      "message": "Remove recently-added android.opengl.Version API\n\nThere\u0027s another already-existing way of obtaining this information,\nthe ConfigurationInfo.reqGlEsVersion field returned from\nActivityManager.getDeviceConfigurationInfo.\n"
    },
    {
      "commit": "68ce000ed88c8df53c0ddb9a556a8cc8e5dcedb2",
      "tree": "5ebae51a2bf246e90598a672c0275762c9e53cee",
      "parents": [
        "c58c78de2fc410bdd081b5824228b32596db4ee3",
        "ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 13:06:03 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 13:06:03 2009 -0700"
      },
      "message": "am ef6b66cb: Merge change 8222 into donut\n\nMerge commit \u0027ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1\u0027\n\n* commit \u0027ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1\u0027:\n  Add a public API that reports the supported OpenGLES API level.\n"
    },
    {
      "commit": "1baf11b116d4094ea1f7149bbf1348d6290a637e",
      "tree": "06b3f68a8945c71efb5774b15ae309ac75c0447a",
      "parents": [
        "11b822d2a91ea17c34c0cb1c11e80a9a30d72864"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 12:59:49 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 12:59:49 2009 -0700"
      },
      "message": "Add a public API that reports the supported OpenGLES API level.\n"
    },
    {
      "commit": "c00c04d7d8758a5ade185d465624e47dcf1bd7c0",
      "tree": "9c7a9c99ecf9f6f29966efc65555066a65ee2dd5",
      "parents": [
        "8aea2f5f749e48ef0fe3532ab2fc258922c3239b",
        "11b822d2a91ea17c34c0cb1c11e80a9a30d72864"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 22 12:01:19 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 12:01:19 2009 -0700"
      },
      "message": "am 11b822d2: Simplify density compatibility to a boolean.\n\nMerge commit \u002711b822d2a91ea17c34c0cb1c11e80a9a30d72864\u0027\n\n* commit \u002711b822d2a91ea17c34c0cb1c11e80a9a30d72864\u0027:\n  Simplify density compatibility to a boolean.\n"
    },
    {
      "commit": "11b822d2a91ea17c34c0cb1c11e80a9a30d72864",
      "tree": "7eec5218c6831641b406f1b969841314f452adbb",
      "parents": [
        "59c25cbaf0dd690e503b881392510127441d9074"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 20:03:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 22 11:58:31 2009 -0700"
      },
      "message": "Simplify density compatibility to a boolean.\n\nInstead of a list, we now just have a single boolean indicating whether an\napplication is density aware, and this set set to true by default as of\nDonut.\n"
    },
    {
      "commit": "a8339dfec9d1b2c6d6fd2f8268f8075d184f64c0",
      "tree": "40345158a2aa1084b21de121e5eb8b0d8f8f36a3",
      "parents": [
        "9822d2b27330793ea4ba9c3316ef35f402f35fb4",
        "9fc20b0e381b5fe00b7049ef357c839cd05a33bf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "message": "am 9fc20b0e: Merge change 8126 into donut\n\nMerge commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027\n\n* commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027:\n  First pass at reworking screen density/size APIs.\n"
    },
    {
      "commit": "9822d2b27330793ea4ba9c3316ef35f402f35fb4",
      "tree": "bede1721f385d2fc9ee547e815dac8c42c5d60eb",
      "parents": [
        "c098048892dd4417618999c9a91fa4724109e281"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 20 17:33:15 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 19:02:12 2009 -0700"
      },
      "message": "First stab at poly-finger support.\n\nThe MotionEvent API should be fairly solid, but there is still a lot of\nwork to do in the input device code.  In particular, right now we are\nreally stupid about watching how fingers change -- we just take whatever\nthe driver reports as down and dump that directly into the motion event.\n\nThe big remaning work is to assign pointer IDs so that applications have\nhelp in determine which fingers go up and down, and adding support for\nthe official multi-touch driver protocol.\n"
    },
    {
      "commit": "c4db95c077f826585d20be2f3db4043c53d30cf5",
      "tree": "9176baa673f97b27150f862485fd492cb3ec7e88",
      "parents": [
        "fe6f45c81463d2d28e11ac6083f2653e1286c5ef"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 17:46:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 18:28:42 2009 -0700"
      },
      "message": "First pass at reworking screen density/size APIs.\n\nThis changes the names of the directories in aapt, to what you see\nin the list of DpiTest resources.  Also adds a new \"long\" configuration\nfor wide screens, which the platform sets appropriate, and introduces\na new kind of resizeability for not large but significantly larger\nthan normal screens which may have compatibility issues.\n"
    },
    {
      "commit": "6f3512b1606521581724f9688dd57bcb368c62e0",
      "tree": "e5bfcea56c76ab418f8f01d6403aa69cadf7b717",
      "parents": [
        "a695d185f11b2b03ecf0e0f796621fb00bfe7855",
        "2a1aa6acbba5a3a9142d3e8bd6fe6e19d5fae6be"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 23:33:50 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 20 23:33:50 2009 -0700"
      },
      "message": "am 2a1aa6ac: Merge change 7970 into donut\n\nMerge commit \u00272a1aa6acbba5a3a9142d3e8bd6fe6e19d5fae6be\u0027\n\n* commit \u00272a1aa6acbba5a3a9142d3e8bd6fe6e19d5fae6be\u0027:\n  Define a broadcast intent for the web search provider changing. Unhide\n"
    },
    {
      "commit": "4a38246b7a9d8900fcb80bd7848f489539147320",
      "tree": "f964d6251e5041cef485668127a13fb727126a2b",
      "parents": [
        "fce2972c7799784b572560a410cd7d0f9cc0d8c0",
        "890231f1d5912f5b71371e73f44df2db2e741b1b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 23:33:31 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 20 23:33:31 2009 -0700"
      },
      "message": "am 890231f1: Merge change 7934 into donut\n\nMerge commit \u0027890231f1d5912f5b71371e73f44df2db2e741b1b\u0027\n\n* commit \u0027890231f1d5912f5b71371e73f44df2db2e741b1b\u0027:\n  Unhide new SearchManager APIs for Donut.\n"
    },
    {
      "commit": "d4fb7a0d90b16e360b7a7b64cb7a6fd94f084c27",
      "tree": "2f45b2bb57d9a6271c79b10a6e67d8ff761f65ef",
      "parents": [
        "131234c6f134c586208ec94bfe4ae021b057cf66"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Mon Jul 20 17:37:38 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Mon Jul 20 17:37:38 2009 -0700"
      },
      "message": "Define a broadcast intent for the web search provider changing. Unhide\nthe broadcast intent for searchables changing.\n"
    },
    {
      "commit": "131234c6f134c586208ec94bfe4ae021b057cf66",
      "tree": "b8d85634ac49e22de67be20fdfc34379deba1a22",
      "parents": [
        "732140cefadaf32eed83706c69eabbfee9e054ee"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Mon Jul 20 14:09:52 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Mon Jul 20 17:14:16 2009 -0700"
      },
      "message": "Unhide new SearchManager APIs for Donut.\n"
    },
    {
      "commit": "bec99bffeecacb1af603966391014895f9a16025",
      "tree": "698db3ee01626f7e4f8db3ba3dce56f44aa45d74",
      "parents": [
        "79b7c68d5a1979a67d1d5ec6b9229aaab79cad3e",
        "5c536e9162721c460699a041959a0d67de1d20db"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 19 21:14:48 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 19 21:14:48 2009 -0700"
      },
      "message": "am 5c536e91: Merge change 7840 into donut\n\nMerge commit \u00275c536e9162721c460699a041959a0d67de1d20db\u0027\n\n* commit \u00275c536e9162721c460699a041959a0d67de1d20db\u0027:\n  Fix issue where scaled bitmap sizes could be wrong.\n"
    },
    {
      "commit": "469b4c67adc77a87eb2c9ed9217edf1778002828",
      "tree": "f6ca01c85c85a27ecd6f54ae1193f30e1cc67501",
      "parents": [
        "b933dc7f47ec9a9609d0775fc469849f066bfcd7",
        "aad0fcc9619eb72c18a6afff48ebc9d4011f0f54"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 19 20:28:49 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 19 20:28:49 2009 -0700"
      },
      "message": "am aad0fcc9: Merge change 7783 into donut\n\nMerge commit \u0027aad0fcc9619eb72c18a6afff48ebc9d4011f0f54\u0027\n\n* commit \u0027aad0fcc9619eb72c18a6afff48ebc9d4011f0f54\u0027:\n  Add \"nodpi\" density, and expose a bunch of density-related APIs.\n"
    },
    {
      "commit": "2784ff0af88128f66ae690b73d48fb7e4a211e68",
      "tree": "2e43aaa6e2a67a0924449af42d969b91de2f995d",
      "parents": [
        "a53b828635fce8b6b2d3e3377d74d72070056623"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 18 17:13:29 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 18 17:13:29 2009 -0700"
      },
      "message": "Fix issue where scaled bitmap sizes could be wrong.\n\nThe Bitmap functions to get the scaled width/height couldn\u0027t actually\ndo the right thing because they didn\u0027t know the destination they would\nbe drawing to.  Now there are two forms of them, taking an explicit\nparameter specifying the destination.\n"
    }
  ],
  "next": "e8b26e197f7c5e4acbdf8a5cd3f014fbc242c8ab"
}
