The legacy RIL interface received Lat and Long in that order.
The HIDL interface structure uses Long and Lat. This fixes
a swaparoo in the compatibility layer.
* RIL_REQUEST_VOICE_REGISTRATION_STATE
*
* ... skipping a bunch of stuff
*
* ((const char **)response)[5] is Base Station latitude if registered on a
* CDMA system or NULL if not. Base Station
* latitude is a decimal number as specified in
* 3GPP2 C.S0005-A v6.0. It is represented in
* units of 0.25 seconds and ranges from -
1296000
* to
1296000, both values inclusive (corresponding
* to a range of -90 to +90 degrees).
* ((const char **)response)[6] is Base Station longitude if registered on a
* CDMA system or NULL if not. Base Station
* longitude is a decimal number as specified in
* 3GPP2 C.S0005-A v6.0. It is represented in
* units of 0.25 seconds and ranges from -
2592000
* to
2592000, both values inclusive (corresponding
* to a range of -180 to +180 degrees).
Bug:
63274800
Test: manual
Change-Id: If2de7f5d0e0d0f470f824aa4f2329de4ad98eb6c
case RIL_CELL_INFO_TYPE_CDMA:{
rilCellIdentity.cellIdentityCdma.basestationId =
convertResponseStringEntryToInt(response, 4, numStrings);
- rilCellIdentity.cellIdentityCdma.longitude =
- convertResponseStringEntryToInt(response, 5, numStrings);
+ /* Order of Lat. and Long. swapped between RIL and HIDL interface versions. */
rilCellIdentity.cellIdentityCdma.latitude =
+ convertResponseStringEntryToInt(response, 5, numStrings);
+ rilCellIdentity.cellIdentityCdma.longitude =
convertResponseStringEntryToInt(response, 6, numStrings);
rilCellIdentity.cellIdentityCdma.systemId =
convertResponseStringEntryToInt(response, 8, numStrings);