427 Commits

Author SHA1 Message Date
Julius D'souza
2b67c07d82 CTS: Add @hide annotations to several @IntDef elements
Bug: 27232186

Change-Id: Idd70359e22606a5ff21dfaffd119528cedd08b5a
2016-03-18 12:18:18 -07:00
Jeff Sharkey
a04c7a7c64 Mark more Bundles as being defusable.
They're destined for the system, so they're okay to look inside.

Bug: 27726127
Change-Id: Ic85c308a8efe6f9b8652952717c72b3c663d328a
2016-03-18 12:20:39 -06:00
Lifu Tang
275b4499bc Merge "Removed unused methods from GnssMeasurement" into nyc-dev 2016-03-17 19:23:40 +00:00
Lifu Tang
1778b030f7 Fixed bugs in serialization and object cloning
Bug: 27621461
Change-Id: I52cbf874d506cc5f6dee73d1a14b5dc07f87bd39
2016-03-17 10:40:47 -07:00
Lifu Tang
b9048f88ce Removed unused methods from GnssMeasurement
Bug: 27633183
Change-Id: I6304a431b75aaa338b6f22e6d213cd5f4f10cd60
2016-03-14 01:28:45 -07:00
Lifu Tang
0f1ab04516 Modified the API to make coverage test possible
Bug: 27462840
Change-Id: Idfd2c3c108b25f8be9046fd4bb72dbc57edc24bd
2016-03-09 11:32:43 -08:00
Lifu Tang
76a620f048 Addressed the review comments from API Council
Following are the review comments from API Council:

(Places below that reference "s/foo/bar/" below are suggesting that "foo" be
 replaced with "bar".)

GnssClock
-- Class docs should not refer to "GPS" at the top level
-- s/InNs/Nanos/
-- s/Sec/Second/

GnssMeasurement
-- s/In// for "InUnitname"
-- s/Sec/Second/
-- s/Ms/Millis/
-- s/Deg/Degrees/
-- STATUS_GPS_LOCATION_DISABLED -> STATUS_GNSS_LOCATION_DISABLED

GnssMeasurementsEvent.Callback
-- "returns" -> "reports" in the method docs as the methods return void

LocationManager
-- register/unregisterGnssMeasurementEventCallback ->
   register/unregisterGnssMeasurementsEventCallback (plural)

GnssNavigationMessage
-- MESSAGE_TYPE_ constants -> change to just TYPE_; the "MESSAGE" is redundant
   with the class name
-- is a signed byte/short ok based on the standard here? If not consider using
   int in the public api

GnssStatus
-- Make sure @IntDef exists for the constellation type
-- Please append unit types for values returned to match GnssMeasurement methods

GnssStatusCallback
-- Please document time base/units for the time parameter of onFirstFix

Bug: 27385557
Change-Id: Ifed6a2eca3fd7ba89b3ded6964a70376235af8f4
2016-03-02 16:41:47 -08:00
Jeff Sharkey
f8880561e6 When system server goes down, crash apps more.
Similar to first patch, but now using new "rethrowFromSystemServer()"
method which internally translates DeadObjectException into
DeadSystemException.  New logic over in Log.printlns() now
suppresses the DeadSystemException stack traces, since they're
misleading and just added pressure to the precious log buffer space.

Add some extra RuntimeInit checks to suppress logging-about-logging
when the system server is dead.

