summaryrefslogtreecommitdiff
path: root/packages/FusedLocation/test
AgeCommit message (Collapse)Author
2024-02-23Fix issue where location provider overlay may not bind David Christie
Using a default backup provider build into the system that will be used as last priority. Guards against many cases of user location not being available when the overlay app is misbehaving. Bug: 325028454 Test: atest GnssOverlayLocationServiceTest, manual Change-Id: I6f357c9b0fcc19d56f80119a4fd358260f89b057
2021-03-22Refactor ServiceWatcher Soonil Nagarkar
Split it up into more generic and useable components that are not as location specific. Bug: 182491144 Bug: 181665909 Test: presubmits Change-Id: I2d6d5e70328657a7430e170531402cb3acbed028
2021-02-03Update batching APIs Soonil Nagarkar
After API council feedback, use List<Location> in public APIs rather than LocationResult. Bug: 173712888 Test: atest CtsLocationFineTestCases Change-Id: I02caa1f9c7164b52ef55c71ca14fb2bd7e311a85
2021-01-13Include attribution tag in identifying providers Soonil Nagarkar
Expose provider identification methods that allow for attribution tag to be provided in addition to the package. Bug: 177239114 Test: manual Change-Id: Id0247a3f2a27f8d4897fd28644a34f783bd10d84
2021-01-08Copy LocationProviderBase API into SystemApi surface Soonil Nagarkar
This allows third party location providers to link against the standard API surface. This replaces the LocationProviderBase implementation in the com.android.location.providers API. Both will temporarily coexist until third party applications can be migrated, and then old version will be removed. Only the LocationProviderBase API is migrated right now as its the only API that has undergone changes. This also restores some old, unused classes which should not have been remove from the API surface. Clients that support older API version will still need to link against these classes. Bug: 176115245 Test: builds Change-Id: I2d688447e1f59e441f5c48ff36d3f0dd8b5dc7f6
2020-12-28Replace LocationProvider with ProviderProperties Soonil Nagarkar
LocationProvider cannot represent unknown properties, which is currently causing problems with getProvider() which may return null even when a particular provider exists. Instead provide isProvider() to query whether a provider exists, and getProviderProperties() to query a provider's properties. Bug: 176232308 Test: atest CtsLocationNoneTestCases Change-Id: Ic42cc953624be116616b0b997e18356247fdf288
2020-11-10Add batching APIs and Location.equals() Soonil Nagarkar
-Moves batching APIs from SystemApi to Public, and makes them multi-client safe. -Adds equals/hashcode to Location. Bug: 171512333 Test: manual + presubmit Change-Id: I6ee28f8229fdf49386cd370ea785de63b97e7cde
2020-10-14Add quality to LocationRequest/ProviderRequest Soonil Nagarkar
Expose quality APIs publically after refactoring them to match external usage of quality constants. Removes list of location requests from provider request, as there is no client that really uses this, and it feels like too much information to give to providers. Bug: 168624248 Test: presubmits Change-Id: Icf8a9f6096da0071d97190d3f7196948492e52a1
2020-09-30Fix background request throttling + jitter calculation Soonil Nagarkar
Prevent applications from bypassing background location throttling by adding/removing requests. This allows provider managers to delay requests in the event the interval has decreased so that power can be saved. Clients that target S and above may now receive historical locations in exchange, so that they are not losing locations overall. Locationp providers can optionally implement delays themselves in the event of an interval increase. Also updates jitter calculation to be a capped percentage of the request interval, rather than a flat cap. Bug: 73144566 Test: manual + presubmits Change-Id: I243e813f0c0c504850e2a3e777787f49fc6f7a57
2020-09-15Fix up provider internal/external APIs Soonil Nagarkar
-Encapsulate various fields -Bring naming in line with API guidelines -Minor refactoring Bug: 168621146 Test: manual Change-Id: I55681a3d84d7833c98569a13a57e6c4f0b728a67
2020-09-11Make LocationRequest a public API Soonil Nagarkar
LocationRequest and associated APIs have historically always been SystemApi, for no real reason. In keeping with the Android-wide push to clean up API surfaces like this, we make LocationRequest a public API. Bug: 166692379 Test: manual + presubmits Change-Id: I6a93fca1a5613c96bf35da158bc542e47864dbff
2020-08-10Fix a provider bug and remove redundant GNSS logic Soonil Nagarkar
This fixes a bug where screen on/off state changing was not refreshing the active state of registrations. In addition remove code from GnssLocationProvider that is now redundant (all the throttling logic is handled in the manager now). Finally this removes a broken test from the fused provider tests. This was broken by the last change because FusedLocationServiceTest is not allowlisted for being able to use bypass requests (to be honest, I'm not sure why this test was passing previously...). FusedLocationServiceTest is not a great test, so I am removing it to fix tests for now while I consider a better approach. Bug: 162949881 Bug: 162950120 Test: manual + presubmit (atest BatterySaverLocationTest) Change-Id: Ide762b352014da4aa42959d479f2e45875ec19af
2020-07-09Ask location provider for its package name Soonil Nagarkar
The package name from the service watcher may be inconsistent with the package name of the currently bound service. Test: none Change-Id: Iede437d2e61a0da0b853fdbb133a29add04f6bf3
2020-04-08Rename ILocationProviderManager method Soonil Nagarkar
Test: presubmit Change-Id: Ib2b0fd5c2065e85b390815fad6a2d7e04b81afb7
2020-03-04Merge "Give location providers a known identity" Soonil Nagarkar
2020-03-04Give location providers a known identity Soonil Nagarkar
Providers no longer need the ability to specify additional packages, this can be replaced with tracking the provider identity. In addition, move CallerIdentity into the client space, and fix some minor GNSS bugs. Bug: 149839935 Test: atest LocationProviderTest Change-Id: Ide107abc61531946b20d2ac50cd9555fc215ef03
2020-03-04Add test permission to FusedLocationServiceTest Soonil Nagarkar
Bug: 150765382 Test: atest FusedLocationTests Change-Id: I13487001173542618cd20ea486e9a1e1ad9d7221
2020-01-23Add DPM API to request location provider enable Soonil Nagarkar
DPM can currently control the master location toggle, but cannot influence the behavior of individual providers. This adds an API for DPM (or other privileged entities) to request a provider to turn itself on. Practically, this is necessary to allow DPM to control network location, which may be gated by additional consents. This change also renames some internal location code to make clearer the distinction between provider enabled and provider allowed: enabled = location on && allowed Bug: 136219903 Test: CTS tests to be added Change-Id: I05f03c976428f0f5a8a2cf627a84dc9e2baf3e67
2020-01-22Overhaul FusedLocationProvider Soonil Nagarkar
Fix some minor bugs and ensure fused location provider correctly supports location bypass. This is especially important for when location bypass is invoked in direct boot. The added UPDATE_DEVICE_STATS permission is necessary for FusedLocation to correctly update WorkSources. FusedLocation receives work from LMS and then further delegates that work to other location providers. The other location providers should be informed of the correct applications for battery blame, and should not be blaming the FusedLocation package. 1) This is the minimally scoped permission necessary to battery blame correctly. 2) There is no way to attribute battery blame without this permission. 3) This is the correct permission - as required by LocationManager, and this permission will likely never be removed (FusedLocation will always need to battery blame). Test: atest FusedLocationTests Change-Id: If7126fffaae5577ddf8e366a0b5c17b3e5286582