)]}'
{
  "log": [
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "51c5a0c50e8ec5e2cb59bd60f85f3e612eb08931",
      "tree": "653dcc743e4b1f8bcbb4df099a5ffb9375b186e3",
      "parents": [
        "bda5780d39d5483dea938f2b64f6b2e0fb383e22"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 10:50:38 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 11:28:16 2010 -0800"
      },
      "message": "Added accessors for view overscroll modes\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "540bc0348ab40727a054cdadcf098b098c0bfb0b",
      "tree": "2df1a610f2a43d687de1a7146ff82544d6b1678c",
      "parents": [
        "e354bba55dd31e2c66424091fe4bfd68ae19274e"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Mar 04 21:55:50 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Mar 05 09:24:42 2010 -0800"
      },
      "message": "Unhide reconnect() in Camera.\n"
    },
    {
      "commit": "ff846009ecb6df669feeb5d5feecf4b304b8b9a5",
      "tree": "bdd79ed5dd614802e5ccdc4b263c1009cabd75ef",
      "parents": [
        "1533020321c3cb5a7c652ce602c04a0300d9ed10"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 01 10:05:30 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 04 21:49:35 2010 -0800"
      },
      "message": "Unhide CamcorderProfile and CameraProfile Java API\n\nbug - 2375978\n"
    },
    {
      "commit": "8e060c0f67de3e158bd5609f7772d644fc88e1f2",
      "tree": "75a1ef0bc938c68279e7fe4d880754437db354d3",
      "parents": [
        "fe73ce15fcd215b6886c1a76fe40d4610a86c1c8"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Mar 04 11:46:10 2010 -0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Mar 04 11:46:10 2010 -0800"
      },
      "message": "Update current.xml to fix build error.\n"
    },
    {
      "commit": "7a67f156fb5b84c072c0b2bce30c78e55c96db84",
      "tree": "ac34135e749ec3321fd2247142da011bc62eacdc",
      "parents": [
        "055c986ab841f8f758398841730f1e90313b132a"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Feb 11 11:11:48 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:10:28 2010 +0800"
      },
      "message": "Remove native options.\n"
    },
    {
      "commit": "055c986ab841f8f758398841730f1e90313b132a",
      "tree": "6f1aeb48706161c57a657b12a9fab102345e9bbf",
      "parents": [
        "3f5144b8a4b45a05cf7c1b0bd0422d0bd9ecb59b"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Tue Feb 23 10:45:42 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:03:48 2010 +0800"
      },
      "message": "Add location provider name to gps-processing-method in EXIF header.\n"
    },
    {
      "commit": "0fc6bc4cac6391f048f0f2748b3e979effe0924b",
      "tree": "8c8327ef3f9f1b24a3732fe2c6e9b8186b5f8737",
      "parents": [
        "e58aa0d964f91597cf3eecf16ff72988e6c5f5a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 26 19:36:35 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 03 17:01:32 2010 -0800"
      },
      "message": "Clean up MediaRecorder for public Java SDK\n- update comments and fix a check in setAudioChannels()\n\nbug - 2362412\n"
    },
    {
      "commit": "c37cb2469578f7d240615affb042e808b32ba5b2",
      "tree": "c6eff49bb8e997cfe1174cf12cb057e3a74bbba7",
      "parents": [
        "1e5e8f262d489332356c62ff22647bb7d5f8b4ba"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 24 17:44:46 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 03 15:46:48 2010 -0800"
      },
      "message": "Feature to return an extra in the cursor that keeps the spinny going.\n\nIf a search provider returns an extra in the cursor with the key\nSearchManager.CURSOR_EXTRA_KEY_IN_PROGRESS, and the value true, then\nthe spinny in the search dialog will not stop, but the cursor\ncontents will still be used to update the results. This way, partial\nsearch results can be sent while the user is informed that the search\nis still in progress.\n"
    },
    {
      "commit": "0b49ab5cae98d5f27b490b6de35d92e7a63a2e64",
      "tree": "b1e26e54eec07b623e20af711d9d41c318a05739",
      "parents": [
        "97106ab5af0fdba00d6dbda4767b953e0a5829f4"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Mar 02 11:16:17 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Mar 03 09:20:36 2010 +0000"
      },
      "message": "Add SearchManager.SUGGEST_COLUMN_TEXT_2_URL\n\nThis column overrides SUGGEST_COLUMN_TEXT_2. SearchDialog\nand QuickSearchBox render the value of this column as a URL in\ngreen.\n\nPart of the fix for http://b/issue?id\u003d2380681\n\nChange-Id: I6735e0eba90e24c81f9e72520f257e5e61796d7a\n"
    },
    {
      "commit": "8754be5cac3aca54f83e2eb2c199bc01e934034e",
      "tree": "1a13c8ad2479a358d1ee12d6136c5054074e95a8",
      "parents": [
        "bd80e560ac09c42b8081fe555d74a922ebca080a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 19:39:50 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 19:39:50 2010 -0500"
      },
      "message": "Hide GeocoderParams class from public API.\n\nThis does not need to be publc until we unbundle the network location provider.\n\nChange-Id: Ib4109d2392624242eee33f271a8151588e3f0c56\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "14b60e747cdf16b79bb755b42dd766348c4f1880",
      "tree": "a9806c7d07ac081cc2a623f983b2f421d582193b",
      "parents": [
        "d2b41b6e7d23c4d2cb2b0fb58f2bbef94c95b5d1"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Mar 01 14:47:47 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Mar 02 11:50:39 2010 -0800"
      },
      "message": "add warning in finalizer. deprecate protected members.\n\nfinalizer shoudl not be called ever. add a warning to say that.\nadeprecate a few members in SQLiteProgram.java. they should not\nhave had protected access level. shoudl be package.\n"
    },
    {
      "commit": "9147a0ed64917e82c3f70632bbc3a91895cc1d55",
      "tree": "a6abb42892ca6d17af443e71a14d62e069a5b16e",
      "parents": [
        "00611034cacc2d22a2e875509e910a142e359ab6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 02 11:24:39 2010 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 02 11:24:39 2010 -0800"
      },
      "message": "SslCertificate should use Dates - fixing api for build\n\nAlso fixing missing @deprecated noticed when updating API\n"
    },
    {
      "commit": "ef05e076ced1a32c5c0aaee28403779834adb2ba",
      "tree": "20dcf607adf508481d57610937ceab6ef2c6aee2",
      "parents": [
        "883dbacb12a003f8f46c3faab26b744fdef649a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "8cbb8f5e1f939b03515cb4d5942c3fcb226efb9e",
      "tree": "82706f029d7d318cb034993cc19625f47ce28903",
      "parents": [
        "7714d7132e4059a1256581b3599a5808b6a6f294"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Feb 28 23:19:55 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 01 15:32:33 2010 -0800"
      },
      "message": "Unhide zoom API.\n\nbug:2458926\n"
    },
    {
      "commit": "61c9d4b4509aeaab1fcad24fb5a63c874d2fd941",
      "tree": "dfe525c74d45736e5287574c21f517cfa7e17ad5",
      "parents": [
        "e0dab5bf6744812e7059ae63b31ac835479cb321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Mar 01 14:12:10 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Mar 01 14:23:23 2010 -0800"
      },
      "message": "Let apps change the bottom strip in TabWidget.\nBug #2478088\n\nAlso expose a few useful APIs.\n"
    },
    {
      "commit": "2036dbab1726c34953360a7a56d6b9ef1f2aa7dd",
      "tree": "73037324cfbc6eb5baa32e46b05d9d37af44063f",
      "parents": [
        "b4e193991f9efc74978c004bcd9463cc5e85250c"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Mon Feb 15 02:15:37 2010 -0800"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Mon Mar 01 10:36:15 2010 -0800"
      },
      "message": "Add a new WebCoreWorker thread to handle the tasks\nwhich should not block either UI or WebKit. It handles\nlocal file access, cache access and trim cache.\n\nMove createCache, saveCache and most of getCache out\nof WebCore thread so that slow IO and database will\nnot affect loading performance. getCache can be still\ncalled from WebCore thread in the uncommon cases\nlike redirect and POST validation.\n\nMove cache ticker from WebCore thread to WebViewWorkerThread.\n\nMove setCookie from WebCore thread to WebViewWorkerThread.\n\nRemove the unreferenced files in the cache directory\nwhile trim cache.\n\nConfirmed with our SQL expert, Vasu, there is no need\nto wrap clearCache with end/startTransaction any more.\n\nhttp://b/issue?id\u003d2414792\nhttp://b/issue?id\u003d2475242"
    },
    {
      "commit": "87bba1ee14279bb14a28d42e27c4ef66d9967bf8",
      "tree": "915eb0be9f5fac21d24bacf76438cafb9f14bae0",
      "parents": [
        "8c49df4f36bee2878ab0ff7dc99dff60dc7354fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 23:32:48 2010 -0800"
      },
      "message": "Move DeviceAdmin APIs to android.app.admin.\n\nAlso add ability for admins to hide themselves when not in use,\na facility for admins to not allow other admins to reset\ntheir password, and debug dumping.\n"
    },
    {
      "commit": "61a449393cf29f3960b4e03ec3fad652dac51b88",
      "tree": "085f5ca0516b6016495080b46ec6d5d0f901b2ea",
      "parents": [
        "7895da44e32e9c76e07663aae7084f11cbacbbdb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 26 18:06:26 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 26 18:06:26 2010 -0800"
      },
      "message": "fix [2475541] Deprecate Sensor.TYPE_ORIENTATION\n\nIt\u0027s much better to use SensorManager.getRotation() instead.\n"
    },
    {
      "commit": "340acd870ad05ec7b18ea4d7b3f6fa31b2360dd4",
      "tree": "08296a9d70c12073c61c2aaa54491924618480d3",
      "parents": [
        "3f016cfd482721ded01109b8f5c07dfa214ccb05"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 11:46:00 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 15:20:56 2010 -0800"
      },
      "message": "Add an extra which allows to query *only* for the voice search language preference.\nThis will be used by e.g. LatinIME to avoid extra computation when this is all that\u0027s\nneeded (probably a common use case for this API).\n"
    },
    {
      "commit": "1f9e1b4c37c135b75cf064cbb5675aa576e2942a",
      "tree": "1ca95439c91aaa52a74fcbf1833869c614602abe",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 13:14:31 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 14:32:24 2010 -0800"
      },
      "message": "Remove public variables in PackageManager\nDont invoke getInstallLocation for forward locked apps.\nIf INSTALL_ON_SDCARD is selected as default, forward locked\napps are not being installed because of conflicting flags.\n"
    },
    {
      "commit": "1b487ec44b6b5594914d52fa427bec4f29a60541",
      "tree": "a781927b74a306c4d1e5b028221057d0c4a42af1",
      "parents": [
        "f8219914f2269fb0932e140c966f24e47438f8fe"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 26 10:57:55 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 26 13:07:54 2010 -0800"
      },
      "message": "expose some sync control methods\n- ActiveSyncInfo\n- ContentResolver.addStatusChangeListener\n  - SYNC_OBSERVER_TYPE_SETTINGS\n  - SYNC_OBSERVER_TYPE_PENDING\n  - SYNC_OBSERVER_TYPE_ACTIVE\n- make the ContentService resilient to nulls passed in to the\n  status change listener registration and unregistration calls\n\nbug http://b/issue?id\u003d2337197\n"
    },
    {
      "commit": "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
      "tree": "b18ff4aebe681cd501d79522ca3244e0b0720c9e",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 25 17:07:14 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 12:48:21 2010 -0800"
      },
      "message": "Add dialog to display storage users when enabling/disabling ums\n\nSome error dialogs and related strings\nMountService changes to follow unmount path when enabling ums.\n\nPlease note that MountService api setUmsEnabled does not return\nerror codes for now. This is a known limitation.\n"
    },
    {
      "commit": "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104",
      "tree": "d1c48058c8953b0806785f6b8b9e6901655936ef",
      "parents": [
        "d20958551c453c30d2caa32ac05a4f0c83776a5f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Feb 26 12:35:55 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Feb 26 12:35:55 2010 -0800"
      },
      "message": "fix the build.\n"
    },
    {
      "commit": "5cb70b54156fb305d579a1cc167424c8705bfdf7",
      "tree": "0a78a1238c89d57891b1c75fb52416131c26f4f6",
      "parents": [
        "08bbffb049c135c5dfd40d261118c90d1a6dc111"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 17:01:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 11:23:24 2010 -0800"
      },
      "message": "Rename Display.getOrientation() to Display.getRotation().\n\nUpdate various docs.\n"
    },
    {
      "commit": "08bbffb049c135c5dfd40d261118c90d1a6dc111",
      "tree": "0d8103483ea3f25fd5970a6c1ad4e0d90b7bde02",
      "parents": [
        "16f6354be4bd649c0da66cf75f11f1088293aca2"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 25 11:16:22 2010 +0000"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 11:16:17 2010 -0800"
      },
      "message": "Support CharSequence lists+arrays in Bundle+Intent\n\nFixes http://b/issue?id\u003d2468093\n\nChange-Id: Id82686f6ca8c9501f6db8a07018278a78ddacd05\n"
    },
    {
      "commit": "24b326a8978bf78e3e560723dde221792784325b",
      "tree": "a675e74ca0e7f430cf4f1386032154fc8895fd96",
      "parents": [
        "4d98579f43026a8213b0570e7836648902741005"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Feb 20 17:47:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Feb 26 14:04:43 2010 +0800"
      },
      "message": "Unhide exposure compensation API.\n\nbug:2375993\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "3dda518a4fd57cdded3afa50d8aa206501de7fc6",
      "tree": "4f94ac2f5cf057501c9cbd9f4f814432c701443b",
      "parents": [
        "27eb24148a935d10c2c490205174c59a47e76dc6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 16:06:18 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 17:23:54 2010 -0800"
      },
      "message": "Add \u0027restoreAnyVersion\u0027 attr for apps that want to restore \"future\" data\n\nIf a backup-participating app sets android:restoreAnyVersion\u003d\"true\" in its\nmanifest \u003capplication\u003e tag, then its agent will be invoked for restore\neven if the available dataset was created by a later version of the app\nthan is currently installed on the device.  This will not typically be\na problem for third party applications, since for them the installation\nand initial data restore are tightly coupled, but it can cause serious\nproblems for applications which are both preinstalled on the system\npartition and overridden by later updates.  The primary difficulty\nthat this new attribute addresses is this:\n\n1. User buys a Nexus One, Market self-updates, and the user installs some apps.\nAt this point the backup data on the server may indicate that the version of\nMarket which originated its bookkeeping is newer than the stock N1 Market app.\n2. User loses their phone, and buys a replacement N1.  At setup time, Market\nhas not yet had a chance to self-update, so when the restore comes in, it\u0027s\ntagged as being from \"the future\" and so the restore is refused.  No apps get\nreinstalled.\n\nBug: 2442127\nChange-Id: I076a9553dc613e5c3189350e778315718ed1ed2b\n"
    },
    {
      "commit": "eebc8e2e8fa23b2957fec5838acc874af9a64a3d",
      "tree": "cdea216dabdb2d4b81a12c7eb53916080508a1c3",
      "parents": [
        "b9e5cc3c3a6f1d6421a7c4b2c0aa63beebfd1ebc"
      ],
      "author": {
        "name": "Erik",
        "email": "roboerik@android.com",
        "time": "Thu Feb 18 13:27:19 2010 -0800"
      },
      "committer": {
        "name": "Erik",
        "email": "roboerik@android.com",
        "time": "Wed Feb 24 11:05:14 2010 -0800"
      },
      "message": "b/2441327 Added add account intent to public api.\n\nAdded ACTION_ADD_ACCOUNT intent and EXTRAS_AUTHORITIES strings to the public\napi so that Calendar can send users to the add account screen directly instead\nof via the sync settings page.\n"
    },
    {
      "commit": "520f87f595840729aa47a69da2edd72a72a5eb9b",
      "tree": "f4eda199cbb301d3eb1878e2b8596f528fb5a515",
      "parents": [
        "834481cf8e2eed123c1ae183c3a662e7b5d3d739"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 10:10:41 2010 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 10:10:41 2010 -0800"
      },
      "message": "Fix build.\n\nThis puts the deprecation status change in the right place.\n"
    },
    {
      "commit": "c4e1bf7282d454ba3e9ba16cde5b660d79dd5345",
      "tree": "a63af87e09642def29fd0bff73f3761cbe856652",
      "parents": [
        "6c0df0b47328655aa450f406ffb39fda5703a55c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Feb 22 17:07:36 2010 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 07:37:38 2010 -0800"
      },
      "message": "Add class init stats to alloc counters (API change).\n\nAdd calls to retrieve class initialization stats via the allocation\ncount mechanism.\n\nFor bug 2461549.\n"
    },
    {
      "commit": "2e1818a4d16c3309660f27286c77d8d1eee95a25",
      "tree": "481dc0c3d6dc0dd15238d44907260446115146ea",
      "parents": [
        "d88602df36d51bf63f599a2646fe96b4d27c1943"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 22 14:49:13 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Feb 23 17:05:44 2010 -0800"
      },
      "message": "New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming.\n"
    },
    {
      "commit": "29274dc363229a3a4f18c7341f90bd04e39c2c07",
      "tree": "23e8796bc12bdbaa7ac519da38f87ef2e8aee67f",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:25:33 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:27:41 2010 +0100"
      },
      "message": "Also fix the API description file after UI_MODE_SERVICE rename.\n"
    },
    {
      "commit": "53332883543868fb83e111a07306368b7772b340",
      "tree": "39fe760618d617d4e28d08e2bd00dbd33f055926",
      "parents": [
        "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 16:15:43 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 21:42:39 2010 +0100"
      },
      "message": "Manager for controlling the UI modes.\n\nThe ui modes can be controlled with the UiModeManager class, which\nis can be retrieved as a system service via getSytemService(Context.UIMODE_SERVICE).\n\nThe class is necessary so that CarHome can be unbundled and other apps can\ndisable the car mode. Its currently a hidden class, since I\u0027m not sure if this\nis the best way to provide this functionality to the user.\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "edcdbb6d3bb6f66e9fd91b15ef45f4cec5694393",
      "tree": "f76806fb2d5fffc381ca292a59ce05afe2b36ace",
      "parents": [
        "b427a7b0e4f335b27484d4b46cfa48c0cc601755"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 18 16:00:43 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 09:04:27 2010 -0500"
      },
      "message": "Add new action for launching the user\u0027s music player app.\n\nandroid.intent.action.MUSIC_PLAYER\n\nhttp://b/2237931\n"
    },
    {
      "commit": "1bb6906c7a903ee6427c8ff37bdc5896c386ff73",
      "tree": "bdb540e8ba002ae648456c0d1af905ac7edd3676",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:02:12 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:24:07 2010 -0800"
      },
      "message": "Automatically restore app data at install time\n\nWhen an application being installed defines a backupAgent in its manifest, we\nnow automatically perform a restore of the latest-known-good data for that app.\nThis is defined as \"data backed up by this app from this handset, if available;\notherwise data for this app as it existed when the device was initially\nprovisioned.\"  If neither option exists for the app, no restore action is\ntaken.\n\nThe CL involves major changes in the Backup and Package Managers...\n\n* The Package Manager\u0027s act of installing an application has now been split\ninto two separate phases, with a data-restore phase optionally occurring\nbetween these two PM actions.  First, the details of the install are performed\nas usual.  Instead of immediately notifying install observers and issuing the\ninstall-related broadcasts, the in-process install state is snapshotted and\nthe backup manager notified that a restore operation should be attempted.  It\ndoes this by calling a new API on IBackupManager, passing a token by which it\nidentifies its in-progress install state.\n\nThe backup manager then downloads [if possible] the data for the newly-installed\napplication and invokes the app\u0027s backupAgent to do the restore.  After this\nstep, regardless of failure, it then calls back into the Package Manager to\nindicate that the restore phase has been completed, supplying the token that\nwas passed in the original notification from the Package Manager.\n\nThe Package Manager then runs the final post-install actions: notifying install\nobservers and sending out all the appropriate broadcasts.  It\u0027s only at this\npoint that the app becomes visible to the Launcher and the rest of the OS.\n\n... and a few other bits and pieces...\n\n* The ApplicationInfo.backupAgentName field has been exposed to the SDK.  This\ncan be reverted if there\u0027s a reason to do so, but it wasn\u0027t clear that this\ninfo needs to be hidden from 3rd party apps.\n\n* Debug logging of restore set IDs and operation timeout tokens [used during\nany asynchronous Backup Manager operation] are now consistently in hex for\nreadability.\n\n* We now properly reset our binder identity before calling into the transport\nduring restore-set operations.  This fixes a permissions failure when a\nsingle-app restore was attempted.\n\n* The \u0027BackupTest\u0027 test app is no longer lumped onto the system partition\nby default.\n\nChange-Id: If3addefb846791f327e2a221de97c8d5d20ee7b3\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "79375f761922b208e2e50ff13a63552c9d01567b",
      "tree": "7966ee6e151299cf9c284774159f3dd883fd6071",
      "parents": [
        "9599452dd9c001cc2217175227514ef9ac631cd9"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 18 19:01:47 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 18 19:19:49 2010 -0800"
      },
      "message": "Two big additions to the voice recognition APIs:\n\n* Allow activities satisfying RecognizerIntent.ACTION_WEB_SEARCH to\n  point to the class name of a broadcast receiver which returns details\n  about the voice search implementation in an ordered broadcast response.\n  Provide a convenience method for getting the intent to fire for this\n  info. This can be used to get the current language preference and the\n  list of supported languages, and is extensible for future uses.\n\n* When creating a RecognitionManager, allow the caller to optionally specify\n  a specific component of a voice recognition service on the device that they\n  want to use. This way, an app can still use its own service through\n  RecognitionManager, even if it\u0027s not the one chosen the user in settings.\n"
    },
    {
      "commit": "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
      "tree": "83fa38d654d5bf93315b12423a7e9aa81ec45f9e",
      "parents": [
        "a696f5d667227365da732481770767dcb330dd23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 19:46:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:47:34 2010 -0800"
      },
      "message": "Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes\n\nThis is a bunch of reworking of how configuration changes are handled:\n\n- When orientation is changing (for whatever reason), the window manager no\n  longer tries to pre-emptively compute a new configuration.  Instead, it\n  just determines  change is happening and tells the window manager.\n- The activity manager is now responsible for giving the window manager the\n  final configuration it is using.  This is both so it knows whem the\n  activity manager is done with its configuration updates, and so the window\n  manager can use the \"real\" configuration.\n- When an orientation or other configuration change is happening, freeze the\n  screen and keep it frozen until the activity manager has given us the\n  final configuration.\n- The window manager can now send new configurations to its clients during\n  its layout pass, as part of a resize, if it has determined that it has\n  changed.  This allows for a new View.onConfigurationChanged() API for any\n  view to easily find out when the configuration has changed.\n- ViewRoot now also works with the activity thread to make sure the process\u0027s\n  current resources are updated to the new configuration when it receives one\n  from a window.  This ensures that at the time onConfigurationChanged() and\n  other view callbacks are happening, the correct configuration is in force.\n- There is now a sequence number associated with Configuration, which\n  ActivityThread uses to avoid using stale configurations.  This is needed now\n  that it can receive configurations asynchronously from both the window\n  manager and activity manager.\n- The hack for keeping the locale has been removed, and underlying problem\n  fixed by having Configuration initialize its locale to \"unknown\" instead of\n  a valid default value.\n"
    },
    {
      "commit": "a696f5d667227365da732481770767dcb330dd23",
      "tree": "0a89f08df3f88daea3f29948c8d5cdd7675a3fff",
      "parents": [
        "be8af08cf4cf9384b3fa13c853c40d761211ceed"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 17:53:09 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 18 15:32:47 2010 -0800"
      },
      "message": "Add ImageFormat.java and move the Camera/YUV constants from PixelFormat to it.\n\nPixelFormat\u0027s corresponding constansts are now deprecated.\n"
    },
    {
      "commit": "f43113f6216efacc3957fc48d9fa1c0326facceb",
      "tree": "064470eff7e70a6e1cdd08b35d12577500c40fe0",
      "parents": [
        "5706329cf42db714582fa698eb9f408350276f16"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Feb 18 09:13:12 2010 -0500"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Feb 18 16:12:28 2010 -0500"
      },
      "message": "Unhide setBlockNetworkLoads.\n\nBlocking network images is not as secure as completely blocking network loads.\nLeave setBlockNetworkImage so clients can reduce bandwidth by disabling remote\nimages. This will allow file:// and content:// URIs to load.\n"
    },
    {
      "commit": "d970998b0d489774ad1c5b94b47d233912f00214",
      "tree": "e319422620d535a0c7172fe8616e67cc27cf86b5",
      "parents": [
        "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:48:48 2010 -0800"
      },
      "message": "framework: storage: Add \u0027force\u0027 option to unmount/destroy storage apis, and update callsites.\n\nAlso adds additional storage unit tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e",
      "tree": "8b43fca812663d2ad1750128f72d8181fcb3a037",
      "parents": [
        "0a073274d82443e7fbb964f069fed58215641aa8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 11:56:39 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "message": "Show car mode notification in status bar.\n\nThe notification is an ongoing event and can be used to get out of car mode.\n"
    },
    {
      "commit": "a4903f254b4711c8fc0ac5f7e3d605f4dce34f35",
      "tree": "e43cd5c8258315768da788f390d230a105920154",
      "parents": [
        "c6a0a9cb67930f7259f3f019e8fba22b07a906bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 06:42:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 18:36:40 2010 -0500"
      },
      "message": "Add passive location provider.\n\nThe passive location provider allows receiving location updates without\nactually triggering them.  This allows an application to receive location\nupdates that are being generated due to other clients of the location manager.\n\nChange-Id: Ibf7a96b089c56875d4f62d3210252ae8d9f32768\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2b95c2413838c2e2b127ebab8fb4fead7d52e460",
      "tree": "152840f97e63ab28962c5f351217fa8088686f13",
      "parents": [
        "6a70d7d1e28bd0b98d03e7ecab3fd08ea5973e34"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 08 17:40:30 2010 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 17 15:03:32 2010 -0800"
      },
      "message": "Added more @RemotableViewMethod methods, mutate ImageView.\n\nCatch some View methods missed during the first pass of\nmarking with @RemotableViewMethod annotation.  Also adds new\nImageView.setColorFilter(int) to match the android:tint XML\nattribute.\n\nWhen ImageView touches ColorFilter or alpha, mutate the\nunderlying Drawable. Fix NPE in StateListDrawable.mutate().\n"
    },
    {
      "commit": "05513119803845c11d845cbc376759cddcfe13bb",
      "tree": "4bfc421cd457565ccf9c267c09d9d671a591e3a4",
      "parents": [
        "1e84ac51221037b1446baad30e1aae8823e5f5a6"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Feb 17 10:06:41 2010 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Feb 17 13:29:08 2010 -0800"
      },
      "message": "Unhide new SoundPool API\u0027s. Bug 2415373.\n"
    },
    {
      "commit": "c9fbaabc1bbf847b6e8bf2595068cbd990f3da55",
      "tree": "0f54c5be9d3461b1a477275ef042f4c2df7f4066",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Feb 16 17:16:19 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Feb 17 11:47:00 2010 -0800"
      },
      "message": "XML attribute for overscrolling behavior\n"
    },
    {
      "commit": "64e7a257ca8371c9e29512c13a8c413794439a7f",
      "tree": "ef12b8ab71fcb98942b4c942eef38ed1b92e1579",
      "parents": [
        "be6079a76c5feb3952ab5c4dc8b0491d44f42b56"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 11:15:28 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 11:15:28 2010 -0800"
      },
      "message": "Fix build.\n"
    },
    {
      "commit": "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9",
      "tree": "883f9fde4fdcde9c073ee2b0987c5dd393a00745",
      "parents": [
        "855dd9e074c4dcb9c90deaeff1eb33d6394dd5da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 20:38:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:29:52 2010 -0800"
      },
      "message": "Fix issue #2420412: API review: DeviceAdmin API changes\n\nNote in docs that callbacks are on main thread.\nRename to DeviceAdminReceiver?\nDocument resetPassword is the device\u0027s password.\n\nAlso hide android.R.attr.neverEncrypt.\n"
    },
    {
      "commit": "e265532f30ca460dc0900c4cdfc3c7425ae7714b",
      "tree": "c0027951486a603b75524c3854d4b1135294a129",
      "parents": [
        "a4437fc93a993c7ab326b592d22c05be2f11b543"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Feb 16 16:09:59 2010 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Feb 17 10:30:12 2010 -0500"
      },
      "message": "Create a default style for WebTextView.\n\nAs a result, all apps using WebView (and therefore WebTextView)\nwill get the same style, and display properly.\n\nFixes http://b/issue?id\u003d2385422\n"
    },
    {
      "commit": "d998b3cd2420dfcf9e1237234d1aeb6f5c9c4778",
      "tree": "1c8c2b39bb9749fff5c19aa152191180ef4c98ca",
      "parents": [
        "5a48712501982c7276c1455e280e0b95149bdd0b"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Feb 16 16:23:26 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Feb 16 21:56:42 2010 -0800"
      },
      "message": "Removing org.w3c.dom subpackages.\n\nSee dalvik change https://android-git.corp.google.com/g/40511\n"
    },
    {
      "commit": "329c6aed7870b55ced7774924781cddb44022683",
      "tree": "1081764767caca69bce25e969bd2573f4838bc4e",
      "parents": [
        "2db939bde9a9a1d52d8849e6ff88f6a81504d361"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Feb 16 18:19:05 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Feb 16 18:22:23 2010 -0800"
      },
      "message": "Remove ACTION_VOICE_SEARCH_SETTINGS (added only for Froyo), because we\u0027ve got\na more robust solution instead.\n"
    },
    {
      "commit": "9f790c309baeaf2617e7731225389af1865fd41e",
      "tree": "ea850c4ea830530ab53cce40c5a0887ba956ca56",
      "parents": [
        "cff1ae56e88d369021b25bedde500037129c5516"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 17:20:32 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 17:20:32 2010 -0800"
      },
      "message": "Fix the build (mucked up an API change / commit / upload sequence)\n\nChange-Id: I0eade23e5ccd4a45dbb77f76bd3cd180ddda7107\n"
    },
    {
      "commit": "e28290e21f908b4e917099ff2aa41e3aab9310c2",
      "tree": "870e5fb91e64ea96ece567ab3ccbca6e7a5e5f1b",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 15:22:26 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 16:23:55 2010 -0800"
      },
      "message": "API CHANGE: expose backup/restore to the SDK\n\nThe core backup/restore classes [BackupManager, BackupAgent, RestoreSession, and\nRestoreObserver] are now published for 3rd party developers, as well as the suite\nof helper classes that exist so far to aid authorship of backup/restore agents.\n\nIn conjunction with the API change, the restore-time automatic data wipe has now\nbeen removed:  applications are responsible for managing the logic of wipe vs\nmerge themselves.  If the app\u0027s agent onRestore() callback throws, the data\nis presumed to be incoherent and a wipe is issued via the Activity Manager;\notherwise, no automatic action is ever taken.\n\nChange-Id: I0b3418b829d4689b58b88be3d9c4ace37a8583a9\n"
    },
    {
      "commit": "bb9a51768d2d9dddbe2394b99a00544a3d144fac",
      "tree": "a371dec6ecfa79d2205b6306667787cd95356b81",
      "parents": [
        "4a2d3b15ecca1f4db1e2c935ff36d19838eb5622"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 13 00:07:38 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 16 15:05:02 2010 -0800"
      },
      "message": "Add API to access ICU\u0027s East Asian Width\n\nCurrently there is no way for an application built against the API to\naccess East Asian Width data from ICU. This adds an API for applications\nto use to access it for correct drawing of international characters.\n\nChange-Id: Iab50698ee555ae2ca8ab4b242cc14aa6e0dc3b48\n"
    },
    {
      "commit": "9d4b57545300c6de1722094404ae09bf0f6be937",
      "tree": "19e0c79eb131759689858b3e3180ca457ba2e2af",
      "parents": [
        "fa4039e4fc680920bc53528c4a76e09210f1dcd6"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 20:34:51 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Feb 16 14:18:24 2010 -0800"
      },
      "message": "Add getInsecure() that returns a persistently insecure SSLSocketFactory,\nwhich Email needs for unbundling.\n\nBug: 2353593\n"
    },
    {
      "commit": "3af80dc6d937fb95cab544417e75f5aadc595690",
      "tree": "effe84631174daaeee4793442c7a2d9e3bc24308",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 16 12:38:38 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 16 13:55:19 2010 -0800"
      },
      "message": "Expose more Download Manager APIs.\n\nThis will allow apps to track download progress.\n\nChange-Id: Id6b77c0fc01b4838fca45e2fe241b1ea08e65038\n"
    },
    {
      "commit": "b9dfb9b403e3e61cd97d4f9981c54c4e2229777d",
      "tree": "97cf09e25b65280ec63a960e4e249410d1790f35",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Jan 29 13:08:22 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Tue Feb 16 09:25:40 2010 -0800"
      },
      "message": "Download Manager API to support Gmail\n\nAdds APIs to the Download manager to handle downloads based on\nopaque ids\n"
    },
    {
      "commit": "241379081e046803b7f4cf4f07091b9de49abf31",
      "tree": "4f65235daabdd5dd77dfd15da7a8dfbb9544d27d",
      "parents": [
        "85cc7b37f53b12b070828b56eeaee749832d3af5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 16 09:06:32 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 16 09:06:32 2010 -0800"
      },
      "message": "update current.xml to fix build\n\nThis (new) constant was renamed; forgot to make update-api.\n\nChange-Id: I11ad63f70fc7e266abdc9863b43bf5307227c656\n"
    },
    {
      "commit": "b125dc5599468a09d82751cd76152071ae485afb",
      "tree": "6d7ea46208c30bf1ae9014b70d7f5f50167eaa10",
      "parents": [
        "d382e4bee9c6cf96f97700ebcffcf81465294146"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 15:52:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 17:52:22 2010 -0800"
      },
      "message": "Fix MotionEvent pointer API.\n\nOoops.  The API said that the pointer down and up actions contained\nthe pointer id, but it is actually the index.  Actually it makes\nmuch more sense for it to be the index, and those ACTION_POINTER_1_DOWN\netc. constants were stupid.\n"
    },
    {
      "commit": "33f7a80f767d72393c2d38b0dcbaeecdf7956c89",
      "tree": "f322d63d5a210b28ca3afa973dc1d39e02465cfa",
      "parents": [
        "d2affae13dfdb116adaee1bb10aaaac80a885481"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:41:40 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:41:40 2010 -0800"
      },
      "message": "@hide the bizarro Base64 stream constructors\n\nWith no usages of these \"backwards\" streams, it\u0027s not clear that we\nwant to support them forever in the API.\n\nAlso fixed some badly cut-and-pasted javadoc.\n\nChange-Id: I4811d22e493bf2b8eaf79b9e95526e7eab5f27ee\n"
    },
    {
      "commit": "d2affae13dfdb116adaee1bb10aaaac80a885481",
      "tree": "2c12a5b5c6e4064d1587e2ece6f1f909657e8914",
      "parents": [
        "190dd57fb843b1b5019ebdba32e44617c6bbc3d0"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 15:50:01 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:13:56 2010 -0800"
      },
      "message": "add a Base64 implementation to the API\n\nb/1413917 - RFE: Base64 utility class\nChange-Id: I11697859e1f78f596b92d2e03a49ed1be04ae42d\n"
    },
    {
      "commit": "04994989351922e241089de2af540facc8688505",
      "tree": "363adaf9c2da326387bbfeda8c2eb612522da181",
      "parents": [
        "bab28017a56a770a97b2da770deaf6649b30766e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 10 15:24:49 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 12 15:10:37 2010 -0800"
      },
      "message": "Add a new KEYBOARD_TAP haptic feedback type for very short, low-latency vibration.\n\nThe minimum value varies from device to device, so this is useful for defining\nthe shortest and most efficient vibration. The VibratorService creates a Thread\nwhen playing back vibration patterns, so this allows you to avoid thread creation\nand associated scheduling delays by specifying a one-shot duration in the config\nfile.\n"
    },
    {
      "commit": "749ee4fefd844236c075b15cf5dcc1f7245e17ce",
      "tree": "700d2d47b7edf1f6b369b4f9dc1a2fab2481bda9",
      "parents": [
        "96898b38fa72957963fd768b379df5d2860a7f3c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Jan 29 11:19:07 2010 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Feb 12 14:13:27 2010 -0800"
      },
      "message": "API change.\nadd cycle_interpolator resource (it\u0027s the only one missing among\nall Interpolators) and update public.xml and current.xml with the new resource.\n"
    },
    {
      "commit": "90762d35a99e32ed22cdfb1f81252544ee22e30b",
      "tree": "eadc40dab7605e4ccce6493bafc211b1becfb98b",
      "parents": [
        "30e694aea1b7fac450ff3c668094dcfe921e9421"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 11 20:07:17 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 12 11:09:26 2010 -0800"
      },
      "message": "Modify ActivityInstrumentationTestCase2 to not require hardcoded package name.\n\nDeprecate old constructor.\n\nBug 2440167\n"
    },
    {
      "commit": "0b8bb4282a7d1afb24f8c4d5beb2ca4ecc731116",
      "tree": "a889cd6a046d196878e4b05718e6cbe7c002db05",
      "parents": [
        "8bd3f749e8c5348d1109b8ab66e0054d1a63eb73"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 08 14:30:45 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 12 10:26:25 2010 -0800"
      },
      "message": "Overscrolling modifications. Overscroll will not allow the user to\nscroll content out of view. Scrolling will slow down halfway to the\nbarrier point. API added in View. AbsListView, ScrollView,\nHorizontalScrollView all use this API. Overscrolling uses haptic\nfeedback. Added scroll barrier pattern to config.xml.\n"
    },
    {
      "commit": "470969346d7958f859d97d1a136b4ecc11e2a464",
      "tree": "c9c1ec33c9b3dd2463ffa4b7704cd87e1a12ca9c",
      "parents": [
        "b509065a586d11e6800373d0a57f5296428f2d89"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 15:57:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 20:02:20 2010 -0800"
      },
      "message": "Add APIs for mapping between new and current package names.\n\nThis will allow Market and others to find out what the \"real\" name\nof a package is, when it is currently running under the old name of\na previously installed version.\n"
    },
    {
      "commit": "315ada7fbb9e967c22e87b4921bec720ceb2c73c",
      "tree": "d40fec8ac540b985027bf2334c9d3e8d5d73d942",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 12:14:08 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 14:36:30 2010 -0800"
      },
      "message": "Get rid of the limit-unlock policy control.\n\nThis is merged with force-lock.  These both allow effectively the same thing,\nso there is no reason to junk up the user experience with them as separate\nentities.\n"
    },
    {
      "commit": "378ae126d9d61feed77ad596fa0823394eac6240",
      "tree": "ae7c0577b67dde049fbb10b1cd0461cbb2934bdd",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 14:01:09 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 14:02:46 2010 -0800"
      },
      "message": "Add SERVICE_INTERFACE and SERVICE_META_DATA constants to RecognitionService,\nto be used by anyone implementing a voice recognition service. Also define\na new \u003crecognition-service\u003e styleable to be used in such service\u0027s metadata\nxml.\n\nStill to do: Change VoiceSearch\u0027s GoogleRecognitionService to respond to this\nintent, and actually use this intent instead of ACTION_RECOGNIZE_SPEECH here\nin RecognitionService.\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "a181b21305e0bcf171e2112a3ca5c08eb4fd2434",
      "tree": "2d710c52e471992a454f7115042f3a8ff79be06d",
      "parents": [
        "2980d10c1a77172556acf7875a2781ffc9881c15"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:20 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:31 2010 -0800"
      },
      "message": "MountService: Fix some mountset bugs and tighten up some return values\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "91f2a20a5957095a6cba9f97326ea0f1eab17195",
      "tree": "4f08d890a77097a7c33a29d4bd02ce456b66bd96",
      "parents": [
        "49ffc0ff72a29f000b56deb34b0706cbfc5624bf"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Feb 09 11:54:14 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 11 10:02:39 2010 +0000"
      },
      "message": "Add content provider for browser geolocation permissions\n\nThis replaces the old Google-specific geolocation setting.\n\nFixes http://b/issue?id\u003d2428694\nPart of http://b/issue?id\u003d2383870\n\nChange-Id: I6308b476ad18b1d71d7438b936c592a45365c9f0\n"
    },
    {
      "commit": "49ffc0ff72a29f000b56deb34b0706cbfc5624bf",
      "tree": "552d1620a011a24432be7290ea9c8637afaaa1bb",
      "parents": [
        "0bcc74ccca4a8f01a125dea6265851ceda513921"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Feb 05 11:56:12 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Feb 11 10:26:34 2010 +0800"
      },
      "message": "Revise ThumbnailUtils API.\n"
    },
    {
      "commit": "23085b781e145ed684e7270af1d5ced6800b8eff",
      "tree": "43629e3d545d343314af074dc66e63f628d780ff",
      "parents": [
        "60586f2ec65d16d185767fce4311d3ed0e9112ac"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Mon Feb 08 16:06:32 2010 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Wed Feb 10 14:51:31 2010 -0800"
      },
      "message": "Support per-application switch to execute the VM in safe mode.\n\nThe new attribute can be set by adding android:safeMode\u003d\"true\"\nin AndroidManifest.xml with the SDK.\n\nTested with pairing locally compiled SDK with Eclipse and verified that the JIT\n(the only component currently included in the safe mode) is indeed disabled\nwith the new attribute.\n\nBug: 2267583\n"
    },
    {
      "commit": "60586f2ec65d16d185767fce4311d3ed0e9112ac",
      "tree": "0006970ad06fc8b155d282651043d87b3972e23e",
      "parents": [
        "d2e6af66ce9fdf7bfa72efe18b74260901a944a6"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Feb 08 21:56:38 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 10 14:43:21 2010 -0800"
      },
      "message": "API CHANGE: Add SSLSessionCache public API to allow unbundled SSL session caching.\n\nGenerally clean up the associated SSLCertificateSocketFactory API as well,\nchange AndroidHttpClient to use this new thing, and make the android-common\nlibrary build SDK-clean (woo hoo).\n\nBug: 2362543\nBug: 2357311\n"
    },
    {
      "commit": "e4e82f2782e61658256ecb85066e273c22a37951",
      "tree": "4b942c538f0972216f6508cfe3be52262bb40f2f",
      "parents": [
        "23897c16a603748db83c59a280b6e6079bf57175"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 13:22:55 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 21:30:29 2010 +0000"
      },
      "message": "Unhide SearchManager.INTENT_ACTION_SEARCH_SETTINGS\n\nThis intent action is needed by Settings to start the search settings\nactivity which lives in QuickSearchBox / GoogleQuickSearchBox.\n\nFixes http://b/issue?id\u003d2394530\n\nChange-Id: Iea2a7d9df0092459e5618986f4f789f9257f912a\n"
    },
    {
      "commit": "23897c16a603748db83c59a280b6e6079bf57175",
      "tree": "948ae4929f7d21d30951afdee86ede3d83274185",
      "parents": [
        "f67119bce50f7d0fd4d708bd033ec33465239373"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 16:10:54 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 21:22:57 2010 +0000"
      },
      "message": "Use resource ID for searchable description\n\nBefore, SearchableInfo read and cached the localized\nsearchable description, which meant that it was not updated\non locale changes. Now SearchableInfo only holds the resource\nID.\n\nSearchableInfo is a new API in Froyo, so it\u0027s ok to change.\n\nPart of http://b/issue?id\u003d2175247\n\nChange-Id: I1898f7895b9172f58419d906ad741cb7dd1e7252\n"
    },
    {
      "commit": "117818e4f171b1fd9daa05349c48f61388f04567",
      "tree": "2bb350a719caf06727a410ce662c46a28c45fb72",
      "parents": [
        "596ce7fbfe5a81a4270949448c08dcb3a684cc3a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 09 03:45:40 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 08:59:08 2010 -0800"
      },
      "message": "Add new manifest option for install location\nChange recommendAppInstallLocation api\nadd code to parse new attribute.\nDefine flags in PackageInfo\nAdd new settings attributes for enabling setting and value for install location\nSome tests\nThe policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.\nIf the user enables setting SET_INSTALL_LOCATION(which will always\nbe set to false in final release builds) and sets a prefered location, we try\nto honour it.\n"
    },
    {
      "commit": "d2391faa5d21a7513f321c03da0945277e291ad7",
      "tree": "dc2fb8997d99da6d48f3388a02e9ee6241df1998",
      "parents": [
        "ca35953c9064114cb09181e8bffddb2f7c2d8d53"
      ],
      "author": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Fri Feb 05 16:58:25 2010 +0800"
      },
      "committer": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Wed Feb 10 23:15:37 2010 +0800"
      },
      "message": "Modify the API of YuvImage, so that callers do not need to deal with\nthe yuv format when specifying a rectangle region.\n\nBug: 2285598\n"
    },
    {
      "commit": "cc47fae688e55edefd0abd15811d674ba47889e0",
      "tree": "9249fc4682e26bec248fd1a0a4e90965f37fde22",
      "parents": [
        "4eaef139cf72e8f260ec4cf165c42f579cf6127d"
      ],
      "author": {
        "name": "Alex Gruenstein",
        "email": "alexgru@android.com",
        "time": "Tue Feb 09 14:36:42 2010 -0800"
      },
      "committer": {
        "name": "Alex Gruenstein",
        "email": "alexgru@android.com",
        "time": "Tue Feb 09 15:25:53 2010 -0800"
      },
      "message": "Add EXTRA_PARTIAL_RESULTS so that clients can enable receiving results via onPartialResults()\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "305a2eb8e5957a4f3db2734a8918faf1a39fb9a4",
      "tree": "4733d69aba3b7cf238dc751a79325dc8f22918f0",
      "parents": [
        "b37d8a484cb81b7cc58bc97c18507ec556b33468"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Feb 09 11:30:44 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Feb 09 11:36:44 2010 -0800"
      },
      "message": "Properly notifies listener when an animation is cancelled.\nBug: #2428005.\n"
    },
    {
      "commit": "b104340496e3a531e26c8f428c808eca0e039f50",
      "tree": "11247cb68359d43ca4871c0cb0165c9bec339a6f",
      "parents": [
        "3ee1317173260252d475772fec09d492f8fcfd33"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 05 08:26:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:16 2010 -0800"
      },
      "message": "Framework: Clean up / Refactor Mount APIs\n\n - Move android.storage.* -\u003e android.os.storage.* and refactor users\n - Refactor generic shares back to explicit ums enable/disable/isEnabled\n - Remove media insert/removed event callbacks (not ready for Froyo)\n - Remove \u0027label\u0027 from volume state change callbacks\n - Add public API functions for enabling/disabling USB mass storage (permissions enforced\n   in MountSevice)\n - Remove some stray un-needed import lines\n - Move android.os.IMountService / android.os.IMountServiceListener -\u003e android.os.storage\n - Improve code comments\n\nUpdated:\n  MountService: Add dup state check and move debugging behind a conditional\n  UsbStorageActivity: Fix review comments + a TODO\n  StorageNotification: Add @Override tags\n  StorageManager: Don\u0027t use a static Listener list\n  MountService: Reduce bloat and fix \u003d\u003d where I meant .equals()\n  PackageManagerTests: Update for new API\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "ace5a3fbfbf1b41905410925f1ea007040a7a675",
      "tree": "d97a9b2ea4ecc457a04d4e2c905634dba3a4bc72",
      "parents": [
        "9c6393b8df5dc8266f91bdaa13e56071f76cd50c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 05 12:59:28 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 09 08:47:30 2010 -0800"
      },
      "message": "Hide resourceDirs from public API\n\nChange-Id: I070558c0adca43c8650ac740d3cda4334d0f4a50\n"
    },
    {
      "commit": "628fd6d9c11ed9806abebf34bc986247c106328f",
      "tree": "402876b69159436587770bc8754f6a66d02326ed",
      "parents": [
        "53bd2522ca7767f46646606123b6e2689b811850"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 25 22:46:13 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 08 23:20:27 2010 -0500"
      },
      "message": "Network Location unbundling:\n\nThe network location and geocode provider services are now started on demand\nand their interfaces are now retrieved via bindService().\n\nRemove obsolete LocationManager installLocationProvider() and installGeocodeProvider() methods.\n\nAdd abstract class android.location.provider.GeocodeProvider to provide a public wrapper to\nthe IGeocodeProvider Binder interface. Replaces the LocationManager.GeocodeProvider interface.\n\nRename LocationProviderImpl to android.location.provider.LocationProvider.\n\nMove LocationManager.reportLocation() to android.location.provider.LocationProvider,\nso all methods related to external location providers are now all in one class.\n\nAvoid calling from the Location Manager Service into providers that are disabled so we\ndo not start the network location service unnecessarily.\n\nChange-Id: If3ed2d5d62b83ba508006711d575cad09f4a0007\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "53bd2522ca7767f46646606123b6e2689b811850",
      "tree": "40a43c4d19ee0c6af8443878e3e889307f33652a",
      "parents": [
        "9be54d400d68c735013bc8069fbcb66c3f98c3ee"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 05 15:28:12 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Feb 08 16:54:43 2010 -0800"
      },
      "message": "- change the SyncManager to retry MANUAL syncs that encounter a soft error\n- make the sync dump handle the case where there are no accounts\n- fix a bug that caused the SyncManager to burn up CPU in the system process\n\nThe following was implemented:\n\nscheduler offers:\n - settings to disable sync\n - retries of certain errors\n - backoffs\n\nwant a way to control these when scheduling a sync\n - \"ignore_settings\"\n - \"ignore initial backoff\"\n - \"manual\" : ignore settings, ignore initial backoff\n - \"do not retry\"\n\n- need to change the default behavior of not retrying manual syncs to retry regardless\n"
    },
    {
      "commit": "836a1f2cb99600c26a1a928a9e3240b9dec3079b",
      "tree": "f6848d720a102e09ad2590857a5825fa9c9cd517",
      "parents": [
        "e8d898f4edb4dca397ec21c14f2a63c79ffdeccc"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 08 13:41:00 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 08 13:42:06 2010 -0800"
      },
      "message": "Fix the build.  That was an API change.\n"
    },
    {
      "commit": "8d45e4e4c6244cc3a508da3b56fec8cfd4cadd1d",
      "tree": "bc434a1f1c8c2c8c6223af982ac255a52a94cf7b",
      "parents": [
        "aea16fb62f50ec26a399e1308592f43ed4fd1a50"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Fri Feb 05 22:35:47 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Feb 08 11:12:04 2010 -0800"
      },
      "message": "changes after review by API council\n\nplease refer to http://b/issue?id\u003d2420299\n"
    },
    {
      "commit": "458034799861fef47e00d85d528b4dac5e00bd51",
      "tree": "59ac7eea5cc95ea3b9fd5368e435a73f3d0a3d14",
      "parents": [
        "420bc12ed03dd0514e0d0400385ceba3e91bbe2c"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Jan 25 15:10:44 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 05 17:57:41 2010 -0800"
      },
      "message": "ListView updates. Fixed several overscrolling bugs. Added programmatic\nscrolling to ListView. Added auto-scrolling to show expanded content\nfor ExpandableListView. Fixed an AbsListView recycler bug where\noffscreen views would stick around in the view hierarchy.\n\nAddresses bugs 1161597 and 1119429.\n"
    },
    {
      "commit": "c5d1c6db61f208b206b260f897bb5bbc64be4d97",
      "tree": "91a5ffe88326b446f57b7249ddf1406b8654d2f6",
      "parents": [
        "0a45a09814dea0398647f26497ecff54a77c5f8c"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Jan 27 12:17:49 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 05 15:16:20 2010 -0800"
      },
      "message": "add sync polling\n\n- added the ability to specify that a sync (of account/authority/extras)\n  should occur at a given frequency\n- the existing daily poll code was replaced with seeding each\n  account/authority with a 24 hour periodic sync\n- enhanced the \"adb shell dumpsys content\" output to show the\n  periodic syncs and when they will next run\n"
    },
    {
      "commit": "97e44947282b3918ee0bed2d16b33b983f882580",
      "tree": "ae30514672b93407b1c9438aa46555363f9f5fc6",
      "parents": [
        "9446c5046872e8ae44120d4057ae724875aba1a4"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 04 20:27:47 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Feb 05 12:31:41 2010 -0800"
      },
      "message": "Add an AlarmManager API to set the system time (with the proper permissions).\n"
    },
    {
      "commit": "7722abe2591026e7db8910afa0431602723fc1e0",
      "tree": "89dc9b8551651944280d9f42eb2e63e57abeb970",
      "parents": [
        "744d90245378e53862ba02869864b36cea832648"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Feb 04 14:01:33 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Feb 05 09:31:38 2010 -0800"
      },
      "message": "Bug 2420366\n\nRehide NumberPicker widget\n"
    },
    {
      "commit": "3da3cad97269d694a6153771fb4a0c3775ca6ab5",
      "tree": "54c6e90eb5f20661d7bfd508125e3f6123a796b0",
      "parents": [
        "f6e003bc4a885c186a023bd46beaaafa3842cf51"
      ],
      "author": {
        "name": "Valentin Kravtsov",
        "email": "valentink@google.com",
        "time": "Thu Jan 28 14:53:41 2010 +0000"
      },
      "committer": {
        "name": "Valentin Kravtsov",
        "email": "valentink@google.com",
        "time": "Fri Feb 05 14:21:07 2010 +0000"
      },
      "message": "Adding speech recognition service public API\n\nChange-Id: Ia2c13d4c7993d646956090aa5c56d1a441af9e5a\n"
    },
    {
      "commit": "a969dc4ea47051e6cd7f29fd91fd83924c749f0a",
      "tree": "22b000b2b23606d803670bfee531c1f0fffc55ff",
      "parents": [
        "5c19aeca3d41c6a5820dc05a51c38736d3583378"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Wed Feb 03 14:08:18 2010 -0800"
      },
      "committer": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Thu Feb 04 14:51:28 2010 -0800"
      },
      "message": "Unhiding Rfc822Tokenizer.tokenize(CharSequence text, Collection\u003cRfc822Token\u003e out)\n\nNote that Rfc822Tokenizer.tokenize(CharSequence text) is already in the SDK\nand it just wraps the version I am unhiding.\n\nChange-Id: I1ac3b405a04df960fc1e65ca4797d6f5adf85dc4\n"
    },
    {
      "commit": "5c19aeca3d41c6a5820dc05a51c38736d3583378",
      "tree": "842d01879f26ea60425ab99a98c1144b761db712",
      "parents": [
        "46c53129c6f27c9193ab195a69cb50591b8c1fa2"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Feb 04 13:33:45 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Feb 04 14:37:21 2010 -0800"
      },
      "message": "API review: TrafficStats: rename Pkts to Packets\n\nRename getMobileTxPackets(), getMobileRxPackets(), getTotalTxPackets(),\ngetMobileRxPackets()\n\nbug 2420318\n"
    },
    {
      "commit": "46c53129c6f27c9193ab195a69cb50591b8c1fa2",
      "tree": "787f7e27179b7be2237870304b641345f266e0b9",
      "parents": [
        "8f3ff09556b2d0c45eebdf97bd980f3b9f0c7d8f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Feb 04 14:19:50 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Feb 04 14:27:00 2010 -0800"
      },
      "message": "Rename GestureUtilities to GestureUtils.\n"
    },
    {
      "commit": "da5c1bd4443b5b569a0d392cd53b476b4e160c47",
      "tree": "025f448615600a914c9b081c859de978c8b22270",
      "parents": [
        "76bc4a6bb355d402b82bfa146ff29b8b81099076"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 04 15:11:25 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 04 19:34:19 2010 +0000"
      },
      "message": "Remove source selector from SearchDialog\n\nFixes http://b/issue?id\u003d2419208\n\nThis reverts commit 32d580c360da0a0f15e7a080f4ebd0b7b514fe4c.\n\nChange-Id: I5d8821d52badf3e0347230b86671f8ceb65a663d\n"
    }
  ],
  "next": "3141e0a62abe57e93e5d716895a2a57cc052bb50"
}
