summaryrefslogtreecommitdiff
path: root/gnss/XtraSystemStatusObserver.cpp
diff options
context:
space:
mode:
authorKevin Tang <zhikait@codeaurora.org>2019-07-08 11:17:06 -0700
committerKevin Tang <zhikait@codeaurora.org>2019-07-08 11:17:06 -0700
commit95ee8899c9be89fb3318a2e831b7147d31073a86 (patch)
treed8d37e363f1511f14b0d3290ed2f658fd98ae201 /gnss/XtraSystemStatusObserver.cpp
parent18eb6db4863c47cbde432727f6ee8adb683eaa17 (diff)
downloadgps-95ee8899c9be89fb3318a2e831b7147d31073a86.tar.gz
Add XSSO support for multiple network handles
Add support in HAL for multiple network handles with same type. Change-Id: Idc9e6fc1c7876dc868264500d60a5d086ab003b0 CRs-Fixed: 2477395
Diffstat (limited to 'gnss/XtraSystemStatusObserver.cpp')
-rw-r--r--gnss/XtraSystemStatusObserver.cpp42
1 files changed, 32 insertions, 10 deletions
diff --git a/gnss/XtraSystemStatusObserver.cpp b/gnss/XtraSystemStatusObserver.cpp
index af593fb..1671c76 100644
--- a/gnss/XtraSystemStatusObserver.cpp
+++ b/gnss/XtraSystemStatusObserver.cpp
@@ -129,19 +129,33 @@ bool XtraSystemStatusObserver::updateLockStatus(GnssConfigGpsLock lock) {
}
bool XtraSystemStatusObserver::updateConnections(uint64_t allConnections,
- uint64_t wifiNetworkHandle, uint64_t mobileNetworkHandle) {
+ NetworkInfoType* networkHandleInfo) {
mIsConnectivityStatusKnown = true;
mConnections = allConnections;
- mWifiNetworkHandle = wifiNetworkHandle;
- mMobileNetworkHandle = mobileNetworkHandle;
+
+ LOC_LOGd("updateConnections mConnections:%" PRIx64, mConnections);
+ for (uint8_t i = 0; i < MAX_NETWORK_HANDLES; ++i) {
+ mNetworkHandle[i] = networkHandleInfo[i];
+ LOC_LOGd("updateConnections [%d] networkHandle:%" PRIx64 " networkType:%u",
+ i, mNetworkHandle[i].networkHandle, mNetworkHandle[i].networkType);
+ }
if (!mReqStatusReceived) {
return true;
}
stringstream ss;
- ss << "connection" << endl << mConnections << endl << wifiNetworkHandle
- << endl << mobileNetworkHandle;
+ ss << "connection" << endl << mConnections << endl
+ << mNetworkHandle[0].toString() << endl
+ << mNetworkHandle[1].toString() << endl
+ << mNetworkHandle[2].toString() << endl
+ << mNetworkHandle[3].toString() << endl
+ << mNetworkHandle[4].toString() << endl
+ << mNetworkHandle[5].toString() << endl
+ << mNetworkHandle[6].toString() << endl
+ << mNetworkHandle[7].toString() << endl
+ << mNetworkHandle[8].toString() << endl
+ << mNetworkHandle[MAX_NETWORK_HANDLES-1].toString();
string s = ss.str();
return ( LocIpc::send(*mSender, (const uint8_t*)s.data(), s.size()) );
}
@@ -200,7 +214,16 @@ inline bool XtraSystemStatusObserver::onStatusRequested(int32_t xtraStatusUpdate
ss << "respondStatus" << endl;
(mGpsLock == -1 ? ss : ss << mGpsLock) << endl;
(mConnections == (uint64_t)~0 ? ss : ss << mConnections) << endl
- << mWifiNetworkHandle << endl << mMobileNetworkHandle << endl
+ << mNetworkHandle[0].toString() << endl
+ << mNetworkHandle[1].toString() << endl
+ << mNetworkHandle[2].toString() << endl
+ << mNetworkHandle[3].toString() << endl
+ << mNetworkHandle[4].toString() << endl
+ << mNetworkHandle[5].toString() << endl
+ << mNetworkHandle[6].toString() << endl
+ << mNetworkHandle[7].toString() << endl
+ << mNetworkHandle[8].toString() << endl
+ << mNetworkHandle[MAX_NETWORK_HANDLES-1].toString() << endl
<< mTac << endl << mMccmnc << endl << mIsConnectivityStatusKnown;
string s = ss.str();
@@ -272,11 +295,10 @@ void XtraSystemStatusObserver::notify(const list<IDataItemCore*>& dlist)
{
NetworkInfoDataItemBase* networkInfo =
static_cast<NetworkInfoDataItemBase*>(each);
+ NetworkInfoType* networkHandleInfo =
+ static_cast<NetworkInfoType*>(networkInfo->getNetworkHandle());
mXtraSysStatObj->updateConnections(networkInfo->getAllTypes(),
- (NetworkHandle) networkInfo->getNetworkHandle(
- loc_core::NetworkInfoDataItemBase::TYPE_WIFI),
- (NetworkHandle) networkInfo->getNetworkHandle(
- loc_core::NetworkInfoDataItemBase::TYPE_MOBILE));
+ networkHandleInfo);
}
break;