This will allow us to better distinguish between clients in our
historical data.
Bug: 180857151
Test: presubmits
Change-Id: Idd0123ca15f54f8380107c9cc0b6f24474532b3d
Throttle location providers completely when the device is completely
still, and provide "faked" locations instead.
Bug: 172688700
Test: manual + atest StationaryThrottlingLocationProviderTest
Change-Id: Iba4e50ebf78cd8c6a9f2433ecb6e967d3a533c63
Since Android S, carrier frequencies in GnssStatus and GnssMeasurement are
required. Also added a comment to clarify AGC value.
Bug: 179157665
Bug: 173523109
Test: comment only
Change-Id: I1f59bcc0c26739a2057037da766cd0a5206e06ff
Reduce number of generated synthetic accessors for private var/methods,
put ProviderRequest listener into lazily loaded class, and switch to
ArrayMap instead of WeakHashMap when server-side transport removal is
not a consideration. Also adds support for replacing an old transport
in a single remote call, rather than two remote calls.
Bug: 13463193
Test: none
Change-Id: I09dab317dc82aeda51422af1047274631081c3e1
After API council feedback, use List<Location> in public APIs rather
than LocationResult.
Bug: 173712888
Test: atest CtsLocationFineTestCases
Change-Id: I02caa1f9c7164b52ef55c71ca14fb2bd7e311a85
Move GNSS listener overhead into statics so it's shared per process, and
do not instantiate by default.
Previously GNSS requests were multiplexed by LocationManager instance,
this is now removed. This could mean additional binder overhead, but
it's pretty unlikely that this feature was in active use anywhere, as in
any large application that has multiple gnss requests, they are usually
coming from different contexts (and thus LocationManager instances) and
would not have seen the benefit of multiplexing anyways.
Bug: 179261871
Test: atest CtsLocationFineTestCases
Change-Id: I8b7a41c13dfe219c326b1e519483d89d2b721ce5
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
Provide a system wide broadcast when GNSS capabilities change and when
GNSS antenna infos change so that clients have some way to detect this.
Antenna info was previously implemented as a listener, but after
evaluating the information, it is not protected, changes infrequently
with device configuration (if a foldable is unfolded for instance), and
clients need to see every change (not the previous model of only sending
changes while the client is foreground and GPS is enabled).
As a corollary, deprecate GNSS status events. These status messages
contain duplicate, inconsistent information, and do not scale for new
APIs. In addition, we don't have any clients that use these status
messages for any real purpose.
Bug: 153129152
Test: atest CtsLocationFineTestCases
Change-Id: Icc5bed8e37c7e8f168de57d2a019e94d96c0d3f2
Extracts large parts of the GNSS HAL into a central GnssNative class,
which can be faked for testing. This is a large step towards making all
GNSS code unit testable, and allows for more modular HAL configurations.
Begins to break up the GnssLocationProvider god object and pull
functionality out into other classes. Changes include:
-Making GnssCapabilities parcelable so it can be part of the API
-Splitting out the NMEA listener from status listeners, which
substantially reduces the burden of supported NMEA listeners as well as
the amount of GNSS<->AP communication.
-All GNSS listeners now respond properly to HAL restarts.
-Partially extract out emergency call detection.
Bug: 153129152
Test: manual
Change-Id: Idee0d548f38c6adf921cd6c28b5d815bbd366f8a
Delete location.timezone.provider API classes and associated internal
classes that are no longer used.
Bug: 175633818
Test: build
Change-Id: I66319e63e3150e3b71f31f8d9404e4114f802662
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