)]}'
{
  "log": [
    {
      "commit": "50cd1a972dde18207beb580155bb3a4e648ae66b",
      "tree": "d2e26c6c892ea1e1b4198bd5e2f3ae76aec835af",
      "parents": [
        "c55e1b6f4d8ee4a73c85ff953e6a79f50c881b02"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Mon May 21 17:39:23 2018 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Jun 07 12:08:35 2018 +0000"
      },
      "message": "Build com.android.location.provider with java_sdk_library\n\ncom.android.location.provider is built with java_sdk_library and api\nfiles are added by running \"make update-api\".\nRemove com.android.location.provider.xml since it will be\nmake auto generation by soong when the library is built with\njava_sdk_library.\n\nBug:77577799\nTest: make -j\nTest: make checkapi\nTest: adb shell cmd package list libraries |\\\n      grep com.android.location.provider\n      And check the com.android.location.provider library\n\nChange-Id: Iad0b4452fd87716c277235f3da6f3540aafdbed3\n"
    },
    {
      "commit": "fa15a99fe910d0d20ab493e7ab4e39466fdd44ec",
      "tree": "34e421208ae17f58161ac998020b44a183046592",
      "parents": [
        "409e5d25a91cacdab6bd2a4c338d2ef1c84fa318"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Mar 08 16:43:07 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri May 25 16:38:52 2018 +0900"
      },
      "message": "Remove FlpHardwareProvider\n\nAfter Treble\u0027s FLP merge into GNSS HAL, the FlpHardwareProvider is just\nan empty shell. Removing FusedLocation and/or Flp + Hardware classes\naltogether.\n\nBug: 35726697\nTest: m -j\nTest: Open Google Map and then walk around. The dot moves as I walk.\n\nMerged-In: I7f413e38b57424e8ebb9d7d14d94f145a48d10f8\nChange-Id: I7f413e38b57424e8ebb9d7d14d94f145a48d10f8\n(cherry picked from commit 4cc3a1c056f69ac4da1dc5055c36b7357e9f673c)\n"
    },
    {
      "commit": "409e5d25a91cacdab6bd2a4c338d2ef1c84fa318",
      "tree": "bda16fb534b191f92ec363f5053c0a1dc7411b6e",
      "parents": [
        "b19a838f473d5313b7ae02984d60745de391e745"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 27 22:00:23 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri May 25 16:30:22 2018 +0900"
      },
      "message": "Create the stubs lib for com.android.location.provider\n\ncom.android.location.provider.stubs is the stubs library for the shared\nlibrary com.android.location.provider. The stubs library is intended to\nprovide the stable set of APIs to the apps implementing location\nprovider.\n\nWithout the stubs library, apps had to directly link to the shared\nlibrary which is built without Android SDK and exposes private APIs that\nare not intended to be used by apps. This also has been causing the\nlin-type check warnings when the shared lib is used by apps built with\nSDK; apps built with SDK is not allowed to link to lib built without\nSDK. This has been reported as warnings but will soon be errors. Now\nsuch apps are required to link to the stubs lib, which is built with\nSDK.\n\nWhile building the stubs library, following APIs are made hidden because\nthey are exposing private APIs from the Android platform.\n\n1) Activity* classes are removed from the API, as they are not intended\nto be used by apps since O.\n2) GeocodeProvider and GeofenceProvider are removed from the API.\n3) LocationProvider.mLocationManager is removed as it is exposing the\nprivate symbol ILocationProvider\n4) ProviderPropertiesUnbundle.getProviderProperties are removed from the\nAPI as it is exposing the private symbol ProviderProperties.\n5) The constructor of ProviderRequestUnbundled is removed since the\nclass is intended to be instantiated by the service.\n\nBug: 71420593\nTest: m -j com.android.location.provider.stubs\n\nMerged-In: I20aba7e9ca9c3adc75db241f37a55f0d657f3ced\nChange-Id: I20aba7e9ca9c3adc75db241f37a55f0d657f3ced\n(cherry picked from commit eee99986c8021d6825f99a25434725fccf7b2b12)\n"
    },
    {
      "commit": "a56e4df08d9c2ca0926f341b08ae73e14642f9b9",
      "tree": "52b0f6eaf63a84cb44f8d4ed5be86fe0122a26b9",
      "parents": [
        "cf5841db8db0e0446f8ba92b7a3f85b23ff030e7"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jan 29 16:39:27 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jan 29 16:41:43 2018 -0800"
      },
      "message": "Remove undefined all-aidl-files-under\n\nThis is not a defined function, and there are no aidl files under these\ndirectories anyways.\n\nBug: 72661763\nTest: find location/lib -name \u0027*.aidl\u0027\nTest: find media/lib -name \u0027*.aidl\u0027\nChange-Id: I000d8febd54a50d4c07b910fa374ac8019f696be\n"
    },
    {
      "commit": "47ee2ecf82958f211c775a4125968fbf505fe594",
      "tree": "a7a5d04be063304d9f34bef4d17240fd7c306bab",
      "parents": [
        "b9b57225c28cdec5a8b7c2a6353f40a66010c0ed",
        "614612edb508dd5ef1a8f463105b16894906264e"
      ],
      "author": {
        "name": "Daniel Estrada Alva",
        "email": "destradaa@google.com",
        "time": "Wed Aug 26 21:09:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 26 21:09:50 2015 +0000"
      },
      "message": "Merge \"Disable AR HW when client binder dies.\" into mnc-dr-dev"
    },
    {
      "commit": "e1a5144a1ddded30dca1e1425739649032a86bac",
      "tree": "5f24a6c13c5a4b159e8cd5d99641b294e6215a1d",
      "parents": [
        "8b86268be3fd713394915cbed3d71cc85f806fe1"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Jun 23 17:25:53 2015 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 24 11:43:27 2015 -0700"
      },
      "message": "Cherry-pick: Add callback-based support for HW Activity Recognition.\n\nAdd a callback-based mechanism for GmsCore to connect to Hardware Activity\nRecognition. This allows GmsCore to stop polling to identify if the Android\nplatform supports the functionality or not.\n\nBug: 17112184\nChange-Id: I8f9459cbd15eecd70f6919c6551e6f7a663c732f\n"
    },
    {
      "commit": "614612edb508dd5ef1a8f463105b16894906264e",
      "tree": "2f019f18ce514a953d82f96a691116b44efa5995",
      "parents": [
        "8b86268be3fd713394915cbed3d71cc85f806fe1"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 24 10:41:53 2015 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 24 11:02:52 2015 -0700"
      },
      "message": "Disable AR HW when client binder dies.\n\nEnsure that activities are unregistered from AR HW when the client\u0027s\nbinder dies. This clean up is required to prevent AR HW to keep active\nwhen there are no clients listening for events.\n\nBug: 19894637\nChange-Id: Iccd609cf1d2d4a4453c7a96cb8645b61639c3234\n"
    },
    {
      "commit": "cfc9b6d6ab3c622ea4f9d06c28d6e0d2055d98e1",
      "tree": "1fed5109ca15005e7a688d4bd4d28678748fe53e",
      "parents": [
        "fff30439cafb737eb54de807caab4fb61432f2cc"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Apr 14 12:14:03 2015 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Apr 14 12:14:03 2015 -0700"
      },
      "message": "Add versioning to FLP HAL.\n\nRetain compatibility with implementations compiled\nagainst old headers or left unchanged from LMP.\n\nChange-Id: I3f7cfaaf0cba8697c312940a805b053c6040caa6\n"
    },
    {
      "commit": "fff30439cafb737eb54de807caab4fb61432f2cc",
      "tree": "95f9f5ff2c65b0a495236b92e20f664c92ff61f4",
      "parents": [
        "832017963d1d74ba41348deed5eb747b45b441fb"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Sun Apr 12 21:26:02 2015 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Mon Apr 13 19:13:52 2015 -0700"
      },
      "message": "Add ability to flush FLP HAL batched locations buffer.\n\nCurrently GmsCore has to guess how many locations to retrieve\nbased on requested frequency and then demux the output looking\nfor timestamps (that aren\u0027t monotonically increasing).  This\ncapability gives GmsCore a more graceful solution.\n\nChange-Id: Ie1d71615f699bc0d3c63f8b80aa7b40b9971cf96\n"
    },
    {
      "commit": "15003f19e5e5a443222569401f167a3ac0e1de3a",
      "tree": "74259f8732f9e5aa7cc8bb96b1d44d7d8ebdb59c",
      "parents": [
        "ffca45a2cdd778e6edd5c3959bf53c6192b7e035"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Sun Apr 12 20:57:57 2015 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Mon Apr 13 17:25:27 2015 -0700"
      },
      "message": "Add a status callback for location batching in FLP HAL\n\n-Allows GmsCore to know when location is unsuccessful so\n it can switch to a SW solution.\n\nChange-Id: I3d1df7b828f7fb189446881eea87d9a952310614\n"
    },
    {
      "commit": "ffca45a2cdd778e6edd5c3959bf53c6192b7e035",
      "tree": "0cfdbd98208c1472dee47baf0b37bde953165d4e",
      "parents": [
        "295a93b99f1773638553a0d00898824dc7ba79e5"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Sat Apr 11 23:15:08 2015 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Sun Apr 12 16:22:03 2015 -0700"
      },
      "message": "Add capability callback for FLP HAL.\n\nLet HAL implementation tell if geofencing/batching is\nsupported and which technologies (GNNS, wifi, etc)\ncan be used.\n\nStill todo: Add ability for GmsCore geofencing to\ntell which technologies are supported (instead of\njust using it to update monitoring).  This requires\nSystemApi change + approval so will do in separate CL.\n\nNote that the classes in the lib are not copied\ndirectly into GmsCore.  The instance will always\nbe whatever is in the platform.  This is why\nthe callback is backwards compatible as long as\ntheir is a default implementation (but not if\nit\u0027s abstract).\n\nChange-Id: I7d6adeb049b89935bc4443785df5d7ef4c730e5d\n"
    },
    {
      "commit": "295a93b99f1773638553a0d00898824dc7ba79e5",
      "tree": "7828e35f42940e01e45355ba9cbd685caa67a588",
      "parents": [
        "1c146c78af00f30f6fa71c4577a66f27a5981aa2"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Apr 08 15:31:30 2015 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Apr 08 17:33:38 2015 -0700"
      },
      "message": "Add smallest displacement field to FLP HAL\n\nChange-Id: I4d857256c035c65185be3be8401bec8d45091aaf\n"
    },
    {
      "commit": "3b0224dc3c2e7ffb93dc56970395003d0e387545",
      "tree": "124600c9f791f7fc8df131c1a9cd07281df90985",
      "parents": [
        "69eef8a0d250ae1b50b510499014e109bd2c6112"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Wed Jul 16 14:28:06 2014 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Thu Jul 17 11:09:46 2014 -0700"
      },
      "message": "Fix exceptions in ActivityRecognition platform stack.\n\nb/16348349\n\nChange-Id: I1f85283c86130b86389a1be7da49904658b0558c\n"
    },
    {
      "commit": "a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26",
      "tree": "0985853023d46ec4cf9a12aa3e6c190aa5a4efec",
      "parents": [
        "dfd6b4e9f475ef3a8cf7fc7b5451b8c73aecdfff"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Wed Jul 09 10:46:39 2014 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Jul 11 15:58:36 2014 -0700"
      },
      "message": "Add support in the platform for Activity Recognition Hardware.\n\nChange-Id: I7c4fff3526583475a5edf1f4ba8fede4e9419ead\n"
    },
    {
      "commit": "6090995951c6e2e4dcf38102f01793f8a94166e1",
      "tree": "37f32f4b269fc26a18e3249a18459a476c473266",
      "parents": [
        "266f48cc042dda828109eb135088cdb6f0f7c1d5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Nov 19 16:54:46 2013 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Nov 20 11:31:47 2013 -0500"
      },
      "message": "Remove unused imports from frameworks/base.\n\nChange-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906\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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