Bug: 27364859
Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
2016-02-27 17:17:01 -07:00
Lifu Tang
38bce7925c Removed clock type from GnssClock
Bug: 27341583
Change-Id: I5ffd891737c3ddf83d9c6a78aa36c94858591199
2016-02-25 15:46:41 -08:00
Lifu Tang
9363b949a1 Finalized GPS=>GNSS changes with documents
Bug: 27098594
Change-Id: I24529e60d8eb9b48b644cf01e5efc684e6f04839
2016-02-19 16:59:28 -08:00
Lifu Tang
120480f17a Optimized the memory consumption and renamed PRN
Bug: 27058251
Change-Id: I2309943b1a4e7565868ed0f247b84edc631fbd59
2016-02-11 11:29:40 -08:00
Lifu Tang
d46d308562 Worked around the crash caused by API renaming
Bug: 26885642
Change-Id: I1f1ad76d18444d5f250397ef491e1dd4858f0a1d
2016-02-02 17:25:32 -08:00
Lifu Tang
818aa2c2c4 Rename Gps to Gnss for measurement-related APIs
Bug: 26895757
Change-Id: I12d89dc251e356cf976a4bcd3589a8925a8ad745
2016-02-02 16:15:03 -08:00
Lifu Tang
e5a0e21b6f Framework support to read newly added fields
Change-Id: Ie43395addd102656a4dbf9c25111ac50ec9afe41
2016-01-27 18:01:33 -08:00
Lifu Tang
82f893d6df Added an API to query GPS hardware version info
Change-Id: Ic45357d30da350759f56c9d061e60196acb3255b
2016-01-27 17:38:24 -08:00
Lifu Tang
a8b7bb5a50 GPS Measurement and Navigation APIs go public
Those APIs are already used by first-party Apps for a while. We now make them
available to third-party Apps as well.

Change-Id: I87d9f0dbb04831fc849228d7df03a2686e2eb383
2016-01-27 16:07:09 -08:00
Lifu Tang
30f95a7d67 Supported GNSS multi-constellation in frameworks
Change-Id: I82574afd3697c47e806d2cfaedc33756d0353b73
2016-01-25 15:15:14 -08:00
David Christie
923b260258 Make Location objects take less memory.
-Use bitmask for has*** methods.
-Use ThreadLocal for caching intermediate computations
 rather than preallocating memory in every Location

Change-Id: If2fa17bfd59511ec0b809f4b7d7cd8028360c340
2015-10-27 18:09:53 -07:00
David Christie
5575ddfcc1 Correct range checking for location strings during conversion
Minute values in the range [0, 59] are valid if seconds are
present. If seconds are not present then minute values are
valid in the range [0, <60]

Second values are valid in the range [0, <60]

Examples:
50:59:59.99999 is valid
50:59.99999 is valid
50:59.1:1 is not valid

Patch taken from Motorola: partner gerrit 137210

Bug: 17958582
Change-Id: I0d1265534092157883af564119f723984362d436
Issues: 2667 and 2668
2015-10-27 14:13:03 -07:00
David Christie
b870dbf86b Fix privacy leaks in LocationManager
-Register for listener for permission changes and stop
 request immediately if client loses permission.
-Also remove permission requirement to remove geofences
 and clean up permission annotations.

Bug: 21903866
Change-Id: I7e028b6b2ca5b21f25fcbba5de86dfb55caff872
2015-06-22 12:42:53 -07:00
Jason Monk
b71218aec1 Add way to get the network location provider package
Bug: 21805447
Change-Id: Ie9fd35a69d8808ae4346927b30b77e9fd733b569
2015-06-17 15:16:51 -04:00
Chris Wren
1ce4b6d3c6 remove usage of deprecated method setLatestEventInfo
Bug: 18510449
Change-Id: I56a77991c729990e501f402e007dfa79ee57621e
2015-06-12 10:16:04 -04:00
Makoto Onuki
a4db6473f7 CountryDetector no longer requires location permissions.
Country information is already available elsewhere (MNC/MCC), so there's no
point enforcing these permissions.

It wasn't properly enforcing the permissions anyway, since the code path in
question was sometimes executed on a handler thread.

Bug 20927020

Change-Id: Ia090664917f7b694e80dd55934db442633bab1d8
2015-05-21 16:29:40 -07:00
Svet Ganov
f7e9cf4fb4 Access mock location is no longer a runtime permission - framework
The access mock location is no longer a runtime permission. It is a
signature protected one that apps cannot get but the fact they request
it means they want to inject location into the system. Now the user
gets to choose the current mock location app in developer options from
the apps that request the mock location permission. The access to mock
location is no longer guarded by the permisson but from a new app op
which is off by default and the settiings UI sets it to enabled only
for the currently selected mock location app.

