summaryrefslogtreecommitdiff
path: root/android/2.0/GnssConfiguration.cpp
diff options
context:
space:
mode:
authorCyan_Hsieh <cyanhsieh@google.com>2019-09-04 13:58:52 +0800
committerCyan_Hsieh <cyanhsieh@google.com>2019-09-04 14:01:01 +0800
commit6c4d159942ff43c743759a0ec7ced6190504e217 (patch)
tree72e4dc78316425cdefb3930d28b0a6126ad1b44a /android/2.0/GnssConfiguration.cpp
parent0544c200784d79f554b7f2632f794f29393e7a9d (diff)
parente38b50370b18bf8056c8120ef21e43223f60bc23 (diff)
downloadgps-6c4d159942ff43c743759a0ec7ced6190504e217.tar.gz
Merge remote-tracking branch 'goog/qcom/release/LA.UM.8.1.R1.09.00.00.529.082' into qt-qpr1-dev
Bug: 140393025 Change-Id: Ia8975012d4185724a33da7a5bf4c544bab5c94e3
Diffstat (limited to 'android/2.0/GnssConfiguration.cpp')
-rw-r--r--android/2.0/GnssConfiguration.cpp38
1 files changed, 34 insertions, 4 deletions
diff --git a/android/2.0/GnssConfiguration.cpp b/android/2.0/GnssConfiguration.cpp
index d2a8763..363d2b1 100644
--- a/android/2.0/GnssConfiguration.cpp
+++ b/android/2.0/GnssConfiguration.cpp
@@ -23,6 +23,7 @@
#include <log_util.h>
#include "Gnss.h"
#include "GnssConfiguration.h"
+#include "ContextBase.h"
#include <android/hardware/gnss/1.0/types.h>
namespace android {
@@ -32,6 +33,7 @@ namespace V2_0 {
namespace implementation {
using ::android::hardware::gnss::V1_0::GnssConstellationType;
+using namespace loc_core;
GnssConfiguration::GnssConfiguration(Gnss* gnss) : mGnss(gnss) {
}
@@ -109,8 +111,7 @@ Return<bool> GnssConfiguration::setLppProfile(uint8_t lppProfile) {
return false;
}
- GnssConfig config;
- memset(&config, 0, sizeof(GnssConfig));
+ GnssConfig config = {};
config.size = sizeof(GnssConfig);
config.flags = GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT;
switch (lppProfile) {
@@ -162,8 +163,37 @@ Return<bool> GnssConfiguration::setGlonassPositioningProtocol(uint8_t protocol)
return mGnss->updateConfiguration(config);
}
-Return<bool> GnssConfiguration::setGpsLock(uint8_t /*lock*/) {
- // deprecated function. Must return false to pass VTS
+Return<bool> GnssConfiguration::setGpsLock(uint8_t lock) {
+
+ if (mGnss == nullptr) {
+ LOC_LOGE("%s]: mGnss is nullptr", __FUNCTION__);
+ return false;
+ }
+
+ GnssConfig config = {};
+ config.size = sizeof(GnssConfig);
+ config.flags = GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT;
+ switch (lock) {
+ case 0:
+ config.gpsLock = GNSS_CONFIG_GPS_LOCK_NONE;
+ break;
+ case 1:
+ config.gpsLock = GNSS_CONFIG_GPS_LOCK_MO;
+ break;
+ case 2:
+ config.gpsLock = GNSS_CONFIG_GPS_LOCK_NI;
+ break;
+ case 3:
+ config.gpsLock = GNSS_CONFIG_GPS_LOCK_MO_AND_NI;
+ break;
+ default:
+ LOC_LOGE("%s]: invalid lock: %d.", __FUNCTION__, lock);
+ return false;
+ break;
+ }
+
+ mGnss->updateConfiguration(config);
+ // Must return false to pass VTS
return false;
}