)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "e8b26e197f7c5e4acbdf8a5cd3f014fbc242c8ab",
      "tree": "a8568dfa985bab0097586e5905c162b3a5cb3871",
      "parents": [
        "c634fdd8035cc06c34663b77ab199d29697273b4"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Jul 14 10:35:40 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Fri Jul 17 17:24:07 2009 -0700"
      },
      "message": "Add zoom and postview callbacks to Camera. This patch\nadds a zoom callback to the Java layer. If the hardware supports\na smooth zoom function, this provides a way to update the UI as\nthe zoom is moving from its original setting to the new commanded\nsetting. This postview callback supports receive a processed\nimage before the JPEG encode completes. This allows the display\nto be rotated without losing the final preview frame.\n"
    },
    {
      "commit": "a53b828635fce8b6b2d3e3377d74d72070056623",
      "tree": "42f4ba9bbf7d8656a4761d6fe5dcd4976cf19369",
      "parents": [
        "09a903ab5b8d940605783ae4ee591c0f090a31d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 11:13:48 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 16:59:08 2009 -0700"
      },
      "message": "Add \"nodpi\" density, and expose a bunch of density-related APIs.\n\nAlso update the DpiTest app to use nodpi images, and try to have a mode\nwhere it turns off compatibility though it\u0027s not quite working.\n"
    },
    {
      "commit": "bd3e0ce5a288d75e5e420f52da31c34be59063f4",
      "tree": "7862443d9cdab9d2ce27883b1cd35c11e7255d26",
      "parents": [
        "d8bb43bb773da4df1e43be55609c7bcf9c5f209f",
        "3e522c45b2fad6ae0256e00ae54ac1e68e29e508"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Jul 17 09:44:53 2009 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Jul 17 09:44:53 2009 -0700"
      },
      "message": "resolved conflicts for merge of 3e522c45 to master\n"
    },
    {
      "commit": "49a60157d1c4b49450410fc30b8fcd8ab0e3480b",
      "tree": "75cda4e2eb6e8ad9914a62f17c0f57d336f9390e",
      "parents": [
        "82b283a9bf8e3508e1b5c6d4b6b8cae04597b83c"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Jul 15 19:12:07 2009 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Jul 16 18:32:07 2009 -0700"
      },
      "message": "Adding public intents for TTS to enable checking for TTS data,\ninstalling TTS data, and finding out when the TTS queue has\nfinished processing.\n"
    },
    {
      "commit": "dfceeb8c0a887c7e4dcd9e7ae92c208cb4608667",
      "tree": "96947189694a8aa22a5e2b5c912e3923dba6488c",
      "parents": [
        "545f979bdb77b3763ed63b6b2408deb8e710c941",
        "6ce4236d70c8543021bb521731ac9f05d22b3002"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 18:14:38 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 15 18:14:38 2009 -0700"
      },
      "message": "am 6ce4236d: Merge change 7401 into donut\n\nMerge commit \u00276ce4236d70c8543021bb521731ac9f05d22b3002\u0027\n\n* commit \u00276ce4236d70c8543021bb521731ac9f05d22b3002\u0027:\n  Adding missing addEarcon method. Not having this was a bug as\n"
    },
    {
      "commit": "0a305da8ee937584b769d2cfac82fccf5786beb8",
      "tree": "e84ac743f74d62f9d1cc1e02319405122da60320",
      "parents": [
        "657dcd666c3841715072bc09bc805d7e87f027f5",
        "211aef308bc6ca55d99777d19227f412492db9c2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 13:13:26 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 15 13:13:26 2009 -0700"
      },
      "message": "am 211aef30: Merge change 7134 into donut\n\nMerge commit \u0027211aef308bc6ca55d99777d19227f412492db9c2\u0027\n\n* commit \u0027211aef308bc6ca55d99777d19227f412492db9c2\u0027:\n  Unhide required definitions in TextToSpeech.Engine that cover return codes and\n"
    },
    {
      "commit": "904dfa588431ff7c99c337d7797f5bef9ac12ce3",
      "tree": "848fdf1f4709aa8790cc7310bdcf9f0570276c47",
      "parents": [
        "83fa3565896ed19846f6498c00de3cc9a29b1a57"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Jul 15 10:44:41 2009 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Jul 15 10:46:33 2009 -0700"
      },
      "message": "Adding missing addEarcon method. Not having this was a bug as\nthis method is needed to add earcons; otherwise, there is\nnothing for playEarcon to play.\n"
    },
    {
      "commit": "62253a319d6359ce71c547d0b0aa36ba17789ab4",
      "tree": "b1864547fc15a12b9c49da199b38081890846d38",
      "parents": [
        "f77035193152a0edba5abeb33d9c1a5f446c7dd8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 14 13:55:19 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 14 17:37:07 2009 -0700"
      },
      "message": "Unhide required definitions in TextToSpeech.Engine that cover return codes and\nextras for android.intent.action.CHECK_TTS_DATA intent, and the key values\nfor the parameter hashmap that can be passed by an application in speak(),\nsynthesizeToFile(), playSilence() and playEarcon().\n"
    },
    {
      "commit": "24b03ace12dab2c786d5ba33b92be3f5b162982b",
      "tree": "7bf0c5582085e4de77a3f9849c566d8c18ca98e4",
      "parents": [
        "7d48ed897c0acc7cd7ac70ec570df89d492ca071",
        "00d3e361148133cea354d358757628b0acc01b75"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 16:03:23 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 14 16:03:23 2009 -0700"
      },
      "message": "am 00d3e361: Merge change 7153 into donut\n\nMerge commit \u002700d3e361148133cea354d358757628b0acc01b75\u0027\n\n* commit \u002700d3e361148133cea354d358757628b0acc01b75\u0027:\n  Restore PopupWindow\u0027s original behavior and add an API to control the soft input\n"
    },
    {
      "commit": "374aaaed32daa8482d98ec16988b2b51547f035d",
      "tree": "d558c71fd5caffea5d8828154b8b91810495766b",
      "parents": [
        "4caac2bb4c8616edf8224408931ffc0e532537de"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Jul 14 15:11:59 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Jul 14 15:38:23 2009 -0700"
      },
      "message": "Restore PopupWindow\u0027s original behavior and add an API to control the soft input\nmode.\n"
    },
    {
      "commit": "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a",
      "tree": "e7bcf93c2ac804030b8f69192aa06818adc4a47b",
      "parents": [
        "dace230043314d6fab1c5ced4b031eaccd814c25",
        "b82759a051f55852dabe201ad3354ea9b7b2979d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 12:54:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 14 12:54:41 2009 -0700"
      },
      "message": "am b82759a0: Merge change 6906 into donut\n\nMerge commit \u0027b82759a051f55852dabe201ad3354ea9b7b2979d\u0027\n\n* commit \u0027b82759a051f55852dabe201ad3354ea9b7b2979d\u0027:\n  location: Add sub-locality, sub-thoroughfare and premises fields to Address class\n"
    },
    {
      "commit": "ae4f31706fa0589ede00dfce344779a1570cd2f3",
      "tree": "b8c32cbe794191dae30d46ea03b84daa79ab3057",
      "parents": [
        "8f779f3b70aa4d3cee0dfde57ed91886e5c5f1e5"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Jul 13 17:53:35 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Jul 14 11:57:09 2009 -0700"
      },
      "message": "- add the DIRTY and VERSION columns to the ContactsProvider2 Groups contract\n- make android.accounts.AccountAuthenticator into a public constant\n"
    },
    {
      "commit": "8cd1084ed1138b9c8b7ff5370ab404c8bb559dd2",
      "tree": "c6a7043ece0ffbbd1d206a5251522669929f27c0",
      "parents": [
        "c1d82e68eb4aae1b575e82b08e71a87670cc1532"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 13 07:41:56 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 14 14:41:22 2009 -0400"
      },
      "message": "location: Add sub-locality, sub-thoroughfare and premises fields to Address class\n\nThis is required for fully describing locations in Japan.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a9ce57b55a43975349b86cdba13178375ccd3606",
      "tree": "82c210f5b60ff6114f2b8fe8277e92f4a5f449e1",
      "parents": [
        "70da2b5be0ca5c6fbddde49e5312b9291fbec21f",
        "8af55ca4dd7eeb098b5c2e69bc7a9171c893269a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 10:21:16 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 14 10:21:16 2009 -0700"
      },
      "message": "am 8af55ca4: Merge change 7008 into donut\n\nMerge commit \u00278af55ca4dd7eeb098b5c2e69bc7a9171c893269a\u0027\n\n* commit \u00278af55ca4dd7eeb098b5c2e69bc7a9171c893269a\u0027:\n  Adding Utterance ID to the TtsService.\n"
    },
    {
      "commit": "78c9d0d2c5eb4d5687ae7cbe41155159329ad68f",
      "tree": "02dd86c23eda28b6dc1da1598ac79fc1c8b586e3",
      "parents": [
        "334b861e3339bc7189372f790d0c0e2043d160a3"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Jul 13 16:22:41 2009 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Jul 13 17:46:19 2009 -0700"
      },
      "message": "Adding Utterance ID to the TtsService.\n"
    }
  ],
  "next": "0f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49"
}