bug:21078873

Change-Id: I19e3f9dc7c7de82eab46b30fec1abfbca54a0e59
2015-05-13 15:37:21 -07:00
destradaa
cbba357159 am 2c160c1a: am bdf9ffdd: am c0667853: Merge "Add SystemApis in GpsMeasurements APIs to reflect changes in GPS HAL. b/19938206" into mnc-dev
* commit '2c160c1a64a696dcb6261311ca0a406a07231d33':
  Add SystemApis in GpsMeasurements APIs to reflect changes in GPS HAL. b/19938206
2015-04-29 18:34:18 +00:00
destradaa
d593bf272d Add SystemApis in GpsMeasurements APIs to reflect changes in GPS HAL.
b/19938206

Change-Id: I91fd65b29e091b600ee4982a16321308e4d55aef
2015-04-28 12:49:20 -07:00
Tor Norbye
c347ec6763 Add permission annotations on the LocationManager API
Change-Id: I244e8da8a91bba05e5437b9b386caf4e5cf7b125
2015-04-23 16:45:04 -07:00
destradaa
5e72118f19 Update GpsMeasurements APIs to reflect changes in GPS HAL.
b/19938206

All new introduced APIs are hidden.

GpsMeasurement#isPseudorangeRateCorrected() is need to properly identify different types
of data provided by different partners. Given the nature of each GPS engine, this change is
required to accomodate the data that can be provided by many partners.
GpsNavigationMessage#getStatus() is required to ensure that the Location process is aware
if the state of the messages, and can act depending on it.

Change-Id: Ie34b1e69bf26a1bde86931ce61168421429bf8f8
2015-04-15 12:57:17 -07:00
David Christie
295a93b99f Add smallest displacement field to FLP HAL
Change-Id: I4d857256c035c65185be3be8401bec8d45091aaf
2015-04-08 17:33:38 -07:00
Alan Viverette
4a357cd2e5 Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
destradaa
c91ac68829 Update handling of enum/flag fields in GPS data structures.
It fixes cases when flags where filtered in the platform, because they were
checked as enums.
It also simplies handling of future values in enums/flags.

Change-Id: I83a0f82cc4562749081bf7e279ea52e2d5ba1f7c
2015-02-11 13:16:28 -08:00
destradaa
6bde4683ae Reduce memory usage of GpsStatus objects.
A simple GpsStatus object uses 9K of space, given that it initializes an array
of 255 GpsSatellite objects.
This change reduces the memory footprint in the average case, and keeps the
semantics of the API and its GpsSatellite sibling objects without any changes.
In a best case scenario it brings the memory usage per object to 1K.
It's likely in most cases that only 20-50 satellites will be in view. So the
usage should not exceeed half of the original memory usage.
It was considered to keep the internal array but a SparseArray provided bigger
memory savings in the test scenario of ~700B.

Change-Id: Ie2d2144d776a74d4904a08c0d6c5aec6d3bba7cc
2015-02-03 13:17:14 -08:00
destradaa
4b1b8e4c44 Revert API breaking change in System API.
Change introduced in ag/616521

Change-Id: Ia95982b051496e123b4a179746aea15c6a0b8a65
2015-02-02 11:42:20 -08:00
destradaa
22287fe7c2 Merge "Fix race condition generating READY and NOT_SUPPORTED statuses." 2015-02-02 18:07:41 +00:00
Soonil Nagarkar
71f0cd45ef Update Location.convert() javadocs to reflect their inconsistency with locales.
The Location.convert() methods do not invert each other as might be
expected. Changing this would introduce breaking changes, so I've
updated the javadocs to make this clearer.

