)]}'
{
  "log": [
    {
      "commit": "d5759437eeb3137e4a05471ff0f4681c0254e81a",
      "tree": "0d22df7aa8d52ead9ef9da0f417fe43bb70814e7",
      "parents": [
        "e91a3f5229405b39a3ba59aa0a3e44527eef063e"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Wed Sep 11 11:03:03 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Wed Sep 11 11:03:03 2013 -0700"
      },
      "message": "Improve some javadoc related to isProviderEnabled() apis\n\n- LocationManager.isProviderEnabled() no longer throws SecurityException:\nthe caller could already circumvent the permission check by calling\nSecure.isLocationProviderEnabled()\n\nChange-Id: I5abd04264299671ed35ce4594b5be46d86378767\n"
    },
    {
      "commit": "cef05c28eb452810e4b79895970457ff2bdef5b4",
      "tree": "42b1171cac99d57c5c2cd146cd175dd5e602178b",
      "parents": [
        "9e8bdc39bcdfc22d05edd5f4a0ca69cdffec4f34"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Thu Sep 05 09:45:03 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Thu Sep 05 09:45:03 2013 -0700"
      },
      "message": "Incorporate new API council comments\n\n- Split getStatus() into onGetSummary() and onGetEnabled()\n\n- Call them on app\u0027s UI thread\n\n- Allow runtime exceptions to propagate up\n\n- Make a couple of more methods final to prevent subclasses from playing\naround with the intent\n\n- Remove explicit timing requirement from javadoc\n\n- Mention that this will be restricted to system-image apps (will be\nenforced by the actual settings code)\n\n- b/10461474\n\nChange-Id: Id22dd7a707c05de396ae4c5810e839ca734714c0\n"
    },
    {
      "commit": "40a86c24d2601df4966c57573a5bf58b30a41990",
      "tree": "a34b94d308b15723986736c4f1b096b61e2a4267",
      "parents": [
        "d0e2a2e7a9a6c247f501a5044d1c19cd82c6129d"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Sep 03 18:05:13 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Sep 03 18:07:10 2013 -0700"
      },
      "message": "Add LocationManager.MODE_CHANGED_ACTION broadcast\n\n- Currently redundant with PROVIDERS_CHANGED_ACTION, but that may\nchange in the future\n\n- Part of fix for b/10409275\n\nChange-Id: I12daaf20e6546fd9e9dc71c599967fa0ad95e27f\n"
    },
    {
      "commit": "546113d4c290f36bf21b1e9c7b93d1592df17fce",
      "tree": "1854fd104c3685b77bfec1286201ce8fe588ea16",
      "parents": [
        "81e0b1bd8325a2897a34f58a1e781e4d653f49fe"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Fri Aug 30 10:09:39 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Fri Aug 30 10:09:39 2013 -0700"
      },
      "message": "Improve constant names for settings injection API\n\n- Add timing for getStatus() call to encourage implementors to be fast\n\n- Affects b/10461474\n\nChange-Id: I503cbae5cf27008c587a39ab4e60d8e09daedecc\n"
    },
    {
      "commit": "7f6f45723adea684529dd9b7465d798f10c3acbf",
      "tree": "09f8e28dfb2fff373306c9ba1f509151269df6c3",
      "parents": [
        "4a9c7fec662315d9da48f0f5f99313f270424b48"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 27 10:53:15 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 27 10:53:15 2013 -0700"
      },
      "message": "Remove or reduce visibility of deprecated methods\n\n- Fix additional getInt() path, restores the location settings screen\nfunctionality.\n\n- Should fix \"unresolved link\" build breakages in\ngit_klp-dev-plus-aosp-without-vendor, which is much more persnickety than\nklp-dev for some reason.\n\n- Add warning that we may add additional location modes in the future.\n\n- Finish fix for b/10461763 and b/10461474\n\nChange-Id: Id7155e3a0d7526a377d446018ef3bdb057bad3a6\n"
    },
    {
      "commit": "4a7c49c81f021ebb01c1ac06737b4e705f212783",
      "tree": "639a41aa3ac049e8342ea0a9d9949201abc5a894",
      "parents": [
        "94366313331a789440a3c077173aafcb85cabe78"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Mon Aug 26 10:08:12 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Mon Aug 26 10:08:12 2013 -0700"
      },
      "message": "Address API Review for SettingInjectorService\n\n- Escape \u003c and \u003e in javadoc\n\n- Constructor does not take log tag\n\n- Start intent rename\n\n- Comments for Status.summary and enabled\n\n- Bonus fixes:\n\n  - Start renaming STATUS_KEY to SUMMARY_KEY\n\n  - Send message back even if getting the status fails so we don\u0027t have\n  to wait for the fetch to time out\n\n  - Add comment about setting activity being invoked when disabled\n\n- Partial fix for b/10461474\n\nChange-Id: I025e7e0782c2873a4eda20ab4793bc6145daf8db\n"
    },
    {
      "commit": "c8211ea1cc65560938c31263edce6fcb87016acb",
      "tree": "75a6222f9d839bfa72292e85a051707baed27bc4",
      "parents": [
        "83208e34f6a0381d5627886dbf98ff8f313e590f"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Thu Aug 22 14:28:12 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Thu Aug 22 14:28:12 2013 -0700"
      },
      "message": "Add a little comment about the enabled value\n\nChange-Id: I4ac0b864f55992242b6a3b0d8ffb328f23f6b645\n"
    },
    {
      "commit": "184e75146cb17f8695dffba69e0ca8d80b350af3",
      "tree": "49eda39243813244415af6cd876f6752f1dbc28d",
      "parents": [
        "b6e8943933f745f5e3f248ac058fc8dbca8f8ab1"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Mon Aug 19 13:10:19 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Mon Aug 19 13:13:21 2013 -0700"
      },
      "message": "Warn that SettingInjectorService must be fast\n\n- Move UPDATE_INTENT to SettingInjectorSErvice\n\nChange-Id: I9c8f8dc0878647a051cb852721b3436e9d55b391\n"
    },
    {
      "commit": "3e32bdd41832d383b03f928cfd2341b9693dc78b",
      "tree": "67903b97c875c8b76d5a5cac34f3dfd764eab5db",
      "parents": [
        "d0d554579b244d8d98e63e866be19333a8aa8b2e"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Aug 16 16:16:27 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Aug 16 16:16:27 2013 -0700"
      },
      "message": "Add comments to new hidden API in LocationRequest.\nDocument their purpose and permissions required in case\nthis is unhidden in a different code line.\n\nChange-Id: I42f6f950157f488cf51b361e3411861ff98794e8\n"
    },
    {
      "commit": "d0d554579b244d8d98e63e866be19333a8aa8b2e",
      "tree": "68e759b34c32156255f56ec032d366a384cd3da0",
      "parents": [
        "e3c754bb1c518c9166ff4275b5ee59f36c999f4c",
        "def20a3350ce239b929ef0ebbbf913cc0b42cf5f"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Aug 16 22:55:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 22:55:21 2013 +0000"
      },
      "message": "Merge \"Use default class loader when creating a LocationRequest from Parcel. This seems to be the standard usage, and there are rare reports of requestLocationUpdates giving NullPointerExceptions on the first call to requestLocationUpdates but not on subsequent calls (b/10207898).\" into klp-dev"
    },
    {
      "commit": "6de10472786ee17106b096eddbb603ab735c11a7",
      "tree": "30355c0022ae44d871229520b9cac5410e0b2710",
      "parents": [
        "dad0f462ae6fee99840bbea910c810282bbc1c54"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Aug 16 14:12:59 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Aug 16 14:12:59 2013 -0700"
      },
      "message": "Ensure LocationRequest\u0027s worksource defaults to null\nHelps to make sure the service doesn\u0027t throw a\nSecurityException for not having the UPDATE_DEVICE_STATS\npermission.\n\nChange-Id: I9be0302f1378d2c4441e6b7d5ce472ed0d5fbd80\n"
    },
    {
      "commit": "def20a3350ce239b929ef0ebbbf913cc0b42cf5f",
      "tree": "c09d9a2a07b1436b649ff4f0226f8ac5fac3b299",
      "parents": [
        "6bab49deaa96ddb0c427c1e2ab127608e5a8d93b"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 15 16:01:42 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 15 16:01:42 2013 -0700"
      },
      "message": "Use default class loader when creating a LocationRequest from Parcel.\nThis seems to be the standard usage, and there are rare reports of\nrequestLocationUpdates giving NullPointerExceptions on the first call\nto requestLocationUpdates but not on subsequent calls (b/10207898).\n\nChange-Id: If7a873fba5a2cd77b836ff3fda89105da20104ac\n"
    },
    {
      "commit": "95b2299dc476f4dbd50b8da8e0debff4b5ccba50",
      "tree": "2b1f9c8afba2b8f47c8fdcbe5323d23332bc5625",
      "parents": [
        "d48233e1e62c119b4bd67ad66e471f6a21e68a3d",
        "fa2992c412c08f76331a3f58ca57cf8cf04e7b84"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Wed Aug 14 00:18:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 00:22:18 2013 +0000"
      },
      "message": "Merge \"API for location settings injection\" into klp-dev"
    },
    {
      "commit": "0682809ad08db284d7110aab44108d5e9c310e6b",
      "tree": "2aa38602adac05aa16f829f995b21d239ba2494c",
      "parents": [
        "f464511a7be2e381f508b5b2b937f19c98d800c2"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 12 18:50:30 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Aug 13 16:00:04 2013 -0700"
      },
      "message": "Add support in the platform for Flp Geofencing.\n\nChange-Id: I0fb0e276d3a06322697bb5d46323779aca1f78c5\n"
    },
    {
      "commit": "fa2992c412c08f76331a3f58ca57cf8cf04e7b84",
      "tree": "8ff95fba0faff30428923dfcee0c5dda4596f9a8",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 13 14:41:22 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 13 14:41:22 2013 -0700"
      },
      "message": "API for location settings injection\n\n- Partial fix for b/10287745\n\nChange-Id: Ie998ce0a7b350e4183fce5753bfac3eb51238ff4\n"
    },
    {
      "commit": "64be0c617f902398cbbcc2b145c86a8fbfc2feac",
      "tree": "2d86c935647cd4860f3dc6aef3cff18d3b2423a2",
      "parents": [
        "f6c7a5fd6680d74972738e60ad5c9cf34bfc43ef"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Aug 09 15:01:49 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Aug 09 16:56:43 2013 -0700"
      },
      "message": "Address Robin\u0027s code review comments in initial FlpHal submission.\n\nChange-Id: I50889599fdc5938a19b8bff4f11e64f44bcebdbf\n"
    },
    {
      "commit": "1af4b0280af406cfc7eb46810f6b76e57b983e11",
      "tree": "1f7f8d5a86c8dcd42cb24474e93b58bb0775071e",
      "parents": [
        "8ffe17ae32e72e5d872a36d5048bf912d28e766f"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Jul 12 15:43:36 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Thu Aug 08 15:27:38 2013 -0700"
      },
      "message": "Add FlpHal layer to support Location Batching.\n\nChange-Id: Ia3a57d869dfb3f067a1b95fa66d54f311ddcfdc3\n"
    },
    {
      "commit": "c750c1fb83fbdec895e236dda7207db4da14ec49",
      "tree": "0b853aa47bad8e6dd2c3eafd1f1bd7437768d170",
      "parents": [
        "4104d3295203d8a1f2d15d572293fdc1171631c6"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 08 12:56:57 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 08 14:06:25 2013 -0700"
      },
      "message": "Update gps status icon to be a \"high power\" location icon.\nMove icon to right side of the screen and synchronize status with\nAppOpsManager.OP_MONITOR_HIGH_POWER_LOCATION.\n\nChange-Id: Iea2570501cb18be0489669fd4ea240dc63f9567a\n"
    },
    {
      "commit": "40e5782f5c79ea660b98b8875086f592367bc1d2",
      "tree": "8fdfd3a5bbe90b996c71e933230b7138505fdaa7",
      "parents": [
        "930524ade21464a4f8cbbf80fed7039f4e813965"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Jul 30 11:36:48 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 01 14:31:48 2013 -0700"
      },
      "message": "Allow a particular LocationRequest to be excluded from\nAppOps monitoring as long as the client as the appropriate\npermission (UPDATE_DEVICE_STATS).\n\nChange-Id: I7223a53bc1551e6498302a22eb310c8c5b5684b0\n"
    },
    {
      "commit": "82edc9b3482307a8e93655aadabb4f9ad24efe46",
      "tree": "cb82eabd1b6c11293eb6cb0dbea2e6ad00ca7d2b",
      "parents": [
        "757ec7837db85eae675cda5cfaf94040268327fd"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Jul 19 11:31:42 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Mon Jul 22 16:50:13 2013 -0700"
      },
      "message": "Add WorkSource capability to LocationManager\n\nChange-Id: I0fbbad0879b87ecc75a503bf7963356595bf4b96\n"
    },
    {
      "commit": "8c84109b9fbbf473b225707a38261ff5f99d95fb",
      "tree": "9796143a5fb2980d58612a247a737448a428f742",
      "parents": [
        "3af16b226b8467100091b4e02fc3e70a002d567e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 24 13:46:13 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 24 18:16:48 2013 -0700"
      },
      "message": "Use FastPrintWriter...  everywhere.\n\nOne problem this turned up is, because FastPrintWriter does\nits own buffering, a lot of code that used to use PrintWriter\nwould fail -- if it pointed to a StringWriter, there was no\nbuffering, so it could just immediately get the result.  Now\nyou need to first flush the FastPrintWriter.\n\nAlso added some new constructors to specify the size of buffer\nthat FastPrintWriter should use.\n\nChange-Id: If48cd28d7be0b6b3278bbb69a8357e6ce88cf54a\n"
    },
    {
      "commit": "0b5c30a16e48a8ac7ebe71af0240a1b0c7e43eac",
      "tree": "7b8089fc31368022e80fa594264f004e1d567896",
      "parents": [
        "c6f7a7ff880c2154d0e794efcef06d9790517365"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon May 20 15:08:14 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon May 20 15:08:14 2013 -0700"
      },
      "message": "Make com.android.location.provider visible to apps-only build.\n\nChange-Id: Ic7983418d9577343817d5a80ebb0847804d2a1b2\n"
    },
    {
      "commit": "89cded957cee206287ff8da00cf6450c31967702",
      "tree": "7dc4e1df54ec5f903d372e5a96f89067f8e4e545",
      "parents": [
        "0500297714a26c744304a323267d5d642f351326",
        "39069b6e82fa848608d56b4efc8f28785816fe27"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 13 23:36:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 13 23:36:58 2013 -0700"
      },
      "message": "am 39069b6e: am efb3726c: am 2b8f3734: am e3c549fc: am cd70c873: Merge \"Android U: Making Apps Location-Aware\" into jb-mr1.1-docs\n\n* commit \u002739069b6e82fa848608d56b4efc8f28785816fe27\u0027:\n  Android U: Making Apps Location-Aware\n"
    },
    {
      "commit": "39069b6e82fa848608d56b4efc8f28785816fe27",
      "tree": "fce07dc6c519063bdffcb6638b56bf5e42475d25",
      "parents": [
        "b4e1c8572aeee78a91f340c9607d3e934adae030",
        "efb3726c226001149c92d48fa50da7031c231490"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 13 23:34:47 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 13 23:34:47 2013 -0700"
      },
      "message": "am efb3726c: am 2b8f3734: am e3c549fc: am cd70c873: Merge \"Android U: Making Apps Location-Aware\" into jb-mr1.1-docs\n\n* commit \u0027efb3726c226001149c92d48fa50da7031c231490\u0027:\n  Android U: Making Apps Location-Aware\n"
    },
    {
      "commit": "3ddba7ee37c02c071b6b7580cc21ad8007861ec9",
      "tree": "650df51e23a7aef6a02d319e71b627762d270b80",
      "parents": [
        "4da9c11b2758d55c67f7a24c3eb519c36497ba5d"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon Mar 04 10:33:30 2013 -0800"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 13 20:50:22 2013 -0700"
      },
      "message": "Android U: Making Apps Location-Aware\n\nChange-Id: I8f44c6ca6d797ceb8ada5b2c723a8cca0081cf0a\n"
    },
    {
      "commit": "8ce470dd4ba0608abb6b5eae117cefca927af96b",
      "tree": "e8746efbeec5ac1b39d7f594a1012514b44d491d",
      "parents": [
        "8d06cc6d871fce6d5d6b6283027d4625edd92550"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Apr 03 12:22:18 2013 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Apr 10 15:25:07 2013 -0700"
      },
      "message": "GPS Hardware geofencing.\n\nAdd support for doing geofencing in hardware.\n\nChange-Id: I6d5015190e8d84e1f4beb1010ed977a71c1622d0\n"
    },
    {
      "commit": "54ca7aef2e12b240caa6fb1a1e65abd234bea337",
      "tree": "162f4680a75081bbfe363a6c48a3d97367d4bd43",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 08 09:39:50 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 22 09:39:47 2013 -0800"
      },
      "message": "Annotate Locations coming from mock providers\n\nLocationManagerService now annotates incoming Location objects that\nhave come from mock location providers. The new isFromMockProvider()\nmethod can be called on any Location to determine whether the\nprovider that supplied the Location was a mock location provider.\n\nBug: 6813235\nChange-Id: Ib5140e93ea427f2e0b0036151047f87a02b4d23a\n"
    },
    {
      "commit": "a06de0f29b58df9246779cc4bfd8f06f7205ddb6",
      "tree": "c8ecd3323c1112dd46a9470600eab5df022ca85c",
      "parents": [
        "2e9f65f978397d112dbfb134d374588515bb644a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 11 16:34:47 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 12:47:47 2013 -0800"
      },
      "message": "New \"app ops\" service.\n\nInitial implementation, tracking use of the vibrator, GPS,\nand location reports.\n\nAlso includes an update to battery stats to also keep track of\nvibrator usage (since I had to be in the vibrator code anyway\nto instrument it).\n\nThe service itself is only half-done.  Currently no API to\nretrieve the data (which once there will allow us to show you\nwhich apps are currently causing the GPS to run and who has\nrecently accessed your location), it doesn\u0027t persist its data\nlike it should, and no way to tell it to reject app requests\nfor various operations.\n\nBut hey, it\u0027s a start!\n\nChange-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15\n"
    },
    {
      "commit": "ccb4c318aa5150ba49b7e7878d20b4787d6bf723",
      "tree": "ccbdee2e4cbd12352ede3277da99c6b57cb87c43",
      "parents": [
        "bbb970386026ec16b3cff1be280d0b9160cacad4"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Tue Dec 11 15:45:09 2012 -0800"
      },
      "committer": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Tue Dec 11 15:45:09 2012 -0800"
      },
      "message": "Revert \"Move location provider lib to frameworks/ex - 1\"\n\nThis reverts commit 578081f9da7ddb056b9b98524c639acd9194ecb6.\n"
    },
    {
      "commit": "578081f9da7ddb056b9b98524c639acd9194ecb6",
      "tree": "ac53b0960f43d8bd6a32f4caa0f6790b6ccf0ad5",
      "parents": [
        "39ec1ec187c3b27f2819aaf5a3a47819af56e44d"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Wed Dec 05 13:57:01 2012 -0800"
      },
      "committer": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Wed Dec 05 13:57:01 2012 -0800"
      },
      "message": "Move location provider lib to frameworks/ex - 1\n\nMove location provider lib to frameworks/ex so it can be re-used in\nGmsCore.\n\nThis is the frameworks/base part of the change (1).\n\nChange-Id: Ifc31a6809876e9c9afb6ed841b66cf06de7e8964\n"
    },
    {
      "commit": "a5fa049562333ad154c38e47d0ec7845941d6c21",
      "tree": "199a23216f969f1def09a2952b0715acbd62d335",
      "parents": [
        "45972e7cf03ae95c4829f9d5a819870d5d609310",
        "4b77660b38cfff2ffb67c15db4c9e20adaac41d7"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Nov 29 14:28:04 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 29 14:28:04 2012 -0800"
      },
      "message": "am 4b77660b: am 7023b3b0: Merge \"clarify Geofence.createCircle() param ranges\" into jb-mr1.1-dev\n\n* commit \u00274b77660b38cfff2ffb67c15db4c9e20adaac41d7\u0027:\n  clarify Geofence.createCircle() param ranges\n"
    },
    {
      "commit": "3dffb8cb691ccd3187cec193223d53b32339ed8b",
      "tree": "4d2ce8dc52df2c88ee7dc9b034904516d18cfe5d",
      "parents": [
        "6f3b20ccc14c25173780f01c621dbb2279cd8236"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Oct 30 10:44:14 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Nov 27 09:23:52 2012 -0800"
      },
      "message": "clarify Geofence.createCircle() param ranges\n\nThis commit adds the valid ranges to the latitude/longitude\nparameters in Geofence.createCircle()\u0027s javadoc.\n\nBug: 7172696\nChange-Id: Iff6e3c3723d3fd9b6393bbc827ec5755c0d034af\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "7ab7f538924371a9dd4be7a27a6ae3b4c04b301c",
      "tree": "b78dc6cc0bdd8c32726a3e28c6df6e24cffaf06b",
      "parents": [
        "465c37533ac1fb76d76b062452ae19afb84aab0a"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Tue Oct 30 14:54:02 2012 -0700"
      },
      "committer": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Nov 01 15:22:22 2012 -0700"
      },
      "message": "Hide new location APIs and undeprecate old ones\n\nHide all new location APIs related to LocationRequest/Geofence and\nundeprecate all deprecated APIs consequently to the LocationRequest and\nGeofence introduction. Also introduce LocationRequestUnbundled for\nLocationProviders to use.\n\nChange-Id: I5b116c7d342041f45b341c88a4b6813571118018\n"
    },
    {
      "commit": "1e701979a031f42ee0fa0a07b151f6c61314e2e4",
      "tree": "ba0fad267efd6abc3fa812f3122af7449ac0257f",
      "parents": [
        "7e1a45d8af9d02fc552d65f2abcaefe3096b2c9c",
        "779b77455fc51382ecafa210b8a805d2a616da55"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Nov 01 15:07:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 01 15:07:56 2012 -0700"
      },
      "message": "Merge \"fix NLP for COARSE applications, build FLP with SDK\" into jb-mr1-dev"
    },
    {
      "commit": "779b77455fc51382ecafa210b8a805d2a616da55",
      "tree": "c8dbdaf9a7dc45be92fbef534f2ead9cd4b13039",
      "parents": [
        "03f7ebfeaadb3f03c9a9a6405276fb702ad11fe1"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Oct 31 15:54:05 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Nov 01 13:55:36 2012 -0700"
      },
      "message": "fix NLP for COARSE applications, build FLP with SDK\n\nIn this commit, we provide a means for unbundled location providers\nto attach an EXTRA_NO_GPS_LOCATION to the Locations that they report.\n\nWe also build FusedLocation against the SDK rather than the internal\ntree.\n\nUsed in conjunction with I394ded497b8de40d1f85618bff282553cdf378cb\nto fix NLP for applications with only ACCESS_COARSE_LOCATION\npermission.\n\nBug: 7453355\nChange-Id: Ie696f7abff9ef5237740ab87fe9f537a1c812c54\n"
    },
    {
      "commit": "8761e143c987fc48d854818988cde44700c9f602",
      "tree": "1fb5e1274405e5576d1a72776cba03892b4b1964",
      "parents": [
        "c86e8dffd04804f7f975c80325bc3ae70e7e972a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Oct 29 19:11:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 01 09:54:15 2012 -0700"
      },
      "message": "docs: Clarify the callback mechanisms for LocationRequest\nand clarify horizontal geofencing\n\nChange-Id: I8ff264d7a12c8ec3c79854e008aeeb5f922ad459\n"
    },
    {
      "commit": "b17223b6f5c4d894530c6412fc5dac2d6be403dc",
      "tree": "7f86418e3fde5490ff8ed786284c7b9477e4e2ad",
      "parents": [
        "799916e6ac706921e43a3382e5d9e06e13f87525"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Oct 24 10:40:07 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Oct 24 10:40:07 2012 -0700"
      },
      "message": "revise android.location.Geofence documentation\n\nBug: 7172696\nChange-Id: Ib1a104ee4a97c51996200b8d456face66178115f\n"
    },
    {
      "commit": "2291ca47c763d9c292865ada1450d3a094918882",
      "tree": "30667eb6c845aae0404d0844f2cb550388a2a504",
      "parents": [
        "cc0106cd99831ce7d3715e3c85e5b3e6c5c6ca78"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Oct 22 09:30:07 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Oct 22 12:53:32 2012 -0700"
      },
      "message": "LocationManager javadoc permission fixes\n\nThe javadoc mistakenly claimed that GPS and PASSIVE location\nproviders could be used with ACCESS_COARSE_LOCATION permissions.\nThat was incorrect, and the javadoc has been amended.\n\nBug: 7389249\nChange-Id: I6f6489bb539679a962c67ae7263857700df33c82\n"
    },
    {
      "commit": "37425c3475877f2fdadb78f669ec57fecf82dca7",
      "tree": "73b33ba2de97ecbb1505d6568f6d329424cbac26",
      "parents": [
        "a4c356cad7de0ef30faeaeadacd21b6eae913541"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Oct 16 16:08:48 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Oct 18 09:13:39 2012 -0700"
      },
      "message": "LocationManager permissions cleanup\n\nThis commit is the result of a comprehensive permissions review for\nMR1 release. It addresses a number of deviations from spec and from\nMR0\u0027s behavior, bringing MR1 into sync with both.\n\nIt also cleans up the concept of \"location resolution permission\",\nrepresenting it internally as an enumerated access level to reduce\nreliance on cumbersome string manipulation. There\u0027s a function to\nconvert the enum int into a permission string where needed, too.\n\nAdditionally, this confines caller-identity-sensitive calls to the\nhopefully-obviously-named \"getCallerAllowedResolutionLevel()\". This\nshould make it much easier to prove correctness with respect to\naccidentally calling functions that depend upon the caller\u0027s identity\nafter identity has already been shed by Binder.clearCallingIdentity().\n\nChange-Id: I446169aee8fb2fde26ac6d04b479b40253782acb\n"
    },
    {
      "commit": "e72fe16146dd33cb218bf8c16b069f68f331fdf8",
      "tree": "1fc422742eaca00e3ae01f790bc188e6d480a012",
      "parents": [
        "57e6203457cedbc6f4bf8a45635862a3eb717e9f"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Oct 04 13:40:08 2012 -0700"
      },
      "committer": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Oct 04 13:40:08 2012 -0700"
      },
      "message": "Prevent  overflow in LocationRequest.setExpireIn()\n\nPrevent overflow in LocationRequest.setExpireIn(), for example,\nwhen we pass in Long.MAX_VALUE.\n\nBug: 7047435\nChange-Id: Ie56928a59fb387173fbd3887c0ef9aede00f8152\n"
    },
    {
      "commit": "38389b6cf7bd2ef49d2bd20ff1bca8677596590e",
      "tree": "df60d969dee05b53545e2b0b18bfba57d266d595",
      "parents": [
        "ce803d8ed8350179a8474564df8ff26be32bbe5e"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Sun Sep 30 11:44:22 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Oct 01 09:09:25 2012 -0700"
      },
      "message": "Route GPS notifications to all users.\n\nThis takes the easy way around notifying the correct users\nabout GPS state transitions by notifying ALL the users(!).\n\nI\u0027ve also laid groundwork for proper multiuser support in\nLocationManager and did a tiny bit of cleanup in\nGpsNetInitiatedHandler while I was looking at notifications.\n\nBug: 7213552\nChange-Id: I2d6dc65c459e55d110ac0f5f79ae7a87ad638ede\n"
    },
    {
      "commit": "4118012da9a22694b3353040a485f8cdc27e2f17",
      "tree": "310eddfb0c3ee5d1205dfbc2c72dd91fb9ffc40f",
      "parents": [
        "2832136bb6fcace61ef078051e94aa0a841aac15"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Sep 26 11:29:25 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Sep 26 11:29:25 2012 -0700"
      },
      "message": "Fix for bug: #7173350. elapsedRealtimeNano() -\u003e elapsedRealtimeNanos()\n\nChange-Id: Ie38952bbaace080e81e41e61350cda172951d548\n"
    },
    {
      "commit": "73577888ec48bcb1eb5053f8dc3ba4eb33eb6f1a",
      "tree": "de817f40e52b5a09cea88d3fdab19ad826539735",
      "parents": [
        "b8c2ac3ecb6ee6319df65a88f42141c070b46163"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Sep 25 12:58:26 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Sep 25 12:58:26 2012 -0700"
      },
      "message": "Fix for bug: #7172778. Javadoc errors in LocationManager.\n\nChange-Id: Iaebd4cf00c8a33bcf4fc74eaa1dfec9675032826\n"
    },
    {
      "commit": "bc391d58c8d09bd58b57dda20dd9d2281d90db32",
      "tree": "a2229a1a1b02535f6ee5ae3ddaba76db9cb7a93e",
      "parents": [
        "9b93f4def131845200997c861858f34cc15c8dee",
        "53fe75677212d0eb45e256a78599d7866256bc6a"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Sep 24 11:41:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 24 11:41:53 2012 -0700"
      },
      "message": "Merge \"Revert \"Fix for bug: #7173350. elapsedRealtimeNano() -\u003e elapsedRealtimeNanos()\"\" into jb-mr1-dev"
    },
    {
      "commit": "53fe75677212d0eb45e256a78599d7866256bc6a",
      "tree": "9e2bacbd6cf9fa125447b697c9531d7a3583b8ac",
      "parents": [
        "2f6d8829524dfca3a77e9a57c3b9c3862209877d"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Sep 24 11:38:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 24 11:38:29 2012 -0700"
      },
      "message": "Revert \"Fix for bug: #7173350. elapsedRealtimeNano() -\u003e elapsedRealtimeNanos()\"\n\nThis reverts commit 2f6d8829524dfca3a77e9a57c3b9c3862209877d\n\nChange-Id: Id5af767a09fc319127c4ebef837c5b7a7f75cb01\n"
    },
    {
      "commit": "b00df8e929f9ba865a95a7df3f949e6169332954",
      "tree": "403858cba43361e6ca1a9a4d955929f4b671e2a0",
      "parents": [
        "cd11b223f3d23ca0f92b53808f7e1cce928c2a7b",
        "2f6d8829524dfca3a77e9a57c3b9c3862209877d"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Sep 24 11:02:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 24 11:02:31 2012 -0700"
      },
      "message": "Merge \"Fix for bug: #7173350. elapsedRealtimeNano() -\u003e elapsedRealtimeNanos()\" into jb-mr1-dev"
    },
    {
      "commit": "17e3e9e53c5fb9c92c8972a8d92659c6bef85831",
      "tree": "e7d429e36069f950f9c2b47ed66b55acf4fb0a87",
      "parents": [
        "e3f2ac9e526e5b4de4d2ae113e644c1cb14b1ce6",
        "09016ab4dd056a16809419d612cb865a14980880"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Sun Sep 23 15:06:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 23 15:06:59 2012 -0700"
      },
      "message": "Merge \"Do not use passive GPS data for COARSE only apps.\" into jb-mr1-dev"
    },
    {
      "commit": "2f6d8829524dfca3a77e9a57c3b9c3862209877d",
      "tree": "15bd455fb9ed48e4246a475855c9ad7d0a15d94b",
      "parents": [
        "f98db0de2248ad286b207eed6a826373cc60b786"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Sep 21 14:21:27 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Sep 21 15:54:41 2012 -0700"
      },
      "message": "Fix for bug: #7173350. elapsedRealtimeNano() -\u003e elapsedRealtimeNanos()\n\nChange-Id: I71c24ea10093ece07a0780e97bc641ff548c1a44\n"
    },
    {
      "commit": "09016ab4dd056a16809419d612cb865a14980880",
      "tree": "e920e568aeac8e75b2f4b9e815047bf7c4a8f2af",
      "parents": [
        "537d47f510ce49acee09516ed5dde680d910ff94"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Sun Sep 16 12:33:15 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Fri Sep 21 13:45:41 2012 -0700"
      },
      "message": "Do not use passive GPS data for COARSE only apps.\n\nFusionEngine now attaches a secondary location that has never seen\nGPS data to its result. LocationFudger uses the GPS-less location so\nthat COARSE apps never see data from the GPS provider.\n\nWhen the previous location is updated, the previous GPS-less location\nis carried over if the location update was GPS-only.\n\nAdditionally, apps without FINE permission are not notified when GPS\nlocation changes, and any attempt to use GPS_PROVIDER without FINE\npermission is met by a stern SecurityException.\n\nBug: 7153659\nChange-Id: I12f26725782892038ce1133561e1908d91378a4a\n"
    },
    {
      "commit": "8a624ef0fe5e86031f15f4120205c869e34f6637",
      "tree": "796e0ea05d7777a9ed60233c3b8f3c264bbca707",
      "parents": [
        "11cb642756093a4af901b1525375b1eb2b5c3e2b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 11:20:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 11:20:00 2012 -0700"
      },
      "message": "API REVIEW: Undeprecate Location.dump()\nBug #7173109\n\nChange-Id: Ia2f4a5b6255dae7ace4702f7d66ec30a077c9c79\n"
    },
    {
      "commit": "4fab68b5324e1f9b6765cdc33e66d1f074623dc2",
      "tree": "96d99f6794718101b1cbb52c72af154d2b0790e9",
      "parents": [
        "aefd73d2b9f17a06f05346f302db1e393a7ece19"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Sep 13 13:20:59 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Sep 13 14:17:41 2012 -0700"
      },
      "message": "Require ACCESS_FINE_LOCATION for Geofence use.\n\nBug: 7153226\nChange-Id: I49236379e739fcda66bbc9a31cfdca9a87122aec\n"
    },
    {
      "commit": "1332b53522e281012fefb34bfbcc68a03028f516",
      "tree": "ee947d9b82613b9ff24a3f75d38fb578b949e7a4",
      "parents": [
        "5584b497b7fcd8660cc49cfc8ab4dd0c6dad1060"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Aug 21 16:25:47 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Aug 21 16:26:26 2012 -0700"
      },
      "message": "Fix some location issues exposed by CTS.\n\nChange-Id: I5859ee2c9db5745b0a3bc8abfa8f08728fb25059\n"
    },
    {
      "commit": "5584b497b7fcd8660cc49cfc8ab4dd0c6dad1060",
      "tree": "4528c5cab02a61558cdba596c0dd666b1ca263c0",
      "parents": [
        "2b7a0d00426218523629e4e8dd2e9197d445c09b"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Aug 20 14:40:24 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Aug 21 13:52:20 2012 -0700"
      },
      "message": "Print timestamp (instead of age) in Location#toString()\n\nAge was a bad idea, since it depends when toString() was called\n\nChange-Id: Ica0b6bfa9a93b5a452ba3def5fbb2b0a0194c401\n"
    },
    {
      "commit": "4035f5a7c191a68bc9a5912ce44c43c82e9e5dbf",
      "tree": "df96aa5f4a8a2d60d872a17024d89944ece40d60",
      "parents": [
        "81c304b99d920e8d66ac16332489d78ff7162e12"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 14:43:49 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 15:25:16 2012 -0700"
      },
      "message": "Port location blacklist code to MR1.\n\nI had to re-do this change for MR1 because LocationManagerService changed\nso much. Here is the original change description:\n\nAdd package-name-prefix blacklist for location updates.\n\nThe Settings.Secure value locationPackagePrefixBlacklist and\nlocationPackagePrefixWhitelist contains comma seperated package-name\nprefixes.\n\nLocation \u0026 geo-fence updates are silently dropped if the receiving\npackage name has a prefix on the blacklist. Status updates are\nnot affected. All other API\u0027s work as before.\n\nA content observer is used so run-time updates to the blacklist\napply immediately. There is both a blacklist and a whitelist.\nThe blacklist applies first, and then exemptions are allowed\nfrom the whitelist. In other words, if your package name prefix\nmatches both the black AND white list, then it is allowed.\n\nBug: 6986553\nChange-Id: I1e151e08bd7143e47db005bc3fe9795076398df7\n"
    },
    {
      "commit": "b03c8c508dcbbef364e624ad5bc0ab6fa6733dc7",
      "tree": "78268b9a4f2cdfcecbdca83a024f6fb9fce013ff",
      "parents": [
        "4e31c4fffbc42b4c2b5dca6431cfeef9e078f5b4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Aug 14 19:13:47 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 17:59:35 2012 -0700"
      },
      "message": "Add documentation for com.android.location.provider shared library.\n\nChange-Id: I222d61811c88272e84a85512623210c0238337e5\n"
    },
    {
      "commit": "4e31c4fffbc42b4c2b5dca6431cfeef9e078f5b4",
      "tree": "e1e5a1df577872de6f947623cdccfe50062cb521",
      "parents": [
        "74fa7eabda3d0c1a85e0b568e3fc4230ed4fe7a4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Aug 13 19:35:39 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 17:59:34 2012 -0700"
      },
      "message": "Add javadoc for new location API\u0027s.\n\nChange-Id: If15024ee88421c07ba3a174747774fc451fd002e\n"
    },
    {
      "commit": "74fa7eabda3d0c1a85e0b568e3fc4230ed4fe7a4",
      "tree": "aaf46ec024fa88f5172c39cfb46a0f8bf8c4a877",
      "parents": [
        "08ca1046fe4f1890f91241f8d082a024ef6cfd93"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Aug 13 19:36:38 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 15:22:24 2012 -0700"
      },
      "message": "Improve coarse locations.\n\nFix a couple of bugs, and modify the behavior of the random offset.\n\nThe random offset now slowly changes over time, to mitigate against\napplications averaging out the offset over time while at a\ngrid boundary.\n\nChange-Id: Iecffff29145b8c2b30d1eca1662cf9d3e8cff756\n"
    },
    {
      "commit": "08ca1046fe4f1890f91241f8d082a024ef6cfd93",
      "tree": "da4e378d5fb57beac9ab8bca3f28e0f6da335456",
      "parents": [
        "3914e4b7d12b014f73085cd6e34b6fd69ea26226"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 15:47:53 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 17:17:32 2012 -0700"
      },
      "message": "Fix a couple of bugs from the location overhaul.\n\nMarshall LocationRequest array correctly.\n\nObserve reportLocation from FusionEngine.\n\nActually deliver the setRequest message to fusion engine.\n\nChange-Id: Iff64596fdd42f9fb06e563591dda9fbe0241533a\n"
    },
    {
      "commit": "3914e4b7d12b014f73085cd6e34b6fd69ea26226",
      "tree": "11dce06e9b6e602183cd024e709ec476e02defd5",
      "parents": [
        "6fa9ad4afcd762aea519ff61811386c23d18ddb2"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 15:25:16 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 15:27:38 2012 -0700"
      },
      "message": "Remove LocationManager#getLastKnownLocation(Criteria).\n\nThis was never a public API, so we don\u0027t need to follow\nan orderly deprecation. And it breaks a CTS test:\n\ncts/tests/tests/location/src/android/location/cts/LocationManagerTest.java:521: reference to getLastKnownLocation is ambiguous, both method getLastKnownLocation(java.lang.String) in android.location.LocationManager and method getLastKnownLocation(android.location.Criteria) in android.location.LocationManager match\n            mManager.getLastKnownLocation(null);\n                    ^\n\nChange-Id: I503267e4fa577ce4bf684239da777f11b0e511f5\n"
    },
    {
      "commit": "6fa9ad4afcd762aea519ff61811386c23d18ddb2",
      "tree": "5b027550205ada4b972f5cc3d8073819c07d9c75",
      "parents": [
        "c47f80f1ae96e3c8b6a750d68cc12dfbbca97254"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 16 12:18:23 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 14:57:09 2012 -0700"
      },
      "message": "Location overhaul, major commit.\n\nThemes: Fused Location, Geofencing, LocationRequest.\n\nAPI changes\no Fused location is always returned when asking for location by Criteria.\no Fused location is never returned as a LocationProvider object, nor returned\n  as a provider String. This wouldn\u0027t make sense because the current API\n  design assumes that LocationProvider\u0027s have fixed properties (accuracy, power\n  etc).\no The fused location engine will tune itself based on the criteria passed\n  by applications.\no Deprecate LocationProvider. Apps should use fused location (via Criteria\n  class), instead of enumerating through LocationProvider objects. It is\n  also over-engineered: designed for a world with a plethora of location\n  providers that never materialized.\no The Criteria class is also over-engineered, with many methods that aren\u0027t\n  currently used, but for now we won\u0027t deprecate them since they may have\n  value in the future. It is now used to tune the fused location engine.\no Deprecate getBestProvider() and getProvider().\no Add getLastKnownLocation(Criteria), so we can return last known\n  fused locations.\no Apps with only ACCESS_COARSE_LOCATION _can_ now use the GPS, but the location\n  they receive will be fudged to a 1km radius. They can also use NETWORK\n  and fused locatoins, which are fudged in the same way if necessary.\no Totally deprecate Criteria, in favor of LocationRequest.\n  Criteria was designed to map QOS to a location provider. What we\n  really need is to map QOS to _locations_.\n  The death knell was the conflicting ACCURACY_ constants on\n  Criteria, with values 1, 2, 3, 1, 2. Yes not a typo.\no Totally deprecate LocationProvider.\no Deprecate test/mock provider support. They require a named provider,\n  which is a concept we are moving away from. We do not yet have a\n  replacement, but I think its ok to deprecate since you also\n  need to have \u0027allow mock locations\u0027 checked in developer settings.\n  They will continue to work.\no Deprecate event codes associated with provider status. The fused\n  provider is _always_ available.\no Introduce Geofence data object to provide an easier path fowards\n  for polygons etc.\n\nImplementation changes\no Fused implementation: incoming (GPS and NLP) location fixes are given\n  a weight, that exponentially decays with respect to age and accuracy.\n  The half-life of age is ~60 seconds, and the half-life of accuracy is\n  ~20 meters. The fixes are weighted and combined to output a fused\n  location.\no Move Fused Location impl into\n  frameworks/base/packages/FusedLocation\no Refactor Fused Location behind the IProvider AIDL interface. This allow us\n  to distribute newer versions of Fused Location in a new APK, at run-time.\no Introduce ServiceWatcher.java, to refactor code used for run-time upgrades of\n  Fused Location, and the NLP.\no Fused Location is by default run in the system server (but can be moved to\n  any process or pacakge, even at run-time).\no Plumb the Criteria requirements through to the Fused Location provider via\n  ILocation.sendExtraCommand(). I re-used this interface to avoid modifying the\n  ILocation interface, which would have broken run-time upgradability of the\n  NLP.\no Switch the geofence manager to using fused location.\no Clean up \u0027adb shell dumpsys location\u0027 output.\no Introduce config_locationProviderPackageNames and\n  config_overlay_locationProviderPackageNames to configure the default\n  and overlay package names for Geocoder, NLP and FLP.\no Lots of misc cleanup.\no Improve location fudging. Apply random vector then quantize.\no Hide internal POJO\u0027s from clients of com.android.location.provider.jar\n  (NLP and FLP). Introduce wrappers ProviderRequestUnbundled and\n  ProviderPropertiesUnbundled.\no Introduce ProviderProperties to collapse all the provider accuracy/\n  bearing/altitude/power plumbing (that is deprecated anyway).\no DELETE lots of code: DummyLocationProvider,\no Rename the (internal) LocationProvider to LocationProviderBase.\no Plumb pid, uid and packageName throughout\n  LocationManagerService#Receiver to support future features.\n\nTODO: The FLP and Geofencer have a lot of room to be more intelligent\nTODO: Documentation\nTODO: test test test\n\nChange-Id: Iacefd2f176ed40ce1e23b090a164792aa8819c55\n"
    },
    {
      "commit": "48c5eb018b1731bd47caccd43cda2cd36ebc271f",
      "tree": "8d4161bddb28cb388d875e9639e1c7c53d41f5d3",
      "parents": [
        "47db02bad8fed67025669c41ef0c0dd9cafe7ed2"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Sun Jul 29 21:23:08 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 30 13:17:30 2012 -0700"
      },
      "message": "DO NOT MERGE. Add package-name-prefix blacklist for location updates.\n\nThe Settings.Secure value locationPackagePrefixBlacklist and\nlocationPackagePrefixWhitelist contains comma seperated package-name\nprefixes.\n\nLocation \u0026 geo-fence updates are silently dropped if the receiving\npackage name has a prefix on the blacklist. Status updates are\nnot affected. All other API\u0027s work as before.\n\nA content observer is used so run-time updates to the blacklist\napply immediately. There is both a blacklist and a whitelist.\nThe blacklist applies first, and then exemptions are allowed\nfrom the whitelist. In other words, if your package name prefix\nmatches both the black AND white list, then it is allowed.\n\nChange-Id: I4ea2ad56fa6bd75d32151bc250ac25c26a5777c4\n"
    },
    {
      "commit": "2eeeec248a38ff33999c83f4b8d5bab7d50e79d2",
      "tree": "2886aaefdd09bbafa7853dbbbb29aa866846045f",
      "parents": [
        "b8acd060d409f0e81ab3510b429cb86d3f34adb8"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jul 18 13:13:37 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jul 20 10:07:07 2012 -0700"
      },
      "message": "Improve Location object.\n\nAdd getElapsedRealtimeNano():\n\nCurrently Location just has getTime() and setTime() based on UTC time.\nThis is entirely unreliable since it is not guaranteed monotonic.\nThere is a lot of code that compares fix age based on deltas -\nand it is all broken in the case of a system clock change. System\nclock can change when switching cellular networks (and in some\ncases when switching towers).\n\nDocument the meaning of getAccuracy():\nIt is the horizontal, 95% confidence radius.\n\nMake some fields mandatory if they are reported by a LocationProvider:\n\nAll Locations returned by a LocationProvider must include at the\nminimum a lat, long, timestamps, and accuracy. This is necessary\nto perform fused location. There are no public API\u0027s for applications\nto feed locations into a location provider so this should not cause\nany breakage.\n\nIf a LocationProvider does not fill in enough fields on a Location\nobject then it is dropped, and logged.\n\nBug: 4305998\nChange-Id: I7df77125d8a64e174d7bc8c2708661b4f33461ea\n"
    },
    {
      "commit": "e0fd693c6098f59004f9e96ad75c058e26c337b0",
      "tree": "d015b05584ab8cb4feab93fe8bdbedcbad7502fa",
      "parents": [
        "357d9cb861e05c514acba8cc0a8fc5ef70e4a356"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jul 11 10:26:13 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 16 12:18:52 2012 -0700"
      },
      "message": "Improve geofencing: throttle location updates with distance to fence.\n\nPreviously any geofence (proximity alert) would turn the GPS on at full rate.\nNow, we modify the GPS interval with the distance to the nearest geofence.\nA speed of 100m/s is assumed to calculate the next GPS update.\n\nAlso\no Major refactor of geofencing code, to make it easier to continue to improve.\no Discard proximity alerts when an app is removed.\no Misc cleanup of nearby code. There are other upcoming changes\n  that make this a good time for some house-keeping.\n\nTODO:\nThe new geofencing heuristics are much better than before, but still\nrelatively naive. The next steps could be:\n- Improve boundary detection\n- Improve update thottling for large geofences\n- Consider velocity when throttling\n\nChange-Id: Ie6e23d2cb2b931eba5d2a2fc759543bb96e2f7d0\n"
    },
    {
      "commit": "9be0105fbc56eb1b1813bb7c5fe258a144867a43",
      "tree": "964727f4694bb224eacdaaa68320292aab85ffd3",
      "parents": [
        "3cd4624448dcaddecc75461ef645da72e7e5c098"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Jun 22 12:35:08 2012 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Jun 22 12:35:08 2012 -0700"
      },
      "message": "docs: fix several links\n\nChange-Id: I89d9fd64dc22c90680bb05415cc966c255165af9\n"
    },
    {
      "commit": "f1be6861daea57ba0a1595739a899d05229d6d15",
      "tree": "92debafdbbce7ecc9792e8a6f7e40c919c2f8f47",
      "parents": [
        "c1c140657633cc5b0ff26da1f122fab305d21e01"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue May 15 10:53:42 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu May 17 14:56:54 2012 -0700"
      },
      "message": "Enforce the minTime parameter in LocationManager#requestLocationUpdates\n\nThere is a long history in Android, on both GED and non GED devices\nof GPS providers ignoring the minTime parameter making location updates\nevery second. The problem is usually poor GPS drivers that claim to\ndo scheduling but then do not.\n\nBy making the minTime parameter strict (instead of a hint) we can add\na CTS test to ensure that udpates to not occur too frequently. I believe\nthis is the desired behavior from apps. If apps want to take advantage\nof more frequent updates when another application asks for those updates\nthen it can use the passive provider.\n\nThe CTS test for GPS has already been submitted (as part of CTS Verifier).\n\nBug: 6424983\nChange-Id: I163b9e44ea7ab71530b86fc2282614e0150e90f1\n"
    },
    {
      "commit": "3aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45",
      "tree": "7600f58de48f6764d476cc9d6a92ed0a5dddf278",
      "parents": [
        "8f04ae361cd34fdaea41fbedefb85cff2c684e36"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Tue Dec 20 10:38:34 2011 -0800"
      },
      "committer": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Thu Dec 22 15:08:23 2011 -0800"
      },
      "message": "docs: Add developer guide cross-references, Project ACRE, round 4\n\nChange-Id: I1b43414aaec8ea217b39a0d780c80a25409d0991\n"
    },
    {
      "commit": "d73b79bb314dde86cf8ff9300fefc133b31841d1",
      "tree": "a53994afb14a9a58be2a5088aa903fbe7495ff71",
      "parents": [
        "19a06fe93cccb4b1dd224b8456969821a19b07ef"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Dec 13 14:02:32 2011 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Dec 13 14:02:32 2011 -0800"
      },
      "message": "Cherry-picking Id45abeba and Ia065dec6 for MR1\n\n-------------------------------------------------------\nMCC detection fixes for CountryDetector\n\n- Don\u0027t get and cache phone tpe at the initialization time.  At this point\nTelephonyManager is probably not ready yet.\n\n- Refresh MCC whenever we get the service state changed callback, even when\nthe state hasn\u0027t actually changed, in order to make sure we get refresh\ncountry properly when MCC changes.\n\n- Also remove the initialization of mPhoneStateListener, which prevented us from\nregistering phone state listener properly.\n\n- Also fix tests which were already failing.\n\nBug 5670680\n\n-------------------------------------------------------\nAdd logging to country detector logic\n\nThis is for debugging purposes to verify the effects of\nchange Id45abeba1b1e843053ac2c946861b439ca568de4.\n\nBug: 5670680\nChange-Id: I238d953484e2c8135f7dac70fce8662c8300a286\n"
    },
    {
      "commit": "40c5ccfffe1aca40c8e6b9155ce2f9918b53701a",
      "tree": "b7db53676f6f8ad3f8d3e2e5d7345a869ba4bcb6",
      "parents": [
        "f55df0e26a71b93bda2e10de7a5b2dd9ab843765"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Jul 19 12:10:07 2011 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Jul 19 12:10:07 2011 -0700"
      },
      "message": "Acknowledge that the platform guarantees UTF-8 and UTF-16.\n\nThese log statements were dead code. That isn\u0027t much of a problem,\nexcept that the \u0027e.getMessage()\u0027 that was being logged could be null,\nand that would cause a real problem.\n\nChange-Id: I8573bc687a7eda73782bd028e8ddc048a1954dc5\n"
    },
    {
      "commit": "08c34c27b6a0153a58950ce7c541700a71bc0ed7",
      "tree": "b2b18d065649e61248dc4c816ead4e124885362d",
      "parents": [
        "73f0a3a6bde168524a5f3c7ac31ba372174940e7",
        "e0009bb0b700dcfeba3ff77f8c33113499674432"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Jul 01 07:56:15 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 01 07:56:15 2011 -0700"
      },
      "message": "am e0009bb0: am 98395483: am 9f2cbf14: am e06749e1: Merge \"Add FLAG_AUTO_CANCEL flag for multiple supl notifications.\"\n\n* commit \u0027e0009bb0b700dcfeba3ff77f8c33113499674432\u0027:\n  Add FLAG_AUTO_CANCEL flag for multiple supl notifications.\n"
    },
    {
      "commit": "e0009bb0b700dcfeba3ff77f8c33113499674432",
      "tree": "3f99fd3784efc458c5d0cc49fe332c20adaa71cd",
      "parents": [
        "0562efd1ea970ded01b1b47bbce790a269a60c45",
        "98395483e4309f7b92348136491575861008b3c0"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Jun 30 08:25:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 30 08:25:13 2011 -0700"
      },
      "message": "am 98395483: am 9f2cbf14: am e06749e1: Merge \"Add FLAG_AUTO_CANCEL flag for multiple supl notifications.\"\n\n* commit \u002798395483e4309f7b92348136491575861008b3c0\u0027:\n  Add FLAG_AUTO_CANCEL flag for multiple supl notifications.\n"
    },
    {
      "commit": "3746f2d91425e24b23ddf34f2b9afef3f3efc3e2",
      "tree": "eb95e9f894bc409229986da734db0df178e9cc6e",
      "parents": [
        "da1fa1e42fc7fb07d532f464b45d266801c20e73"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Jun 24 15:42:43 2011 -0700"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Mon Jun 27 15:20:46 2011 -0700"
      },
      "message": "Use upper case country codes in Country.java\n\nPreviously external/libphonenumber accepted lower case\ncountry codes (e.g. \"us\") but now it doesn\u0027t for performance reason.\nActually ISO 3166-1 doesn\u0027t allow lower cases, so we should not rely\non them.\n\nNeed to fix unit tests for PhoneNumberUtils, as it implicitly\nrelies on the previous behavior.\n\nSee also I3a3e6db84ed0d24290b1be19651fa9a82de4cc39\n\nBug: 4941319\nChange-Id: If16f6531f274a0faf5e28724854409ca9b00a669\n"
    },
    {
      "commit": "fad5445c66ca6190ad37515018996c61d9b2b0a5",
      "tree": "2185a96e749a3fad20b7e45e26c4d7eafd20dc24",
      "parents": [
        "94062517ae5573f9a1a877a83fe7d8e6d1a2c350"
      ],
      "author": {
        "name": "Anshuman Pandey",
        "email": "anshuman.pandey@stericsson.com",
        "time": "Tue Mar 01 12:09:08 2011 +0530"
      },
      "committer": {
        "name": "christian bejram",
        "email": "christian.bejram@stericsson.com",
        "time": "Wed Jun 15 14:49:53 2011 +0200"
      },
      "message": "Add FLAG_AUTO_CANCEL flag for multiple supl notifications.\n\nAdded FLAG_AUTO_CANCEL to notification flags in GpsNetInitiatedHandler.java.\nThis is done to clear consecutive notifications in UI\n\nChange-Id: I84be36af0b556f43ffd7d51ac04ff12300090ca5\nSigned-off-by: Anshuman Pandey \u003canshuman.pandey@stericsson.com\u003e\nSigned-off-by: Christian Bejram \u003cchristian.bejram@stericsson.com\u003e\n"
    },
    {
      "commit": "a550bdc84af70babb48091197bfb1b93d3671664",
      "tree": "d1bbbd600c4cd3faaf7022a89b7b7678595b3841",
      "parents": [
        "9a51519dfc20d5ed1fb9e25270b8e46e0e3ab8db"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Apr 27 08:26:33 2011 -0700"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Apr 28 16:18:19 2011 -0700"
      },
      "message": "Use passive provider for location based country detection\n\nBug: 4345419\nChange-Id: Ia3e071b97c6971538ea994fdee6029db928201d6\n"
    },
    {
      "commit": "e590ccfb128b72dade4f6521b49eb8f658bf35e1",
      "tree": "43faf0f814fd0d63144dffe435619f77e3a58e4e",
      "parents": [
        "e4f33617c3654bdcb246ee8f74e67d1828cd42c9"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 28 16:52:44 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 29 11:26:08 2011 -0700"
      },
      "message": "Fix the javadoc for LocationManager.requestSingleUpdate()\n\nIt was saying the same thing as requestLocationUpdates(), but it only provides a single update.\n\nChange-Id: I0a0f612104a946b7db96928505bb95673377a335\n"
    },
    {
      "commit": "e23fc8ee13605dace4a7abcdf85caec639407786",
      "tree": "44e7188000f900f3e2cfe45325298ed2a941b4fb",
      "parents": [
        "1be6cce70175bd90744498d5fca95e3f9eec1cf6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 28 16:52:44 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 28 16:52:44 2011 -0700"
      },
      "message": "Fix the javadoc for LocationManager.requestSingleUpdate()\n\nIt was saying the same thing as requestLocationUpdates(), but it only provides a single update.\n\nChange-Id: Ib677d40e050a82332df539a823cc677de1fcb4fd\n"
    },
    {
      "commit": "b732b7b5e8192501360edc15fb8c6399d11fb97d",
      "tree": "a2fab9c785f055c9962e565896d5e4a1bdadc769",
      "parents": [
        "1649d91f781445a78ce09ed5500503fd96eb9113",
        "ce57a7f35344e76689d30f45964d1e37b78280cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 10:10:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 10:10:38 2011 -0800"
      },
      "message": "am ce57a7f3: am 6504490c: am dff6b8e7: Merge \"Add --non-constant-id to aapt.\"\n\n* commit \u0027ce57a7f35344e76689d30f45964d1e37b78280cb\u0027:\n  GpsLocationProvider: Clean up HAL initialization/cleanup sequence\n  Fixed GSM encoded network initiated position request\n  Ensuring thread-safe usage of DateFormat.\n  Fixing infinite loop for zero duration.\n  Fix for an infinite loop while scrolling lists.\n  WAPPushManager, WAP Push over SMS message handler\n  Add --non-constant-id to aapt.\n"
    },
    {
      "commit": "6664d989c8432910ce5f13469ba49e77ae185f89",
      "tree": "6ebb5c75bdc3bc8f07ab7a5d54c5db6830cd1b5d",
      "parents": [
        "7118bdec523568842e70555e353951df9f2596fd"
      ],
      "author": {
        "name": "Hakan Gustavsson",
        "email": "hakan.gustavsson@sonyericsson.com",
        "time": "Thu Nov 18 15:00:35 2010 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Tue Feb 22 14:35:47 2011 +0100"
      },
      "message": "Fixed GSM encoded network initiated position request\n\nGSM encoded network initiated position requests were previously\nnot correctly decoded. The GSM encoded string was decoded as\nASCII but not all characters are encoded in the same way for\nGSM and ASCII. These characters was not displayed.\n\nBesides that, when the number of characters was evenly divided\nby 8 the last character was lost. This is also corrected.\n\nChange-Id: Ic70b7c28bbba1f2936a9cc99e78f8002cc5c8761\n"
    },
    {
      "commit": "f4f05b8f24183b9e0d6959fe8b71fb88543edd9b",
      "tree": "eec484b96bc634afa3e31f6a44891c534c9c5832",
      "parents": [
        "7b4ba9d80d2cdde310c29d01d0e22c7815d84261"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Jan 07 14:38:23 2011 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Jan 26 14:58:19 2011 -0800"
      },
      "message": "Update package descriptions with editorial revisions.\nNotably, this removes exessive info about resources\nfrom the content package, because it\u0027s not a good location\nand the info is avilable in the dev guide, but also\nadded some of the info to the Resources class description.\n\nChange-Id: Ie78af26c9cec66314deb98e53078f48e16c08e70\n"
    },
    {
      "commit": "65dd62a306b733b4891aa455b2e099d9c15fffa8",
      "tree": "b25925b21e13ddb153b47e92011a6ef71099ca3a",
      "parents": [
        "1ab60b44e6d1317d168185666b7597ed1c8029d5",
        "ee27dd356e7257f553e8aec74d2c7dcbbde8bd5a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 07 13:17:37 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 07 13:17:37 2010 -0800"
      },
      "message": "resolved conflicts for merge of ee27dd35 to master\n\nChange-Id: Ia9f4ea86b8554ff04a3aa6b9e065239ae73740e7\n"
    },
    {
      "commit": "12902d687fa1bd4bff3c2dfc079c71eacb00eedd",
      "tree": "aa62ab756e61c52df8e02a1ba559da35b04fda11",
      "parents": [
        "1ee2394edd4b90111f8174862c7c0f435e1a3634",
        "78742e01f73d098076f55cf4f40f0a013a3d88ce"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 07 12:47:12 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 07 12:51:49 2010 -0800"
      },
      "message": "resolved conflicts for merge of 78742e01 to stage-korg-master\n\nChange-Id: I0ce429afeb26184f075b4ed326fc4e1c0833e905\n"
    },
    {
      "commit": "dea74b0285ef946cceb4f56e576800cbedbc3a95",
      "tree": "a192ca0dcb201db68feace26c2369cdca404eb3b",
      "parents": [
        "e1de3f390e7be3f82fa5e3e5bf6d6c8cc8414091"
      ],
      "author": {
        "name": "Hakan Gustavsson",
        "email": "hakan.gustavsson@sonyericsson.com",
        "time": "Mon Nov 22 16:08:35 2010 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Fri Dec 03 09:47:21 2010 +0100"
      },
      "message": "Strings for NI position request are moved to resources\n\nThe strings used by the framework for network initiated position\nrequests are now string resources that can be properly localized.\n\nChange-Id: If1cba89adb1bfcb9c8fdb59b9c5aa1107b11279e\n"
    },
    {
      "commit": "2a32c493cead3913bc3cb50ff22c4af2b87dbfef",
      "tree": "f00bd75daf534af7c6a9a369967e01c3444ffd73",
      "parents": [
        "bff405f91001237ec94ec64f86fa2370c4509559",
        "cb51c0c7b155a5141a51fc4d3e57792da7e89cc4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 18:24:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 18:24:48 2010 -0700"
      },
      "message": "am cb51c0c7: am 3e94b94f: Merge \"Remove old location classes.\" into gingerbread\n\nMerge commit \u0027cb51c0c7b155a5141a51fc4d3e57792da7e89cc4\u0027\n\n* commit \u0027cb51c0c7b155a5141a51fc4d3e57792da7e89cc4\u0027:\n  Remove old location classes.\n"
    },
    {
      "commit": "0f5eee0bf8fbdc7c770301f04a69bcf26864f951",
      "tree": "73666869e48c93449cebabe01fba5a096fc1b8e4",
      "parents": [
        "4f67e1ccf1ae1a855521a307a13a728b8069838f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 17:50:50 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 17:50:50 2010 -0700"
      },
      "message": "Remove old location classes.\n\nChange-Id: Ib7e883c64996a8bfaaa755d88b855e17e3442e26\n"
    },
    {
      "commit": "f72d1e2129500179f973d46bca571546e1192e3f",
      "tree": "0b01a888426762c8456422f66e5a42a0d4d0b6d1",
      "parents": [
        "c9a9800fa1572c3a25831bdf22f7b4579fd8bd10",
        "e5317fbd48875896e04a34d955edf650f11f9771"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 17:40:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 17:40:02 2010 -0700"
      },
      "message": "am e5317fbd: am 4f67e1cc: Merge \"Add location shared library for location provider APIs.\" into gingerbread\n\nMerge commit \u0027e5317fbd48875896e04a34d955edf650f11f9771\u0027\n\n* commit \u0027e5317fbd48875896e04a34d955edf650f11f9771\u0027:\n  Add location shared library for location provider APIs.\n"
    },
    {
      "commit": "63c82c027bb3bd2b803e3225c9135c77b1f92b7b",
      "tree": "077aee528f27fcb279d2409b46afa882ad3c0325",
      "parents": [
        "65a5ba45559e88a50c258d794a1728498c248376"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 14:24:39 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 28 15:19:29 2010 -0700"
      },
      "message": "Add location shared library for location provider APIs.\n\nFirst part, adding the existing classes in their new library.  The old\ncode will be removed once everything gets switched to using this.\n\nChange-Id: I27b6ad8c75c16f35300090e95f12a7db5608e3a3\n"
    },
    {
      "commit": "537ce32c71284f7bef40371778926f34d41f277e",
      "tree": "fa74b1f1e6db182562a07967c8a5dca951a34dd0",
      "parents": [
        "caa9aa08aaa5d3e879fcccad5c4bcb1c79fba6e3",
        "24956d36f46dd7be0b029a7b2b43c1020ae8a4c5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 20 19:33:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 20 19:33:58 2010 -0700"
      },
      "message": "am 24956d36: am 307aef01: Merge \"LocationManager: Hide location provider and geocode provider APIs.\" into gingerbread\n\nMerge commit \u002724956d36f46dd7be0b029a7b2b43c1020ae8a4c5\u0027\n\n* commit \u002724956d36f46dd7be0b029a7b2b43c1020ae8a4c5\u0027:\n  LocationManager: Hide location provider and geocode provider APIs.\n"
    },
    {
      "commit": "e15735a9e0c0b1448b68f2d6b3247404fc1df417",
      "tree": "6fd1cf74181abfc926c730bf451af4cb6b42b49f",
      "parents": [
        "4db643eb8430d063b1adc4ba164bfa1c1281bdf3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 20 17:48:47 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 20 20:14:34 2010 -0400"
      },
      "message": "LocationManager: Hide location provider and geocode provider APIs.\n\nAlso rename Geocoder.isImplemented() to Geocoder.isPresent()\n\nBUG: 3000738\nBUG: 3001413\n\nChange-Id: I56bb4e9a9c59f8b79de585eeb168f74c3ff1a853\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e746f03c6c8b8d0897d322ab524d545ace200fcd",
      "tree": "c994b35c248fe2f75bbb4060b1441289a9cca292",
      "parents": [
        "1510770165b7bc675e5171560e907c0269dbe0fa",
        "53686433a9790bcfe7211a661b26783ee12bb436"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 13 16:02:57 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 13 16:56:10 2010 -0700"
      },
      "message": "resolved conflicts for merge of 53686433 to master\n\nChange-Id: I27004dc464f5771d3205ae5757c6eccc5b16854d\n"
    },
    {
      "commit": "7e9f4eb2608148436cef36c9969bf8a599b39e72",
      "tree": "16351bff3017f948792a6308f4f6698e0a9d769c",
      "parents": [
        "cc5494c9996f809e36539b24e8b6b67683383d29"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 10 18:43:00 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 13 14:20:48 2010 -0700"
      },
      "message": "Track client requests through location manager.\n\nThis fixes a problem where applications could ask the location\nmanager to do very heavy-weight things (like...  say... update\nlocation every minute), which would get accounted against the\nsystem instead of the application because ultimately it is the\nsystem making the heavy calls (wake locks, etc).\n\nTo solve this, we introduce a new class WorkSource representing\nthe source of some work.  Wake locks and Wifi locks allow you\nto set the source to use (but only if you are system code and thus\ncan get the permission to do so), which is what will be reported\nto the battery stats until the actual caller.\n\nFor the initial implementation, the location manager keeps track\nof all clients requesting periodic updates, and tells its providers\nabout them as a WorkSource param when setting their min update time.\nThe network location provider uses this to set the source on the\nwake and wifi locks it acquires, when doing work because of the\nupdate period.\n\nThis should also be used elsewhere, such as in the GPS provider,\nbut this is a good start.\n\nChange-Id: I2b6ffafad9e90ecf15d7c502e2db675fd52ae3cf\n"
    },
    {
      "commit": "b445946deaad61fc3acaf4760a135fb92d0547b0",
      "tree": "1df9bd63fd9856c36061b779007b0041ca0d4ff1",
      "parents": [
        "3e34d135f7fca756d00ebdc50c55b4f12ef7a328"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 17 07:42:54 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 30 19:42:26 2010 -0400"
      },
      "message": "GPS: Initialize XTRA support when GPS is enabled\n\nBUG: 2923148\n\nChange-Id: If9a643e385c6c567b30f47d4caa35fa812a2ba43\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3e34d135f7fca756d00ebdc50c55b4f12ef7a328",
      "tree": "5246dd3416d22ab0e91f7f672b280514c1361c7c",
      "parents": [
        "12dbee827353ecdb690d27c3f52e26afc71e0774"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 06 10:06:26 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 30 19:38:45 2010 -0400"
      },
      "message": "GPS: Don\u0027t set XTRA download pending flag at boot time.\n\nXTRA data downloads are now strictly on demand from the GPS engine.\nAlso fix typo in handleDownloadXtraData()\n\nChange-Id: Ied1a6e2e62134add4d965326aae909c86f834682\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "59e61354801b378c074b85f0dea0da62481298c9",
      "tree": "422c065e738cbe1e99e5ae35482eede3a3760990",
      "parents": [
        "769690e9ea87e00dee7c15d652333eaa2c6c5264",
        "d71021cb30bd20dabd6783f4235d5f245a7bd1a3"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Aug 27 18:10:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:10:38 2010 -0700"
      },
      "message": "am d71021cb: am 0c731f99: Merge \"Send broadcast intent when configured location providers change.\" into gingerbread\n\nMerge commit \u0027d71021cb30bd20dabd6783f4235d5f245a7bd1a3\u0027\n\n* commit \u0027d71021cb30bd20dabd6783f4235d5f245a7bd1a3\u0027:\n  Send broadcast intent when configured location providers change.\n"
    },
    {
      "commit": "0c5a04014d3833c9a82772a832d3bc6410fc52ac",
      "tree": "79831e18eee9d29207d199499a9ece7a7068fedc",
      "parents": [
        "445ab76c49779998543bb78881f5d9f8ae81e598"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Aug 27 14:01:23 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Aug 27 14:01:23 2010 -0700"
      },
      "message": "Send broadcast intent when configured location providers change.\n\nSee e.g. http://code.google.com/p/android/issues/detail?id\u003d10042\n\nThis is also needed by the power control widget, which has no reliable\nway otherwise of staying in-sync.\n\nChange-Id: I8f2b6b79b1843329bae952a25ea56f15e3cf92aa\n"
    },
    {
      "commit": "a58a8751b4c2ce457f0082a0baaee61312d56195",
      "tree": "14521164e8ce7f53e55f3af25efa9c4078a8c8b0",
      "parents": [
        "42d8f6f2fbf2d73f01dd485e043bc33b575f9881"
      ],
      "author": {
        "name": "Bai Tao",
        "email": "michaelbai@google.com",
        "time": "Tue Jul 13 15:32:16 2010 +0800"
      },
      "committer": {
        "name": "Bai Tao",
        "email": "michaelbai@google.com",
        "time": "Wed Jul 28 09:45:57 2010 +0800"
      },
      "message": "Add new system service CountryDetector\n\na. The CountryDetector detects the country the user is in\n   in order of mobile network, location, sim card or locale.\n   It will be used by contact and contact provider.\n\nb. All added APIs are hidden at this stage.\n\nChange-Id: I4ba278571ffb6ab6ded0996d4f440a18534f8ed4\n"
    },
    {
      "commit": "f4d207b1c2212d6e9adc3e7954a8d14c6b9abc51",
      "tree": "1dc9c49461ae15e7b6787306a49c4b89f278ee62",
      "parents": [
        "eec69d2923636b2aaa51df93bacc2b3bbb742736"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 17 08:21:33 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 17 08:21:33 2010 -0400"
      },
      "message": "Don\u0027t throw an exception from isProviderEnabled and getLastKnownLocation\n\nif the location provider does not exist.  Instead use the same behavior\nas if the provider were disabled in settings\n(return false for isProviderEnabled and null from getLastKnownLocation).\nThis eliminates for a lot of exception handling around some simple\nqueries to the location manager.\n\nBUG: 2841014\n\nChange-Id: I4fbe0c088e915c90969e13083201dd3e7f4029cb\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\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": "1e11e95f61510ad600b52e2b24c927cada8c2ee4",
      "tree": "c942a4c52990f123fab00e705e4436e2c014432c",
      "parents": [
        "6c537e53cef1b0177a1734e2a5f302d80c0a26f8",
        "01ac80b715881db22bde8b31633dd8a4dc375389"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon May 24 12:59:27 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 24 12:59:27 2010 -0700"
      },
      "message": "Merge \"Add Geocorder.isImplemented()\" into kraken"
    },
    {
      "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"
    }
  ],
  "next": "965b3d2b84c1ac9ed38c56f818e4f0aae9e138ac"
}
