Merge commit '2e418428987132ea66533cbc05f9c526eb59519a'
* commit '2e418428987132ea66533cbc05f9c526eb59519a':
Possibly fix an issue where we thought an app was always using GPS.
There may be some race conditions in the gps provider where it can cause a uid
to be double booked for gps usage and never released. Address this by tweaking
some locking (so mLocation and the uid array are protected by a lock both when
reading and writing). Also add some code to log a warning if someone tries to
note a particular uid multiple times, since the code will break in that case.
Finally, fix a problem in the battery stats where we weren't allowing a new Uid
structure to be created in many cases for calls coming in.
Merge commit 'cde13e6bfa6465d5770755892e2ee234a1f85d5c'
* commit 'cde13e6bfa6465d5770755892e2ee234a1f85d5c':
gps: Check for null APN name to avoid a runtime restart.
Merge commit 'f781b39cb89dc19e6ad090bd3eb1bedbe7928429'
* commit 'f781b39cb89dc19e6ad090bd3eb1bedbe7928429':
gps: Set SUPL server via hostname rather than IP address.
The GPS engine needs the hostname for the secure SUPL case
and deferring the DNS lookup to the HAL might be helpful in the future
if the SUPL server is on a carrier's private network.
Signed-off-by: Mike Lockwood <lockwood@android.com>
This change replaces ILocationCollector with a more general mechanism that
passes locations received from a provider to all other providers.
The network location provider now uses this to implement the location collector.
In the future, this could be used to inject network locations to the GPS
as aiding data.
This change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '2d10ba33190c2ff1b24d6c48dd621c55a25bf2cc'
* commit '2d10ba33190c2ff1b24d6c48dd621c55a25bf2cc':
GPS: Add support for forcing NTP time and XTRA data injection.
Merge commit '02c1c46fff22490f884f05520d58eadae1442db8'
* commit '02c1c46fff22490f884f05520d58eadae1442db8':
gps: Time out after 1 minute if we are unable to get a fix and our fix interval is long.
This will prevent us from keeping the processor awake indefinitely if a
background service is requesting periodic updates and we are unable to get a fix.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '5e1d8aed4a557a7c055aa4c19875df75d7e41ae6'
* commit '5e1d8aed4a557a7c055aa4c19875df75d7e41ae6':
GPS: Generalize SUPL support to include AGPS for CDMA
Location Providers are now responsible for their own wakelocks and scheduling.
Also fixed a deadlock in LocationManagerService in the code for releasing
wakelocks after client notifications have been received.
The fix is to use the Receiver object and mWakeLock for synchronization
instead of the global mLock lock.
Signed-off-by: Mike Lockwood <lockwood@android.com>
64 satellties are required for NavStar, WAAS, EGNOS, and GLONASS satellites.
Increasing to 255 allows for future compatibility with Galileo.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e'
* commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e':
location: Add support for location providers outside of the system process.
Also added new permissions android.permission.INSTALL_LOCATION_PROVIDER
and android.permission.INSTALL_LOCATION_COLLECTOR to the public API.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '15e3d0f082d551f8819fbe4b0d502cc108627876'
* commit '15e3d0f082d551f8819fbe4b0d502cc108627876':
location: Use ILocationProvider Binder interface for all location providers.
This change eliminates the LocationProviderImpl class which had been used
for location providers running in the system process.
Now the LocationProvider base class is only used to implement the
LocationManager.createProvider() method for retrieving provider information.
Added a new IGpsStatusProvider interface for providers that serve GPS status.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '5f2788bc9d947f7793aaea06f7e21d6b74c98826'
* commit '5f2788bc9d947f7793aaea06f7e21d6b74c98826':
gps: Don't crash if no XTRA servers are specified.
Merge commit '79762a3ee34eb8be5549bcb183af844b6f19c266'
* commit '79762a3ee34eb8be5549bcb183af844b6f19c266':
location: Move DummyLocationProvider.java and LocationProviderImpl.java to the internal package.
Now that we have GPS support in the emulator and public APIs for mock providers,
the fake provider support is no longer needed.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Remove two second timeout for wakelock when broadcasting events to
location listeners. Instead, hold wakelock until receipt of the event
is acknowledged, either via a Binder call or the
PendingIntent.OnFinished interface.
Signed-off-by: Mike Lockwood <lockwood@android.com>