-Simplifies class structure around ListenerRegistration, moving
responsibility for requests into subclasses, adding an onRemove()
callback, and simplifying the overall class structure.
-Eliminates two locks (1 in ListenerMultiplexer, 1 in
LocationProviderManager) in favor of sharing the same lock. This
simplifies locking and reduces the changes of deadlock by messing
something up.
-Fixes a bug around callback invocation ordering
ListenerMultiplexer.onRegistrationReplaced.
-Overall normalizes ListenerMultiplexer usages with respect to other
codebases.
Test: presubmits
Change-Id: I8ad92c1ffe802eee17f5a5774c8ecee1d875252f
Add javadocs mentioning isMock() and why it exists to the top level
Location docs.
Bug: 240004850
Test: n/a
Change-Id: I208cb1fb4d213de33822d5109a4e822b470fd74d
- Call setSetId on the active sub ID in emergency SUPL
- Reload GNSS configurations when emergency call starts and ends
Bug: 211060538
Test: manual
Change-Id: I4d61854644e851bb742eff0e89826a2d0e5284d6
Adds to fields to represent altitude above Mean Sea Level and its accuracy.
Test: existing unit tests still pass
Bug: 231327615
Change-Id: I779653937160f01dfdbc19e5e7921758964b9623
Prevents apps from reading location requests of other users without INTERACT_ACROSS_USERS permission.
Bug: 222473855
Test: Build
modified: services/core/java/com/android/server/location/LocationManagerService.java
Change-Id: Id591cd39ed7813c649b44d4a3210f0b1fb79b40d
Change TOC and TOE definition to
1. long
2. time in seconds since GPS epoch, regardless of constellation
3. must not be encoded
Bug: 219575003
Test: atest SatellitePvtTest
Change-Id: Ic663e45adafbd1778528a985c1670898d5653e00
This is more correct. Android devices, even under ideal conditions,
don't track UTC (which contains leap seconds and uses the SI definition
of a second) but use a clock based on Unix epoch time (no leap seconds,
but clocks may skip/stop or smear around leap seconds to ensure a fixed
number of second increments per calendar day when leap seconds are
applied to UTC).
Bug: 218802673
Test: Compile only
Change-Id: If87023af06ba9933f96029e52df9cb3841bca0cb
In order to maintain backwards compatibility with SystemApi versions of
LocationRequest, we chose to keep the default quality level as low.
However, this is causing problems when LocationRequests are created
through the use of legacy public APIs, leading to location requests that
do not receive locations as expected. Default the quality level to
balanced to address this issue.
Also removes old UnsupportedAppUsage annotations (past the 2 release
support limit now), and updates some variable names accordingly.
Bug: 215186921
Test: presubmits
Change-Id: I6e1fdb0b94438fd3dede75103cd70443e863a3f2
This reverts commit 331be9a643.
Reintroducing ag/16366278 since it seems unrelated to b/214053959 (more details on b/214053959#comment55).
Original commit message:
Migrate unsafe parcel APIs in framework-minus-apex
Migrate the following unsafe parcel APIs in framework-minus-apex:
* Parcel.readSerializable()
* Parcel.readArrayList()
* Parcel.readList()
* Parcel.readParcelable()
* Parcel.readParcelableList()
* Parcel.readSparseArray()
This CL was generated by applying lint fixes that infer the expected
type from the caller code and provide that as the type parameter
(ag/16365240).
A few observations:
* In some classes we couldn't migrate because the class also belonged to
another build module whose min SDK wasn't current (as is the case for
framework-minus-apex), hence I suppressed the lint check
(since I'll eventually submit the lint check to the tree).
* In some cases, I needed to do the cast in
https://stackoverflow.com/a/1080525/5765705 to make the compiler happy
since there isn't another way of providing a class of type
Class<MyClassWithGenerics<T>>.
* In the readSerializable() case, the new API also requires the class
loader, that was inferred to by InferredClass.class.getClassLoader().
* Note that automatic formatting and import rely on running hooked up
to the IDE, which wasn't the case here.
Bug: 195622897
Change-Id: I272432e6e082a973f7a50492ec35d79c2b577c93
Test: TH passes
AgcLevelDb has been a subfield of GnssMeasurement. However,
GnssMeasurement is only reported by the chipset when there
is GNSS signal. For example, in deep indoor, or when there
is strong jamming signal, no GnssMeasurement can be reported,
and thus no AGC value can be reported.
To resolve that, we are adding this GnssAgc to GnssMeasurementsEvent
directly, so that the client can get AGC values even without GNSS
signal (i.e., without GnssMeasurement).
Bug: 206670536
Test: atest GnssAutomaticGainControlTest
atest GnssMeasurementsEventTest
Change-Id: I97c7ec98b6e8cc977c6e879b52a8cf75c355ae33