)]}'
{
  "log": [
    {
      "commit": "6993d3d136fed8600a3e337d710907b50d8d6e49",
      "tree": "cf33f50672753a610822f39c3c1f5a4491843485",
      "parents": [
        "dc243482d6e104c4a3cddaa694c2ee3c628c2c20"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Fri Sep 03 14:30:14 2010 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Fri Sep 03 14:41:36 2010 -0700"
      },
      "message": "Adding a feature denoting support for 5 or more fully\nindependent multitouch pointers.\n\nChange-Id: I9997ed9c481dbd507e9eff70d8beb9e1140cca3f\n"
    },
    {
      "commit": "482566ed5cc7307b0401361509fb06acc5476115",
      "tree": "3a41c2b2301bf17dc1575d32641a8cbfaa9e7af9",
      "parents": [
        "46e63b346770efa14451b8e67b7f7636c4e5a76c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 03 12:51:28 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 03 12:51:28 2010 -0700"
      },
      "message": "These are not ready to be exposed.  Also rename them to be better.\n\nChange-Id: I7c234144497084b7769f8c46761b7d74d1c583d5\n"
    },
    {
      "commit": "a1c69e084b5242ad4e4a1ef2fe8d99ba259b5af4",
      "tree": "a7717db542b45f4ad8fa9dc7f22c0a663d047c6b",
      "parents": [
        "d3efa3924407da6d38aa5931ac29aa088d9eb986"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 22:55:02 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 22:55:02 2010 -0700"
      },
      "message": "Fix a small bug when granting permissions through activity results.\n\nChange-Id: I2a5c4025fb5f566e29c219fde4d50ed2eba6e174\n"
    },
    {
      "commit": "d3efa3924407da6d38aa5931ac29aa088d9eb986",
      "tree": "105f4a08e32468c8fa20d981867b6e8fd688cd4e",
      "parents": [
        "bc5ec2f91a7ed2836df66f1ed98b019ea1192aa1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 17:34:12 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 21:19:40 2010 -0700"
      },
      "message": "Clean up some permissions.\n\nNote that WRITE_OWNER_DATA and READ_OWNER_DATA don\u0027t actually appear\nto be associated with anything or used by anyone, so they are just\ndeleted.\n\nAlso deprecate the activity API to go in the foreground.  I didn\u0027t\nrealize that was released in the SDK.  It needs to go away.\n\nChange-Id: I96f53702c2c79e4999b6b2c498abb770bd27e03a\n"
    },
    {
      "commit": "b766ab830a714c0b79f64265e681f454865ffe65",
      "tree": "69f6856ae8156e0b5b403f08b7ac1afff07a07fe",
      "parents": [
        "3424c02e6b931a8bbd651ae75217bebd008b2605"
      ],
      "author": {
        "name": "Jason Chen",
        "email": "jasonchen@google.com",
        "time": "Wed Sep 01 19:02:26 2010 -0700"
      },
      "committer": {
        "name": "Jason Chen",
        "email": "jasonchen@google.com",
        "time": "Wed Sep 01 19:04:18 2010 -0700"
      },
      "message": "DO NOT MERGE Add deprecated annotation to get/set PluginsPath and update current.xml\n\nPrevious changes only added javadoc annotation, but didn\u0027t apply\nannotation to the source. Fixing this and updating current.xml.\n\nChange-Id: I52aabd6485a3972fc360f24c2e86cc342a5101ab\n"
    },
    {
      "commit": "3424c02e6b931a8bbd651ae75217bebd008b2605",
      "tree": "f8113a62a05f612a54da4c277661542edbcb9773",
      "parents": [
        "a2511da9d65b11be7f59ed3f525f77e85aeb4bef"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Aug 27 18:08:19 2010 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 02 08:10:13 2010 +0800"
      },
      "message": "Add software features for SIP and VOIP\n\nand block SipService creation and SIP API if the feature is not available.\n\nChange-Id: Icf780af1ac20dda4d8180cea3e5b20e21a8350bc\n"
    },
    {
      "commit": "76437d379357a418b8236b041d1b3e03939264e6",
      "tree": "6a89548e01f4f40a5b51b96f6a68c0a07cd1f557",
      "parents": [
        "81f339bcfeee5dccb284cdeac6941179f91fe08b"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Wed Sep 01 11:17:20 2010 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Wed Sep 01 14:42:23 2010 -0700"
      },
      "message": "Adding a feature definition corresponding to support for Near-Field\nCommunications (NFC).\n\nChange-Id: I32b1b949524bfd978f53e23e02d38dfba4a2ea9c\n"
    },
    {
      "commit": "752fe99276656628d534ea80e07e7880e1425b7b",
      "tree": "0190095fa2c3822df27b8c6cde6e1162fa60b215",
      "parents": [
        "e34fe69e66d8c9bc76453347ba84261b060300f3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 01 14:20:33 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 01 14:20:33 2010 -0700"
      },
      "message": "Fixing the build.\n\nChange-Id: I6414a5ed2a92f5e375e19caf7453abd268ce76d3\n"
    },
    {
      "commit": "fdbdeb3137a6b47527d1d714afbb7e1b19b474ec",
      "tree": "fd6d4abde1b3712c419bd1ea8193e51bc318153d",
      "parents": [
        "1751086360056bc60d00f2ed2988bc82be9e7bd9"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 12 11:20:13 2010 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Sep 01 14:15:50 2010 -0400"
      },
      "message": "Fix invalid comment in WebSettings.\n\nThe get/set for the pluginPath is leftover from the Gear\u0027s plugin\nand is no longer useful now that plugins are loaded from their\nown APK using the package manager. These methods were modified to\nbe no-ops in froyo, but the documentation was never completed.\n\nChange-Id: I20f6593445d877a3dae9b9f51d5198a3509255d6\nhttp://b/2811032\n"
    },
    {
      "commit": "361199b5e742c6635d4d7a03de6cf37b31cf442c",
      "tree": "170d0ba61242ba04a3491a98f894f3a2e416bbe7",
      "parents": [
        "22cd420bfa431b4ad55e699afadf109dcc54f201"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 30 17:42:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 31 18:59:04 2010 -0700"
      },
      "message": "Add PackageManager API to get information about a provider component.\n\nKind-of useful when all you have is a ComponentName.\n\nChange-Id: I9a99f12daabb29e97e882e09c43ca0df70c00651\n"
    },
    {
      "commit": "54901c9e8497b33bab1462245864e9dd119bb64c",
      "tree": "150a6978931c88b484dfe80234ce51b18c821b9b",
      "parents": [
        "77881293ad9a68dfa1c1da4b466f7b2b6465b342"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Aug 31 12:51:25 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Aug 31 12:53:18 2010 -0700"
      },
      "message": "fix the build.  will revisit this change in a minute\n\nChange-Id: Ibac9e777ea7332d63ddaf2e3b8935e56a663ebbe\n"
    },
    {
      "commit": "0a77ce277c6ed2aa25bbea5f8cd5687c0720cb68",
      "tree": "ebc9590d88ae375498aac04a168c49984138749a",
      "parents": [
        "4c72ad75cfb413f54cb59d413a232e77c7260ef2"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 25 14:37:03 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Aug 30 19:14:07 2010 -0700"
      },
      "message": "New edge effects for scrolling widgets (overscroll)\n\nTODO: Currently disabled for WebView. Assets used for the glow effect\nneed to be themable/styleable. Overscroll effect should take place\neven when the user did not grab the widget within actual content.\n\nChange-Id: I68277d14d37dc5bcdb9254eaddf6e4998b3f2bf4\n"
    },
    {
      "commit": "8d60866e2100db70ecf0502c14768a384514d7e9",
      "tree": "514e46b4e4d58fd68cd52de93b93e7782fdf4e9f",
      "parents": [
        "bb660d7e1bed3a07a1804bd9641d9634bfaa4972"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 03:02:23 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 18:16:43 2010 -0700"
      },
      "message": "Input device calibration and capabilities.\n\nFinished the input device capability API.\nAdded a mechanism for calibrating touch devices to obtain more\naccurate information about the touch contact area.\nImproved pointer location to show new coordinates and capabilities.\nOptimized pointer location display and formatting to avoid allocating large\nnumbers of temporary objects.  The GC churn was causing the application to\nstutter very badly when more than a couple of fingers were down).\nAdded more diagnostics.\n\nChange-Id: Ie25380278ed6f16c5b04cd9df848015850383498\n"
    },
    {
      "commit": "66fce5068a8a3aeb28aaf713843891b286a75280",
      "tree": "12b92e7b95f0251c4edb67cdab6374c58cae9608",
      "parents": [
        "2e86809b6c79375d23c0975914efc3b66e89ac90"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Aug 30 18:10:49 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Aug 30 18:10:49 2010 -0700"
      },
      "message": "Renaming SharedPreferences$Editor.startCommit to apply\n\nAlso removes the artifical restriction that only one apply() can be in\nflight at once.  That was old from when I thought it\u0027d end up being\nrequired, but wasn\u0027t.\n\nChange-Id: I3540ea8be6e0760d6a51d218186f71655c2f3f55\n"
    },
    {
      "commit": "7ec7b9970cc3a6311bf043e228991adf24c43523",
      "tree": "4aea84acb9fe2677227e5522b31de779c505a713",
      "parents": [
        "681c5ff2085a08835c08b97641ebdc1b37489943"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 27 15:39:46 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 13:33:53 2010 -0700"
      },
      "message": "Remove camera metering mode API.\n\nMetering mode is not supported yet.\n\nChange-Id: Id6906d6ab0cd1a9dcbc5c303d8d5081b2cda699e\n"
    },
    {
      "commit": "d02bdaab495641ab50e2123fdfd99a819cc40540",
      "tree": "63b4618d41b340ea2d4f01b98da2ce0ba478c032",
      "parents": [
        "7046bd924f77c54585b9e0e0c95e5edd2ceb55a3"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 26 10:28:46 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 27 22:57:39 2010 -0400"
      },
      "message": "Remove experimental immersive mode support. DO NOT MERGE\n\nBug: 2949215\n\nChange-Id: I7d998ef571ef7e149bb96261430e92150b80b77d\n"
    },
    {
      "commit": "15665bb60eb2ca8d114724379c156ff7f2a6cc53",
      "tree": "9bf83e0eb1d6f8c39d117c75567ccd3149df3ab1",
      "parents": [
        "4f8c2f26bfd9de8c8a31369dbedd415c7d6d9699"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Aug 27 16:36:43 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Aug 27 16:40:22 2010 -0700"
      },
      "message": "Add current.xml API file missing from I8f2b6b79.\n\nFixes build.\n\nChange-Id: I7d845fb45b5221425f41cf3069fea7f31ea6b225\n"
    },
    {
      "commit": "4f8c2f26bfd9de8c8a31369dbedd415c7d6d9699",
      "tree": "c35980867f514f9469948c4f034e2e2a8948ed5d",
      "parents": [
        "0c731f99b05630e16dce572ac206ab75c90891cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 27 16:10:25 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 27 16:14:42 2010 -0700"
      },
      "message": "Fix docs build.\n\nChange-Id: I49591c46080361acf5b528116726c27b6ed9da9a\n"
    },
    {
      "commit": "5f1e69c76ef5886ed65e303490c5f660da4756ef",
      "tree": "c02010280f6323b54e2f36e84ffdf9c1d76144fe",
      "parents": [
        "ee4831c4bb39144b995ea561ad35b9b0e1864b33"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 18 11:39:12 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 27 14:19:32 2010 -0700"
      },
      "message": "Unhide camera fps range API and deprecate old ones.\n\nOriginal preview frame rate API assumes the frame rate\nis fixed. It does not not work with auto frame rate camera.\n\nChange-Id: I1233a22ed64d42f167432085716bb6bfc3d36bbf\n"
    },
    {
      "commit": "45b2d699e10474f0167691774c0cfb93cfe2dae9",
      "tree": "23e7862a764a49f9e4b0230078696602c8ae9f85",
      "parents": [
        "cc033bd367a445d5e3f8de919cd155505b25274c"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Aug 26 15:51:01 2010 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Fri Aug 27 10:29:59 2010 -0700"
      },
      "message": "DO NOT MERGE Text selection: tapping on selection opens context menu\n\nBack key exit selection mode. No more \"Stop selecting text\" in second context menu.\n\nA tap on one of the handles also triggers the second context menu.\n\nPaste is only available on long press in first menu for empty text fields.\n\nChange-Id: Ic4fa00458d4f617a81885436b53d4fc923347609\n"
    },
    {
      "commit": "a90b7f0125389b9e1040d2be82aad4ef74ea6071",
      "tree": "df71583ddfca7e822c1a964937bc966af5d3e4b9",
      "parents": [
        "846eb30f78a9153102c743c2c1b49de1a4079fb1"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 25 18:27:20 2010 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 26 14:53:39 2010 -0700"
      },
      "message": "Add methods to InputConnection: setComposingRegion() to select a region of text for correction, and getSelectedText()\nto return the selected text.\n\nsetComposingRegion:\n\nThe TextView may choose to highlight the text in some way (underline for now) to indicate\nthat the text is selected for correction, if the IME wants to provider alternatives.\n\nChoosing an alternative in the IME can then call IC.commitText() to replace the highlighted\n(not selected) text with a different candidate.\n\nThis change also ensures that any existing spans/styles are not wiped out. So we can now\ncorrect rich text as well.\n\ngetSelectedText:\n\nThis is a convenience to get the selected text instead of using extracted text that is\nmore heavy weight. Existing getTextBeforeCursor() and getTextAfterCursor() fail to\nretrieve the selected text, only what\u0027s before and after the selection.\n\nChange-Id: Ieb5ecd5ff947ea04958589f501e7bd5228e00fb5\n"
    },
    {
      "commit": "846eb30f78a9153102c743c2c1b49de1a4079fb1",
      "tree": "aa6674cb9bddb3400bc43b43304e8fd51d6d249e",
      "parents": [
        "02486b1327e3007c62d253dd89ba9db1852b87f8"
      ],
      "author": {
        "name": "David Brown",
        "email": "dab@google.com",
        "time": "Mon Aug 23 17:40:51 2010 -0700"
      },
      "committer": {
        "name": "David Brown",
        "email": "dab@google.com",
        "time": "Thu Aug 26 14:49:29 2010 -0700"
      },
      "message": "Add SipAddress to ContactsContract.\n\nThis is a new data kind representing a SIP address for a contact.\nThe new class is ContactsContract.CommonDataKinds.SipAddress,\nand the new mime type is \"vnd.android.cursor.item/sip_address\".\n\nIt\u0027s pretty generic right now (basically a single text field, like\n\"Website\") but we may eventually want to extend it later to have multiple\nlabels+types (like phone numbers.)\n\nBug: 2942998\n\nChange-Id: I45d90a680a3badf60bccb5aafdc2397037494e95\n"
    },
    {
      "commit": "02486b1327e3007c62d253dd89ba9db1852b87f8",
      "tree": "ddf8f10dcf945aec5bbefbf0d13b936582b42de0",
      "parents": [
        "bc5d9d2254ee751ff50fb91d4560098ab5edf01f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 26 14:18:37 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 26 14:41:58 2010 -0700"
      },
      "message": "Hide heavy-weight API.\n\nAnd give it a better name, for when it is later un-hidden.\n\nChange-Id: Iae0d3054d44f873b9f953bc41d175a47802a185e\n"
    },
    {
      "commit": "71450f813991bb76b477aaffd7cad28e8ae8af7c",
      "tree": "f56ef1cf4ca0340bf3a6f3b18e528e399a539dbb",
      "parents": [
        "dfded35b3a5cb8eb57d47b750f3a4b0085fd3c0a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 26 10:38:24 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 26 10:42:38 2010 -0700"
      },
      "message": "Changed type of reverb presets from int to short\n\nChanged the type of reverb preset constants exposed by the PresetReverb API to\nmatch the type of the setPreset() method parameter.\n\nChange-Id: I786764b5279c60f2368f5a0372f78da65ec54e4f\n"
    },
    {
      "commit": "edf32d01316bd3432c023f17747461b08ae36375",
      "tree": "3f5ab0cd80b55712a716c975ddbbf7fcd9a43eab",
      "parents": [
        "8eb16af29303cda190133a1d220b9ecd9341e261"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Aug 25 13:13:36 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Aug 25 13:13:36 2010 -0700"
      },
      "message": "Start of SharedPreferences$Editor.startCommit()\n\nNo implementation yet, just the interface.\n\nChange-Id: Idf9934b445da1fb72b79f0192218b47c0a7f5a34\n"
    },
    {
      "commit": "97461bd25c3821f3fb6af9705f0612259c6b4492",
      "tree": "fa090d0495b22759bc751f0f9ef6061bc9e9a0cd",
      "parents": [
        "2703a42d16af0e62da1bba02b6c935d98debf936"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 24 11:46:47 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 24 11:47:19 2010 -0700"
      },
      "message": "Some StrictMode API changes.\n\n* rename setThreadBlockingPolicy to setThreadPolicy (opens the way to\n  using StrictMode for non-blocking-related things in the future?)\n\n* add allowThreadDiskWrites() and allowThreadDiskReads() to modify the\n  current policy mask and return the old one.  this will allow turning\n  off part of StrictMode during certain regions of code.  (for\n  instance, writing to disk in Activity onPause...)\n\nChange-Id: Ia1878153713f79299971fdab567fa15b3cb9d56c\n"
    },
    {
      "commit": "3e05a0beb2fad0b21558019d2adf6805da70e10e",
      "tree": "ec6703ca74a646a9916edb64b39a97dde7c2205d",
      "parents": [
        "0c76c7c5eedf90b5fa1a95b6a9944b4e58747007"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Mon Aug 23 14:55:06 2010 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Mon Aug 23 15:20:53 2010 -0700"
      },
      "message": "Hysteresis effect in Text selection.\n\nVertical movement requires going over a given threshold to change line.\nMakes it easier to move down without changing line, so that one can see the\ncursor better. Also simplifies long line selection.\n\nChange-Id: I791da500232c6e510af64c637ed994c5da9a4fea\n"
    },
    {
      "commit": "7a0541d6b803da02b8724b1d140d6ccaaec23a36",
      "tree": "e6447ebb63e102705d232a4ede15fdfb469fae30",
      "parents": [
        "b2cc86da29452769ff6210f1dfef4b51aac1d75e"
      ],
      "author": {
        "name": "Kevin Powell",
        "email": "kpowell@invensense.com",
        "time": "Mon Jul 19 19:10:40 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 20 19:24:02 2010 -0700"
      },
      "message": "add new sensor types for handling gyro data and device orientation\nmore efficiently.\n\nChange-Id: Ifbcf2caae0865eccf1c9b8060342185c22145a30\n"
    },
    {
      "commit": "4d42ccd1579da53aaaf132a6ad26a06e2baa5b98",
      "tree": "d63a1dc40034d242682e9d90972eb2ca291e52b0",
      "parents": [
        "42f90ca54fc4c6e0bdbde7caa7d10b6090d11960"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 19 12:24:22 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 20 13:50:19 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit 353ab63e412dd15029143de238e9590ab35eb583)\nmake update-api\n\nChange-Id: I9e61616828a3a5745421350b9a2fc78ba181d388\n"
    },
    {
      "commit": "b0d6ba1ec4f71b96cab7d1ff62b846d5cf162c4f",
      "tree": "1c21c8af559a1a7206a56996aa7ae10fd0ba29ef",
      "parents": [
        "c4554b9a0885ac3713575e91d8d33c5670b52322"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Aug 17 20:01:42 2010 -0700"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Aug 19 15:55:02 2010 -0700"
      },
      "message": "Text selection without trackball.\n\nBackported from HC.\n\nSquashed commit of the following:\n\ncommit af214a595c7a9fdd11a2dc384f7d4665abf751c0\n    Fixes in TextView\u0027s selection.\n\ncommit eb9fd59ebe6500a66c2003d46b5802299970ae8d\n    TextView with Selection Contextual Mode\n\ncommit 4c4c338ef355b369ce4b57d6c6fba7ee8f9dddf4\n    Cosmetic changes around TextView.\n\ncommit d4b4b054e87480d984ad18766f5e76553e3080d8\n    Double and one and a half tap removed from TextView.\n\ncommit 897c2847ba1fca8ef01eadadd1bc3de007af3ee5\n    Selection handlers in TextView\n\ncommit 832be74a5394649e28927484d9a86c6d53b430e7\n    New cursor controller in TextViews.\n\nChange-Id: I01cc64736e2abea605317ee53907a1713617fc17\n"
    },
    {
      "commit": "232a0331c0b35df2333ac482fcf0e59a562e6fa0",
      "tree": "35d4e5db8efe10aa73a5d1c661053eca934ecfe3",
      "parents": [
        "6ab94608750776bcaaee56696cfcfb16ce29db8a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 18 00:47:08 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 18 00:47:08 2010 -0700"
      },
      "message": "tracking merge of external/apache-http from dalvik-dev\n\nChange-Id: I25d7659b25f86f88cb36b4f80589b8c3e3a8c6b2\n"
    },
    {
      "commit": "33bbd12a05005ac92a0ecf82695893148227bb22",
      "tree": "4e78a5bd369a773bb5463ed33a3dfd47144dd57b",
      "parents": [
        "80810f86e93866674f3a4ca61f84887e7717aa63"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Mon Aug 02 17:51:29 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Mon Aug 16 14:28:17 2010 -0700"
      },
      "message": "New download manager error code when we can\u0027t resume.\n\nAdding DownloadManager.ERROR_CANNOT_RESUME for when we can\u0027t resume an\ninterrupted download (because the server didn\u0027t provide an ETag or\ndoesn\u0027t support range requests), as well as the necessary private\nstatus code in Downloads.Impl.\n\nChange-Id: I5a66f1e1964198552ab2216aa6d3cc0db2254e21\n"
    },
    {
      "commit": "7d2e3df60d33a73f5ef62ea462a9c6da5e3efc9a",
      "tree": "618eb0275f1dd2cc8ae1ab66316d10f0bd1e4617",
      "parents": [
        "8ea71511c64e61fe23004889ff7032f991a751c8"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Aug 11 16:58:04 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Aug 16 09:18:50 2010 -0700"
      },
      "message": "add an api for getting a device serial number\n\nAdd a constant to android.os.Build that returns a device-specific\nalphanumeric serial number.  It\u0027s optional -- it may be blank --\nthough CTS will require it to be present for non-telephony devices.\n\nChange-Id: I338ae5f43ba679a5e98f2f437dc4efdaef0c835d\n"
    },
    {
      "commit": "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13",
      "tree": "aa1b5fb6b900c064d9914f51c9c3817a2c46f9df",
      "parents": [
        "9902196f9885d369e37cf44084e3f04513511ab0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 05 16:14:17 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:20:53 2010 -0700"
      },
      "message": "Move OBB file reading to DefaultContainerService\n\nThe system_server shouldn\u0027t touch files on the SD card. This change\nmoves the things that touch the SD card out to the\nDefaultContainerService so that it will get killed if the SD card goes\naway instead of the system_server.\n\nChange-Id: I0aefa085be4b194768527195532ee6dddc801cfc\n"
    },
    {
      "commit": "08d5b8fad8d46ccb64db2fdcb4d66972ec87bf48",
      "tree": "7e2e67603ec8a2ca164548301b65a2b733df76a0",
      "parents": [
        "091c5238a00ca51dc69b8b09459e6ac88e1eb077"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:29:59 2010 -0700"
      },
      "message": "More native work.\n\nImplement save/restore of state, and add native APIs for\nconfiguration information.\n\nChange-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5\n"
    },
    {
      "commit": "2a6b80bc65c4782b5a7168b300e1dc5ec9f617ee",
      "tree": "fc777c3694d8739aba7a44caedc867c7b87b88a9",
      "parents": [
        "8fb2e6e4720385961083a150a3e848ccaef544ae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 29 23:43:43 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 09 05:48:20 2010 -0700"
      },
      "message": "Fixed several audio effects problems.\n\n- Fixed constant inversions in AudioEffect.java\n- Do not return error when enabling an already enabled effect\n- Update cached effect state in native AudioEffect class when effect is enabled/disabled by command() method\n- Remove click when restarting effect during disable sequence\n- Fixed problem in master mute management when volume control is delegated to effect.\n\nChange-Id: I6df4ce9fcc54fdc7345df858f639d20d802d6712\n"
    },
    {
      "commit": "8e15afe799bbe8d332640c1f2b57b5e0458a9625",
      "tree": "59243a3ecfa55cf71873629747b28d739a480c77",
      "parents": [
        "818490ab2abe36dfc6c13d01fea5220bd64cca8c"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Wed Jul 28 17:12:40 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Fri Aug 06 11:06:49 2010 -0700"
      },
      "message": "Make downloads visible by default.\n\nChange-Id: I8f8b325658d8afc964bddd3f1c03ed20e6bd10aa\n"
    },
    {
      "commit": "3c7c351a6217ac48b741740167c201a679a0ca65",
      "tree": "f539d70e0a46249f01dd6fb45563f1ebc4bed706",
      "parents": [
        "cde66df44240cfe5a7bec12ac52464c3bf26c14f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 15:44:39 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 23:47:38 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit f77cf7f0\ngit cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113\ngit cherry-pick --no-commit 570bb561\ngit cherry-pick --no-commit e2417541\ngit cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30\ngit cherry-pick --no-commit 5e8a587d\n\nChange-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88\n"
    },
    {
      "commit": "f383a9a1153d36242ad7e0c0ed9f7895a110488f",
      "tree": "a735aac6323b3493af2f57a19e17b1f0e24096de",
      "parents": [
        "1340ee8a273a9b25a779f3b18d6f832ce496c68e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 04 09:18:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 04 09:18:46 2010 -0700"
      },
      "message": "Fix the build.\n\nForgot to update current.xml in last patch set for change\nI541ee4ad0232312ec720545737cbcdb8c9a82597\n\nChange-Id: I528a43fd01ca2478145fe54d90747f489ab7a2b3\n"
    },
    {
      "commit": "17cb280e7f1ac3556eac90ab08263712e0348cb9",
      "tree": "324ae1f315fddc25a0b5ad82863f68a74bc2ed0b",
      "parents": [
        "23796e3b622c6be4feb15d4d57e58645acfa431b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 03 03:50:02 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 04 08:31:01 2010 -0700"
      },
      "message": "NEW_API: Unhide audio effect APIs.\n\nThis change unhides all public APIs for controling audio effects exposed\nby the following classes:\n- AudioEffect\n- BassBoost\n- EnvironmentalReverb\n- Equalizer\n- PresetReverb\n- Virtualizer\n- Visualizer\n\nAlso fixes several problems in javadoc.\n\nChange-Id: I541ee4ad0232312ec720545737cbcdb8c9a82597\n"
    },
    {
      "commit": "04d7e83e65e246e154b5b346e3eb0081b741ae88",
      "tree": "010c86fa7361f8e09dee2e496a4ed04b2f077d38",
      "parents": [
        "050b56244ff46d43e4886018d7cd20f0b1dc02b9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 17:59:58 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 18:18:01 2010 -0700"
      },
      "message": "Added SensorManager.getAltitude()\n\nthis is a helper function to calculate the altitude from the\npressure and pressure at sea level.\n\nChange-Id: I3f6f14fee6190388f95afa36a66287e3d59eef9b\n"
    },
    {
      "commit": "050b56244ff46d43e4886018d7cd20f0b1dc02b9",
      "tree": "1c0cfcd08dbd18b386bebe5dd2cbeb1c945ccbda",
      "parents": [
        "3fb627525e077fa5452a99ac1e2a7e9c41995044"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 16:51:38 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 18:18:00 2010 -0700"
      },
      "message": "Added SensorManager.getMinDelay()\n\nExposed the new \"min delay\" sensor property through native and\njava sensor apis. This allows the caller to know what is the\nmaximum rate at which a sensor can return events, or, if a sensor\nworks in \"update\" mode (events returned only when the value changes).\n\nAlso augmented SensorManager.regusterSensorEvent() so that it can\naccept a value in microsecond in addition to the 4 constants already\ndefined.\n\nChange-Id: If425e9979892666df8c989d7de3c362230fa19e0\n"
    },
    {
      "commit": "6ec402b5ae33c8927694d8522b4cc6a5c8ba974e",
      "tree": "5d4b19eda9ade71d7e34635479426f1dd484e8c2",
      "parents": [
        "6dea6f4e71b53e421564d783c227cbe0a2469183"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 15:48:59 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 29 12:54:27 2010 -0700"
      },
      "message": "DO NOT MERGE: Fix input event injection ANRs on UI thread.\n\nAdded a new asynchronous injection mode and made the existing\nsynchronization mechanism more robust.\n\nChange-Id: Ia4aa04fd9b75ea2461a844c5b7933c831c1027e6\n"
    },
    {
      "commit": "6d0fec2de3601821f4f44eeb7d7deedebb2b7117",
      "tree": "9fdea32c5691a6d0bcb3085df47f42a8e6ecd565",
      "parents": [
        "b350bec514eb9fee473e4ef62680c53e992dc49b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 23 21:28:06 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 14:16:15 2010 -0700"
      },
      "message": "Refactor input reader to support new device types more easily.\n\nRefactored the input reader so that each raw input protocol is handled\nby a separate subclass of the new InputMapper type.  This way, behaviors\npertaining to keyboard, trackballs, touchscreens, switches and other\ndevices are clearly distinguished for improved maintainability.\n\nAdded partial support for describing capabilities of input devices\n(incomplete and untested for now, will be fleshed out in later commits).\n\nSimplified EventHub interface somewhat since InputReader is taking over\nmore of the work.\n\nCleaned up some of the interactions between InputManager and\nWindowManagerService related to reading input state.\n\nFixed swiping finger from screen edge into display area.\n\nAdded logging of device information to \u0027dumpsys window\u0027.\n\nChange-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612\n"
    },
    {
      "commit": "f547d722f9591629b293ba9132d6b74d345e9aa5",
      "tree": "29ac16576f9f72d30144846b3a719cf82df26653",
      "parents": [
        "7feab3470156c7864fe159115d575c16f0974493"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Tue Jul 27 16:50:07 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Tue Jul 27 16:50:07 2010 -0700"
      },
      "message": "One last change to current.xml for new download manager API\n\nChange-Id: If88984ad64880a81e4dbb4ef9f8118cc52bb891f\n"
    },
    {
      "commit": "46be2a5bb647a2429c16ce7d613dd9cce8c3c43b",
      "tree": "44f191698337beecfad4f4a50fe6c243c90536aa",
      "parents": [
        "00de721859ca291d0e212a6970f0bd8b3a2f8428"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Mon Jul 26 20:44:35 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Mon Jul 26 20:44:35 2010 -0700"
      },
      "message": "Un-@hide new download manager public API.\n\nChange-Id: Ia8433160ef40e25fb9408f05f97c7bbfa10a807e\n"
    },
    {
      "commit": "94dab9b13590b714a7400d513f1e4655c62ddfaf",
      "tree": "0b986d5ec6316451a4e32d3a7375024e7f925210",
      "parents": [
        "5b31498ba1f9874f395d80152304512fa4c0144d"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Sat Jul 17 18:29:22 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Sat Jul 17 18:29:22 2010 -0700"
      },
      "message": "fix broken api/current.xml\n\nChange-Id: I6cc03dddf20228625f18f7a59aed22628f9661fa\n"
    },
    {
      "commit": "5b31498ba1f9874f395d80152304512fa4c0144d",
      "tree": "00a17d4ebc43a0f74e99807e75cf0b683425294d",
      "parents": [
        "2c87e9c923b0362fabf8c97ff63997542394c428"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Jul 12 15:13:37 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Sat Jul 17 18:16:31 2010 -0700"
      },
      "message": "add video/audio chat-compatibility modes to ContactsContract\n\nChange-Id: Ic0b04017ad4216f1a1c5f07fa9d27e6970ded931\n"
    },
    {
      "commit": "e33348ba54cd68d6936cffd4507037c14d4b10c2",
      "tree": "1429dd836a48b3f49ee2a27623ff47b5c272c827",
      "parents": [
        "bd623daff1f261a0e794f059d90ba5907eb5a89a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 23:54:05 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 00:02:48 2010 -0700"
      },
      "message": "Fix bug with phantom input windows.\n\nAdd dumpsys integration for the native input dispatcher.\nAdd some InputDevice API stubs.\nAdd an appendFormat helper method to String8 for printf style\nstring formatting mainly for debugging purposes.\nUse generic ArrayList\u003cWindowState\u003e everywhere in WindowManagerService\nto eliminate unnecessary casts all over.\n\nChange-Id: I9d1e3bd90eb7222d10620200477f11b7bfd25e44\n"
    },
    {
      "commit": "02c8730c1bf19daf48bec8c6995df676a00a73b1",
      "tree": "f4d832a5308a18272cc6be0464a9824ad1e776ec",
      "parents": [
        "c5ed5910c9ef066cec6a13bbb404ec57b1e92637"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 01 08:10:18 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 15 21:31:58 2010 -0700"
      },
      "message": "Add API to call to vold for mounting OBBs\n\n* Unhide StorageService class; hide all the USB-related items\n\n* Add application-visible API to StorageManager for OBB files\n\n* Add class for parceling OBB info across binders (ObbInfo)\n\n* Add a JNI glue class to libutils/ObbFile (ObbScanner)\n\n* Add API to MountService to deal with calling into vold and checking\n  permissions\n\nChange-Id: I33ecf9606b8ff535f3a2ada83931da6bbef41cfd\n"
    },
    {
      "commit": "c5ed5910c9ef066cec6a13bbb404ec57b1e92637",
      "tree": "b06dfdac2d807dae78a2634007b6e627eefd0804",
      "parents": [
        "d9452ecd0ce6c8e0518055929ba1fd0712146405"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 14 18:48:53 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 18:32:33 2010 -0700"
      },
      "message": "Add support for new input sources.\n\nAdded several new coordinate values to MotionEvents to capture\ntouch major/minor area, tool major/minor area and orientation.\n\nRenamed NDK input constants per convention.\n\nAdded InputDevice class in Java which will eventually provide\nuseful information about available input devices.\n\nAdded APIs for manufacturing new MotionEvent objects with multiple\npointers and all necessary coordinate data.\n\nFixed a bug in the input dispatcher where it could get stuck with\na pointer down forever.\n\nFixed a bug in the WindowManager where the input window list could\nend up containing stale removed windows.\n\nFixed a bug in the WindowManager where the input channel was being\nremoved only after the final animation transition had taken place\nwhich caused spurious WINDOW DIED log messages to be printed.\n\nChange-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68\n"
    },
    {
      "commit": "058d0390a44f68b67788021bae9ca1775812997b",
      "tree": "23b97aa83da730d4057a68647f8fd09a37fe636f",
      "parents": [
        "36ff93aa1f489e6af6c2acce38beb0bffd6b8f8a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 07 14:53:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 15:12:05 2010 -0700"
      },
      "message": "Remove the YV16 format for simplicity\u0027s sake.\n\nChange-Id: Iee03d100933ba0c67b13d51e0435be3b4cd953cf\n"
    },
    {
      "commit": "d76b67c340d1564abf8d14d976fdaf83bf2b3320",
      "tree": "59c0fff396681a622480a84f4f9c74d188970a11",
      "parents": [
        "fd03582995e0fce963dd0fa0669e3211b74c0dd7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 17:48:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 18:36:46 2010 -0700"
      },
      "message": "IME events are now dispatched to native applications.\n\nAnd also:\n\n- APIs to show and hide the IME, and control its interaction with the app.\n- APIs to tell the app when its window resizes and needs to be redrawn.\n- API to tell the app the content rectangle of its window (to layout\n  around the IME or status bar).\n\nThere is still a problem with IME interaction -- we need a way for the\napp to deliver events to the IME before it handles them, so that for\nexample the back key will close the IME instead of finishing the app.\n\nChange-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd\n"
    },
    {
      "commit": "fd03582995e0fce963dd0fa0669e3211b74c0dd7",
      "tree": "8f7fe0e2a437620a7cbe4e494f71fe8ccfdbe2eb",
      "parents": [
        "c0a7e690bfd32dd897ceccd04dd0fa6bf6e9cee6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 30 16:10:35 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jul 13 17:04:57 2010 -0700"
      },
      "message": "Add initial gamepad support.\n\nChange-Id: I0439648f6eb5405f200e4223c915eb3a418b32b9\n"
    },
    {
      "commit": "26c679751d80e7f1f3de35324666c8eda7db5da2",
      "tree": "b4ed9a596ce970c9a99c6735bd61acdd63d5d0f8",
      "parents": [
        "2aaa9e9fc5ddc05cedbe530c7a41eca0e3a62b7a"
      ],
      "author": {
        "name": "David Brown",
        "email": "dab@google.com",
        "time": "Fri Jul 09 15:06:11 2010 -0700"
      },
      "committer": {
        "name": "David Brown",
        "email": "dab@google.com",
        "time": "Fri Jul 09 16:01:25 2010 -0700"
      },
      "message": "Deprecate some status bar icons that now come from the phone app (and\nshouldn\u0027t have been public in the first place.)\n\n(And since the changed deprecation state is a public API change, I needed\nto do \"make update-api\" as well.)\n\nChange-Id: I803d5a81ad2363561137be5af4f2b8258df758cd\n"
    },
    {
      "commit": "841b176dc0a2424d6172484897e288c2488261db",
      "tree": "4691328bec471e37710efed028aa7e42d587d890",
      "parents": [
        "98738272e3b680559e1e0a7b665a0ebb4038f684"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jul 08 15:39:22 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jul 08 15:39:22 2010 -0400"
      },
      "message": "Make android:immersive public.\n\nThis exposes the AndroidManifest attribute\nandroid:immersive, introduced in Change I967bb10b, to the\nSDK.\n\nChange-Id: Iccbc99590cd0fd4c570b9b9670ef93036f9d849e\n"
    },
    {
      "commit": "93565c4b3265c16aee4a82d7556f811776c17db8",
      "tree": "1b6802fea6d067d97410d67d6665721ea23fb327",
      "parents": [
        "7cee34a051eb0087322c8b965e498f88b1aa52d3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jun 18 15:46:06 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 07 09:57:51 2010 -0700"
      },
      "message": "OBB API for PackageManager\n\nSimple API for tracking .obb files associated with packages. Stores the\npath in the PackageSettings. No verification of file content is done\nnow since the PackageManagerService can\u0027t read the SD card where these\nfiles will likely live.\n\nChange-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e\n"
    },
    {
      "commit": "09b9005769f2b717f637131578ce6cfa6bd62bd9",
      "tree": "9f079a79030d894e6c81f919799a379e4fda3a9f",
      "parents": [
        "160edb3645f8b7012bab70ae6e6e8c4a5733082b"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Jun 22 20:50:55 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jul 01 10:57:15 2010 +0800"
      },
      "message": "Add multiple camera support for in MediaProfiles.\n\nChange-Id: Ie89568a0f5f5fd08ede77e33f9a559215d6bed9a\n"
    },
    {
      "commit": "de1057c4a6aa41c3b88bcc4fd49d70f973f1d9eb",
      "tree": "d790c64dacf493c1557163754573cba9303b6b9d",
      "parents": [
        "9005e7f4297a3f04263e81cb61ba2703d5667b0a"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Jun 14 19:15:00 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Jun 28 11:12:45 2010 +0800"
      },
      "message": "Unhide new API for supporting multiple cameras.\n\nChange-Id: I916a536c80330444a15986ba380205a6deed2390\n"
    },
    {
      "commit": "baf42c625c3ef4cb7b732956a97953efd93b23bc",
      "tree": "42065f9b14d2bc9a5c123625b7248c5ee27387f3",
      "parents": [
        "7fd22aab4506f65b7929ed1030bdd71c56f7db77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:23:39 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:38:47 2010 -0700"
      },
      "message": "Add APIs for finding heavy-weight apps.\n\nChange-Id: I6c865cce404cac1a08eee056f963de5d276d5898\n"
    },
    {
      "commit": "1e4b9f3936d6f357e89360293e05a0e16d5fa440",
      "tree": "4fc65451804b3d2741969ecb7bfd3d415f54ec51",
      "parents": [
        "69a4817e3e1e368e758ff8c238deb5ee26963c04"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 14:10:57 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 14:37:30 2010 -0700"
      },
      "message": "Remove InputConsumer, replacing with InputQueue.\n\nChange-Id: Ib06907278457aaee842b123adc072840ca3602d8\n"
    },
    {
      "commit": "69a4817e3e1e368e758ff8c238deb5ee26963c04",
      "tree": "3eaed1f053b09daabf84854acb3155216543a102",
      "parents": [
        "efbe2d78ee5e26b6606c8552a5c1ac70749a5013"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "message": "Immersive activity API.\n\nAn Activity can declare itself to be \"immersive\" either by\nsetting android:immersive\u003d\"true\" in AndroidManifest or by\ncalling setImmersive(true).\n\nImmersive activities \"should\" not be interrupted, for\nexample by Notifications with an associated\nfullScreenIntent. (In the future we may even prevent any\nnon-system application from successfully calling\nstartActivity() if the foreground activity is immersive.)\nNotifications with FLAG_HIGH_PRIORITY set will be shown to\nthe user in some less-obtrusive way if the frontmost\nactivity is immersive.\n\nChange-Id: I8d0c25cc4e22371c27cbf2bb6372d2c95d57b2d7\n"
    },
    {
      "commit": "8900c32986eb9b06f30ecbe6709857fd2cc7b576",
      "tree": "a932086c9d2da198796151306358444d0c34adca",
      "parents": [
        "2c2ce8e53f5eb94916a5d0f40b2877cc7551870d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 14:34:03 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 14:34:03 2010 -0400"
      },
      "message": "andriod.location.Criteria: Simplify new location criteria APIs a bit.\n\nRemove ACCURACY_BEST and only use ACCURACY_MEDIUM for horizontal accuracy.\nRemove accuracy priority support, since it be difficult to implement in some cases.\n\nChange-Id: I785a781f8d8f3bf3be6693ad71d077b6eb280c31\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a95e4cb62f3642cb190d032dbf7dc40d9ecc6973",
      "tree": "ae4437444a3d3ebeff48dabfd1e9c11fc14620ac",
      "parents": [
        "ef730e6ececa96a3e0576140eea707f7c48cd66c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 18 18:09:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 22 11:21:50 2010 -0700"
      },
      "message": "First stab at attaching native event dispatching.\n\nProvides the basic infrastructure for a\nNativeActivity\u0027s native code to get an object representing\nits event stream that can be used to read input events.\n\nStill work to do, probably some API changes, and reasonable\ndefault key handling (so that for example back will still\nwork).\n\nChange-Id: I6db891bc35dc9683181d7708eaed552b955a077e\n"
    },
    {
      "commit": "613dde4aa651e11dac3db859723cc6faf8fc0a82",
      "tree": "8a2d010ff13c104c675ea157c4f677bfa55da231",
      "parents": [
        "aaf39f84063b8fee51bcdb0731d68c328b6a3c3d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Jun 21 13:46:39 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jun 22 12:30:12 2010 -0400"
      },
      "message": "Revised \"immersive mode\" API.\n\nNo longer a window bit, FLAG_IMMERSIVE is now set on\nActivityInfo.flags and in the Activity\u0027s manifest as\nandroid:immersive\u003d\"true\" (ActivityInfo).\n\n[An \"immersive\" activity is one that wishes to avoid being\npaused by full-screen notifications (like an incoming call).\nAn activity that sets FLAG_IMMERSIVE/android:immersive is\nsending a signal to the notification manager, status bar,\netc. that they should try to find some other way to get the\nuser\u0027s attention in high-priority situations.]\n\n[Originally: change Ie290c2e.]\n\nChange-Id: I967bb10b930b8f0772b10f81f2957a03fa3f1736\n"
    },
    {
      "commit": "224107a421e2611b15d1ec736df54bca9ee3e78d",
      "tree": "7947fa03cc7f65a001a6b899d20f9a848a80e6a6",
      "parents": [
        "07ccf5ad7edfeeebb79208ad3e8a52917fe038a8"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Jun 22 20:08:40 2010 +0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Jun 22 20:08:40 2010 +0800"
      },
      "message": "Add OpenGL ES 2.0 VBO versions glDrawElements and glVertexAttribPointer.\n\nChange-Id: Id0069535e97fe96eef74e4d0c1d19b010061fe3b\n"
    },
    {
      "commit": "e899caf8cce1d1a20121f19a99899553ae2b327e",
      "tree": "fb67ed204c6d9567957875aad9c0934f42673f02",
      "parents": [
        "5c225b1680e696ae8bbf505a1997d6f720672f74"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 13:49:02 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 13:49:02 2010 -0700"
      },
      "message": "Fixed api/current.xml after a bad merge.\n\nChange-Id: I033f417e928eb541f0528521326b66776a3c9096\n"
    },
    {
      "commit": "5c225b1680e696ae8bbf505a1997d6f720672f74",
      "tree": "932326fd02ee91d8a64adfcc9415027646c56563",
      "parents": [
        "3a0146cd29fae3c5bc29d8d535d67826284f8cc9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 16 01:53:36 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 13:27:16 2010 -0700"
      },
      "message": "Even more native input dispatch work in progress.\n\nAdded more tests.\nFixed a regression in Vector.\nFixed bugs in pointer tracking.\nFixed a starvation issue in PollLoop when setting or removing callbacks.\nFixed a couple of policy nits.\n\nModified the internal representation of MotionEvent to be more\nefficient and more consistent.\n\nAdded code to skip/cancel virtual key processing when there are multiple\npointers down.  This helps to better disambiguate virtual key presses\nfrom stray touches (such as cheek presses).\n\nChange-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c\n"
    },
    {
      "commit": "611fae4c39edbeb23b53f789a0219c539cf32fa6",
      "tree": "7c291d737d47e4a2dfd115738bfb1ef0f978f2f0",
      "parents": [
        "e46cbd379a3c19708c7f7e5d3f35e2c596de0c46"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jun 17 10:45:00 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jun 17 11:43:35 2010 -0400"
      },
      "message": "New API for \"immersive\" activity windows.\n\nAn \"immersive\" activity (as indicated by the new\nFLAG_IMMERSIVE) is one that wishes to avoid being paused by\nfull-screen notifications (like an incoming call).\nAn activity that sets FLAG_IMMERSIVE on its window is\nsending a signal to the notification manager, status bar,\netc. that they should try to find some other way to get the\nuser\u0027s attention in high-priority situations.\n\nFLAG_IMMERSIVE should be used exclusively in conjunction\nwith FLAG_FULL_SCREEN (that is, only activities that hide\nthe status bar should consider themselves immersive).\n\nChange-Id: Ie290c2e92fc391bcf55edfdb1fbd626cd284e3e2\n"
    },
    {
      "commit": "e46cbd379a3c19708c7f7e5d3f35e2c596de0c46",
      "tree": "1e24b31ae5e2398c1ffb2debf72cb818affd3265",
      "parents": [
        "6b7b4845212b3a439c527f2e1eca205b6b45fceb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jun 17 10:35:26 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jun 17 11:34:13 2010 -0400"
      },
      "message": "New API for high-priority Notifications and full-screen alerts.\n\n* fullScreenIntent: a PendingIntent pointing to a\n  full-screen activity or other modal alert experience to be\n  shown to the user instead of (or in addition to) a\n  traditional status bar notification icon. Example: An\n  incoming call should pop up a full-screen activity\n  allowing the user to accept or decline the call.\n\n  The old way to accomplish this is to simply fire off the\n  full-screen intent directly from the Phone app. By routing\n  through the Notification system, we make way for the\n  FLAG_IMMERSIVE bit (forthcoming API) which would allow the\n  frontmost opaque window to suppress full-screen alerts.\n\n* FLAG_HIGH_PRIORITY: This bit allows a notification to be\n  shown in windows that have the FLAG_IMMERSIVE bit set. For\n  example, a Notification corresponding to an incoming call\n  would be marked HIGH_PRIORITY so that even in an immersive\n  activity (i.e. a networked game) the Notification could be\n  shown to the user.\n\nChange-Id: I4943e53f425800a6e152bc4992dd41586b43aff8\n"
    },
    {
      "commit": "2b24ecfbb282276410a53bb35a15f91cb6c433d9",
      "tree": "b9eef5ce5a172b00cadc55f0f29b5e11ab51b3fa",
      "parents": [
        "2d468c5d73cc1cefbcfa8d98e30622c54756918c"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Tue Jun 15 14:26:21 2010 -0700"
      },
      "committer": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Tue Jun 15 15:19:40 2010 -0700"
      },
      "message": "add new video/audio presence icons in the framework resource dirs, and make them public.\n\n- add definitions for\n\npresence_video_away\npresence_video_busy\npresence_video_online\npresence_audio_away\npresence_audio_busy\npresence_audio_online\n\nin the public.xml, and update current.xml\n\n- the actual icons for the audio versions are not yet done, so I used the video versions as placeholders.\n\nChange-Id: I9e2be5dd05619cbdbbb61dc231e9da1984ddbb36\n"
    },
    {
      "commit": "3e03cfa3af8acf3aad0abc464d2bcab1225a971d",
      "tree": "44c017ea0b0a25f375e9c8275b7b0bf584f5da60",
      "parents": [
        "94f14aeca9e6c6d07b39a7f708eacadcfeb6fbd2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jun 13 12:07:00 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 14 14:08:20 2010 -0700"
      },
      "message": "Update build version information.\n\nChange-Id: If53f16d494255230859a30f561e9a78ec49c6c10\n"
    },
    {
      "commit": "32907cfb38bda2d3c052cf5139c5b592678fedbb",
      "tree": "78b2cb1f1ec2897628531bad2be0c90ecc53468f",
      "parents": [
        "e577e87a2d80890190f14edc4a5caf70d7c566bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 10 17:50:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 11 10:39:11 2010 -0700"
      },
      "message": "Adjust activity manager process OOM adj.\n\nModify OOM adj classes a bit, to take into account the new\nheavy weight app type, and give \"foreground services\" their\nown category to have a bettery chance to manager them when\nthings go wrong.\n\nAlso add some new code to battery stats to keep a history\nof changes to the battery level.\n\nChange-Id: I29f5ab6938777e1a7eafd7d8c38b5e564cc9f96a\n"
    },
    {
      "commit": "2fd73a452268d2acb6e72a1d23a422085ed3c510",
      "tree": "6b91573ce88e6d3851e522ac542b650ed2695fa3",
      "parents": [
        "f4f614f5edeeceddf1145df73b30f7066d00d7fa"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jun 11 11:45:12 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jun 11 15:29:49 2010 +0800"
      },
      "message": "Unhide camera metering mode API.\n\nChange-Id: Ia3ca83e2a0b5b322e5dbf9ae3d5c1d3b89e0fd31\n"
    },
    {
      "commit": "4d61f602bf67fe61256c23f090d6119992ad5160",
      "tree": "18eaea2ed99dea39f19ea3fe9836be3fc4503ba3",
      "parents": [
        "a6ef19a8f462ee1346a6c5ec21d047fdd5162b7e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 10 11:17:50 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 10 15:16:57 2010 -0700"
      },
      "message": "Switch stagefright\u0027s approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages.\n\nChange-Id: If8185ba329ce8b6663b1ad39a4efb0ad3be81df2\n"
    },
    {
      "commit": "438d0595121a7a2cdf19741e76e3c0e21a5c173d",
      "tree": "d4a76171b2eb52c472c2900eb6947ff073bed81a",
      "parents": [
        "8f1bfb001b522a370a65c8e4545183b7611f672b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 12:19:19 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 14:38:58 2010 -0700"
      },
      "message": "Introduce \"StrictMode\"\n\nThis is a new public API for developers to opt-in to strict rules\nabout what they\u0027re allowed to do on certain threads.  (this is the\npublic face of the @hide dalvik.system.BlockGuard, added recently...)\n\nIn practice this will be used for developers to opt-in to declaring\nthat they don\u0027t want to be allowed to do various operations (such as\ndisk I/O or network operations) on their main UI threads.  (these\noperations are often accidental, or even when they are fast come with\na good chance of being slow or very slow in some cases....)\n\nImplementation wise, this is just a thread-local integer that has a\nbitmask of the things that aren\u0027t allowed, and more bits for saying\nwhat the violation penalty is.  The penalties, of which multiple can\nbe chosen, include:\n\n  * logging\n  * dropbox uploading for analysis/reporting\n  * annoying dialog\n  * full-on crashing\n\nThese are all only very roughly implemented at this point, but all\nparts now minimally work end-to-end now, so this is a good checkpoint\ncommit before this gets too large.\n\nFuture CLs will polish all the above 4 penalties, including\nchecksumming of stacktraces and minimizing penalties for duplicate\nviolations.\n\nChange-Id: Icbe61a2e950119519e7364030b10c3c28d243abe\n"
    },
    {
      "commit": "b7bb3b3df6cb3743ee43b71455d9525762e55b45",
      "tree": "948830404473ff0ac41bcf525f52c76f81912429",
      "parents": [
        "7a68d3686aace4781ee6c25d8ab8704bebee34af"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jun 06 22:47:50 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 07 11:01:29 2010 -0700"
      },
      "message": "Fix bug in reporting a processes\u0027s dependent component.\n\nAlso add new action to show an app\u0027s details.\n\nChange-Id: I6ad3b3ac8462f5acf726ce76130882a262adff92\n"
    },
    {
      "commit": "860755faa6bdd3c2aeae49c05b87b5bc080ae60c",
      "tree": "49cb794a0de5b8f505048533ac5daf02e95c94b1",
      "parents": [
        "f8acea6ccbdd7e7283b1dc439f49c72a937f746d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 03 18:47:52 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 04 10:09:13 2010 -0700"
      },
      "message": "Add support for heavy-weight applications.\n\nOnly one can be running at a time, their process can not be killed,\nand a notification is posted while it is running.\n\nChange-Id: I843015723947e0c934ae63a1aeee139327c0bc01\n"
    },
    {
      "commit": "c109190b6984da6cba4cea44a0304b6da12d77e6",
      "tree": "2ef51852fa763a8df8a9e980e4fef127c190546f",
      "parents": [
        "df0364de6f7be68e003729c262fe2731b82ae10e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 20 17:38:21 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 27 15:59:05 2010 +0800"
      },
      "message": "Add support for gps altitude EXIF tags.\n\nAlso improve the precision of getLatLong().\n\nChange-Id: Id2c60f0d1d19e9da173b5ec1228f03c2195e189f\n"
    },
    {
      "commit": "01ac80b715881db22bde8b31633dd8a4dc375389",
      "tree": "2a49fc9e6ff824f729f64bdacb3b48835d99e367",
      "parents": [
        "11c6847d5960edeb0f15d0fd34045c89bd302d41"
      ],
      "author": {
        "name": "Mark Vandevoorde",
        "email": "mtv@google.com",
        "time": "Fri May 21 15:43:26 2010 -0700"
      },
      "committer": {
        "name": "Mark Vandevoorde",
        "email": "mtv@google.com",
        "time": "Fri May 21 15:43:26 2010 -0700"
      },
      "message": "Add Geocorder.isImplemented()\n\nThe Geocorder interface is not part of the Android core.  It\nrequires a backend service which may or may not be available\non a device.  The new isImplemented static method allows\napps to discover whether the Geocorder is in fact available\non the device.\n\nChange-Id: I2b5cf7bcc9cce4766bcbb156e91edf34b01f9296\n"
    },
    {
      "commit": "71677f84e7705aa48b04829538b954a13cd11dec",
      "tree": "3d5239cffd784bdd02cecf2625dddf60735a8661",
      "parents": [
        "03ca216ac19ea4e7afcb183c20c7c780f0d97756"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 21 14:03:45 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 21 14:03:45 2010 -0400"
      },
      "message": "Unhide new location manager APIs:\n\nCriteria.java\nLocationManager.java\nNew APIs for criteria based location requests and single shot support.\n\nGeocoderParams.java\nGeocodeProvider.java\nLocationProvider.java\nAPIs for network location unbundling.\n\nChange-Id: I3311fa01ce76fe4cba3537617e5b1c8d1f1d42b7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "bea97a897b9102d5d75bcb7a41e02eaff9a7506d",
      "tree": "80894ff99019e573f50527729f3659b2f73a9243",
      "parents": [
        "b39b0f32d1c24e326886d8d27c8ad7dde38e28d0",
        "2dc7c6c4153380fc64b99d37d763d3f0d1cac04d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 09:22:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 19 09:22:21 2010 -0700"
      },
      "message": "am 2dc7c6c4: merge from open-source master\n\nMerge commit \u00272dc7c6c4153380fc64b99d37d763d3f0d1cac04d\u0027 into kraken\n\n* commit \u00272dc7c6c4153380fc64b99d37d763d3f0d1cac04d\u0027:\n  Add and document .nomedia constant for MediaStore (Issue 6365)\n"
    },
    {
      "commit": "2dc7c6c4153380fc64b99d37d763d3f0d1cac04d",
      "tree": "806ce47e9628fdff95da21144b6be2ef53f6f8f8",
      "parents": [
        "faf9a78363b0c773b95c9b43263d788aee313054",
        "e02a63f012b69ce60a94de5980a1c615b26ff9c5"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 09:20:22 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 09:20:22 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I94b3aacb3478b1d9e0751c02bb301d5f9a2cf05c\n"
    },
    {
      "commit": "74323fd1ab8eb11beea286d5c213c63e4b803141",
      "tree": "6c3108b7da5b5fb32d2b05ff3126b102a138b6d8",
      "parents": [
        "4ec730cabb68ee8347c6aa5dc929b09651275aca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 17:56:23 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 18:16:35 2010 -0700"
      },
      "message": "Update NativeActivity to allow direct surface access.\n\nNo actual native API for using a surface, but it\u0027s a step.\n\nChange-Id: I627f26b705abc7a05edf9117411abfacf0fae64a\n"
    },
    {
      "commit": "dc8a7f69d7df5f1ca29763995a0d55acf7936fc6",
      "tree": "8a136169f8ff4548bfabadf95e3305589ff21677",
      "parents": [
        "400907086ac1a304daa50a72013ac27a9c63b26b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 11:29:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 10:46:33 2010 -0700"
      },
      "message": "Add new API to take over a window\u0027s Surface.\n\nChange-Id: Iad6245faadc95f19ea63c8e229a1c02e9188f69e\n"
    },
    {
      "commit": "8ce072d579e0c0e9329b5a3830155de8da7de4cf",
      "tree": "3ade3dc9714f1deeeb6d0c147b9c6224701c75e1",
      "parents": [
        "1152df7e82f1501e72aee1641d028bd7201f6d0b"
      ],
      "author": {
        "name": "Karl Ostmo",
        "email": "kostmo@gmail.com",
        "time": "Sat Jan 30 15:15:39 2010 -0600"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 17 14:57:06 2010 -0700"
      },
      "message": "Add and document .nomedia constant for MediaStore (Issue 6365)\n\nChange-Id: Ic9c4a784187cd1264584992411916a5beeefd864\n"
    },
    {
      "commit": "e339c5edbebedf446581f18ad70214007309bf4b",
      "tree": "7d03e881cb3e1300aef948eafb85396a58d38e1c",
      "parents": [
        "aef87aa90cf3a6cf9098477683b07994697c45fe"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 13 19:31:02 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 12:40:54 2010 +0800"
      },
      "message": "Add camera focus distances API.\n\nApplications can use this API to estimate the distance\nbetween the subject and the camera.\n\nbug:1955650\nChange-Id: Ie6c8ea4971759cab6c9bcdda2c5ceb5925791c27\n"
    },
    {
      "commit": "d6e24ca28b0b6384fd9b3117713402a1f43fdef8",
      "tree": "f97eb1d9a5b87097062726c20fe204b862a46b07",
      "parents": [
        "e8621534db97070cc40f729d1eb8074f2e69df9d",
        "4adacd23d4c91569b16fe50419f1a91f68d805bd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 14:56:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 14:56:00 2010 -0700"
      },
      "message": "am 4adacd23: merge from open-source master\n\nMerge commit \u00274adacd23d4c91569b16fe50419f1a91f68d805bd\u0027 into kraken\n\n* commit \u00274adacd23d4c91569b16fe50419f1a91f68d805bd\u0027:\n  Add support for EVDO Rev B\n"
    },
    {
      "commit": "4adacd23d4c91569b16fe50419f1a91f68d805bd",
      "tree": "38628f3446882f39ff46d6d5a2cb655fc3ca71ff",
      "parents": [
        "ccfd99b1e2a64c72ec433ebf5cf98d644ab24614",
        "0a5174a6e947d5cbeb8846a1273a90b6de065cbf"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 14:53:25 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 14:53:25 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: If6730b50627b2231bd345e594d8d30a37557849e\n"
    },
    {
      "commit": "afbc5fad91a5da627b908526b9604833d8d37bcb",
      "tree": "75a37c7ecd14922d9dacef6e45843ba98152d5fe",
      "parents": [
        "1d9b25a0cc2403bc1e74c8ac82088bf7e44cf2c3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 12 10:43:22 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 12 10:43:22 2010 -0700"
      },
      "message": "Fix build Remove from API 9 definition the two methods that were\n removed from API 8.\n\nChange-Id: I4b443a257b5674a7493ccda0a0427999e369fb4f\n"
    },
    {
      "commit": "08eff49f09c4f4a725979166e61085f8bb30fb1f",
      "tree": "fa959951a1b58662a9b60b5bd6859a577c4b30ee",
      "parents": [
        "550884e2f3b551cd05ff669cab08348e053ee29b",
        "d9712b69ce529fbf50b3b837032c1dc40e623381"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed May 12 07:56:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:56:29 2010 -0700"
      },
      "message": "am d9712b69: am b1235a57: Merge \"Hide two audio focus methods.\" into froyo\n\nMerge commit \u0027d9712b69ce529fbf50b3b837032c1dc40e623381\u0027 into kraken\n\n* commit \u0027d9712b69ce529fbf50b3b837032c1dc40e623381\u0027:\n  Hide two audio focus methods.\n"
    },
    {
      "commit": "d9712b69ce529fbf50b3b837032c1dc40e623381",
      "tree": "09f90db7ddaa8849cadc66d02ef70de1a94cc7a0",
      "parents": [
        "bbafdc6403488b0f7ad564a5a0ff2eed5b87ab7b",
        "b1235a57a09174179553acecef2370354bdcbf41"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed May 12 07:50:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:50:19 2010 -0700"
      },
      "message": "am b1235a57: Merge \"Hide two audio focus methods.\" into froyo\n\nMerge commit \u0027b1235a57a09174179553acecef2370354bdcbf41\u0027 into froyo-plus-aosp\n\n* commit \u0027b1235a57a09174179553acecef2370354bdcbf41\u0027:\n  Hide two audio focus methods.\n"
    },
    {
      "commit": "5f53f0883a507b9d4b9b9891af560a64f746d149",
      "tree": "894e84cbdb584f3d1a0f49e4be59017a488b0832",
      "parents": [
        "e1d7dca608ced72c75bf906c7267a1ef30349826"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue May 11 14:19:40 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue May 11 14:28:38 2010 -0700"
      },
      "message": "Hide two audio focus methods.\n\nChange-Id: I53ddf736892cde8edfaffa7d69dd9c234df52efa\n"
    },
    {
      "commit": "0a5174a6e947d5cbeb8846a1273a90b6de065cbf",
      "tree": "e74142272fa079a3f8050a0a7486921f001a1705",
      "parents": [
        "24440cf8a9431291bdcaa77b418e6c4715932507"
      ],
      "author": {
        "name": "Naveen Kalla",
        "email": "nkalla@codeaurora.org",
        "time": "Wed Apr 21 14:48:03 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue May 11 10:12:07 2010 -0700"
      },
      "message": "Add support for EVDO Rev B\n\nChange-Id: I8588e8b342c51f4b79bced8ef8fe60d57f07aefa\n"
    },
    {
      "commit": "ca099614841bc619f217dfa088da630a7eb1ab65",
      "tree": "7c804ef7da518a1193d481e325909e0240bff1c7",
      "parents": [
        "7768892c82f3b037c19c608c6d8309938fd5ca21"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 06 16:47:30 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 15:14:56 2010 +0800"
      },
      "message": "Add continuous focus mode constant.\n\nbug:2612447\nChange-Id: I9bc3f5a47ad50722a265d50b1d28fb82a2253dc9\n"
    },
    {
      "commit": "579e08e657a8dc9274b297b5dda95a4383cc3642",
      "tree": "0b1113f2c57867bd95b7cba17a315363845b389a",
      "parents": [
        "33232d26bb51bf015fdf7dbd7a34c2b67745d72a",
        "f78964490d8098387d51444c87bf520ad3f674e2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 16:00:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 16:00:01 2010 -0700"
      },
      "message": "am f7896449: merge from open-source master\n\nMerge commit \u0027f78964490d8098387d51444c87bf520ad3f674e2\u0027 into kraken\n\n* commit \u0027f78964490d8098387d51444c87bf520ad3f674e2\u0027:\n  Add new keycodes for the convenience of Japanese IMEs\n  Call register_localized_collators() with the current locale.\n  Fixed deserialization problem in DatePicker.\n  Fix for bug 2467152 files with spaces fail to open.\n  Set alpha value for newly created dim surface.\n  telephony: Fix CID when CID is unknown\n"
    },
    {
      "commit": "f78964490d8098387d51444c87bf520ad3f674e2",
      "tree": "7384d69f165ea9a1d1a004a54b05155d29f1249e",
      "parents": [
        "fc12b5be2ee49ba2392274d413bd5d759c03c346",
        "1e936da287e1836502bf91b53468076726b7e1ee"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 15:57:42 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 15:57:42 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ia9e1f4e049f5870386ea29ddb6e3ef028ea918da\n"
    },
    {
      "commit": "69969e48f2bca9339662dddfacff0bbf6374ed7f",
      "tree": "073be8188794a4542611e624a05fbbefaef98fc3",
      "parents": [
        "f24e66dbb99b52e3ef8e56b66c807ff1d5129fca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 04 11:40:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 05 15:17:26 2010 -0700"
      },
      "message": "First pass at NativeActivity.\n\nThis is a rough sketch of the new pure-native API, which you can\nuse through a NativeActivity in your manifest (no Java code in\nthe .apk needed!).\n\nIntentionally no docs yet, the API is still being seriously\nmessed with.  But it works.\n\nChange-Id: I0e916d58a0d159ecaf3689e41834eb8dc681c0c0\n"
    },
    {
      "commit": "b032bc037399110f41cfdb838a792b3c65756323",
      "tree": "c676df6b6fbb6e74c4dadcf0875556dc9ae5f396",
      "parents": [
        "f1fdf3c7e835c37a3137d5eed101f224d56f36ed"
      ],
      "author": {
        "name": "mogimo",
        "email": "mogimogio@gmail.com",
        "time": "Sat Oct 03 03:13:56 2009 +0900"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 05 13:37:21 2010 -0700"
      },
      "message": "Add new keycodes for the convenience of Japanese IMEs\n\nChange-Id: Ibd308cef11261147856258595f6ca0137e03e05c\n"
    },
    {
      "commit": "1443fd096b66013e8a39abedbad5be148f4406ff",
      "tree": "14cf4be5570b732c35ad3d19042ec6993f91f033",
      "parents": [
        "fefe7a225e54c8493e5145c24cf579d4544196d3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 19:26:18 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 19:26:18 2010 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I200b8fd7de329133c44fdb66e2bd2b09ab12637d\n"
    }
  ],
  "next": "14cee9f688c32d63d8521188e7422811629bb7c2"
}