Bug: 13280976
Change-Id: If4bd3c83d5fb67915450849ca471aabc27544dac
2015-01-30 11:29:42 -08:00
destradaa
13a60b0d41 Fix race condition generating READY and NOT_SUPPORTED statuses.
The race condition only affects when the client registers for several (all) location listeners.
And the side efects are benign: only the measurement and navigation message status are incurrectly
being sent to the application, but there are no crashes or any real data from GPS being
misscommunicated.
Also:
- cache the last reported status to filter sending notifications when no changes have occurred
- do some cleanup and refactoring in the code changed

Change-Id: I0692e6b70847dc1ee092d7a05a2c6ba3cd9fa147
2015-01-23 10:26:17 -08:00
Narayan Kamath
4d72e3e07e am a4c40c37: am 72d33849: Merge "Missing break in switch statement"
* commit 'a4c40c373477983622622186946d21802400876e':
  Missing break in switch statement
2014-12-30 12:29:38 +00:00
Narayan Kamath
72d33849fe Merge "Missing break in switch statement" 2014-12-30 09:43:03 +00:00
destradaa
ffa2b14d6f am 00916297: am 3546c9a5: Merge "Mark Gps Raw related APIs as System APIs. b/16727892" into lmp-mr1-dev
* commit '0091629788e883222ad358fa70e2cdfb3d71a296':
  Mark Gps Raw related APIs as System APIs. b/16727892
2014-11-07 18:43:36 +00:00
destradaa
3546c9a582 Merge "Mark Gps Raw related APIs as System APIs. b/16727892" into lmp-mr1-dev 2014-11-07 18:22:32 +00:00
destradaa
031550a31e am 9ed36c42: Merge "Add support for GPS measurement/navigation message capabilities. b/16727892 b/16815124" into lmp-mr1-dev automerge: 992b9aa
* commit '9ed36c42d8c3731b8ca631292881110eb8897cec':
  Add support for GPS measurement/navigation message capabilities. b/16727892 b/16815124
2014-11-07 00:07:30 +00:00
destradaa
91c962ad9c am a084d357: Merge "Fix reference leak in GPS measurement JNI layer. b/16727892 b/17075171" into lmp-mr1-dev automerge: c3e5599
* commit 'a084d357d3fd0a5696998e786aeb10ff394f24d5':
  Fix reference leak in GPS measurement JNI layer. b/16727892 b/17075171
2014-11-07 00:07:12 +00:00
destradaa
992b9aa37b Merge "Add support for GPS measurement/navigation message capabilities. b/16727892 b/16815124" into lmp-mr1-dev 2014-11-06 23:22:46 +00:00
destradaa
a62050d42c Mark Gps Raw related APIs as System APIs.
b/16727892

Change-Id: I29d78d45aef7829c3321ae4e7c26549e46fa39f9
2014-10-31 14:05:27 -07:00
destradaa
6568d709e7 Add support for GPS measurement/navigation message capabilities.
b/16727892
b/16815124

The listeners are changed to receive statuses asynchronously, this is required because GPS HAL,
requires time to be notified of the capabilities it supports.

Change-Id: Ie69fdd629d8680341386a2c736bc851632dd2bda
2014-10-31 14:03:20 -07:00
destradaa
df11984011 Fix reference leak in GPS measurement JNI layer.
b/16727892
b/17075171

Change-Id: I5f41c6db114078b927e56a7614fa7c09a288e2b2
2014-10-31 13:59:17 -07:00
Dianne Hackborn
75a6e82bcc am 36ae48a8: am d83e9e42: am 0761b1b5: am 89b19695: Merge "Put in real "code" (aka marketing) name." into lmp-dev
* commit '36ae48a850bade17d485cb49dd40a3f11f667ad4':
  Put in real "code" (aka marketing) name.
2014-10-10 04:26:40 +00:00
Dianne Hackborn
529b78941c am 89b19695: Merge "Put in real "code" (aka marketing) name." into lmp-dev
* commit '89b196958fee07475765bd3c458098464ba16f2e':
  Put in real "code" (aka marketing) name.
2014-10-08 22:48:44 +00:00
Dianne Hackborn
89b196958f Merge "Put in real "code" (aka marketing) name." into lmp-dev 2014-10-08 17:59:19 +00:00