Age | Commit message (Collapse) | Author |
|
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
|
|
Split it up into more generic and useable components that are not as
location specific.
Bug: 182491144
Bug: 181665909
Test: presubmits
Change-Id: I2d6d5e70328657a7430e170531402cb3acbed028
|
|
After API council feedback, use List<Location> in public APIs rather
than LocationResult.
Bug: 173712888
Test: atest CtsLocationFineTestCases
Change-Id: I02caa1f9c7164b52ef55c71ca14fb2bd7e311a85
|
|
Expose provider identification methods that allow for attribution tag to
be provided in addition to the package.
Bug: 177239114
Test: manual
Change-Id: Id0247a3f2a27f8d4897fd28644a34f783bd10d84
|
|
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
|
|
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
|
|
-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
|
|
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
|
|
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
|
|
-Encapsulate various fields
-Bring naming in line with API guidelines
-Minor refactoring
Bug: 168621146
Test: manual
Change-Id: I55681a3d84d7833c98569a13a57e6c4f0b728a67
|
|
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
|
|
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
|
|
The package name from the service watcher may be inconsistent with the
package name of the currently bound service.
Test: none
Change-Id: Iede437d2e61a0da0b853fdbb133a29add04f6bf3
|
|
Test: presubmit
Change-Id: Ib2b0fd5c2065e85b390815fad6a2d7e04b81afb7
|
|
|
|
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
|
|
Bug: 150765382
Test: atest FusedLocationTests
Change-Id: I13487001173542618cd20ea486e9a1e1ad9d7221
|
|
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
|
|
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
|