Send capabilities callback for each init
Added sending the capabilities to hal clients on every init, instead of only on the first init. This is needed for the cases when the hal client crashes and is trying to reinit. Bug: 36182606 Change-Id: I9055d2319f1dc407b6de9627b4e66eb89f8ce9d1 CRs-fixed: 2019987
This commit is contained in:
parent
3fb8076a5e
commit
b6928aae36
3 changed files with 14 additions and 1 deletions
|
@ -121,6 +121,7 @@ Return<bool> Gnss::setCallback(const sp<IGnssCallback>& callback) {
|
|||
if (api != nullptr) {
|
||||
api->gnssUpdateCallbacks(mGnssCbIface, mGnssNiCbIface);
|
||||
api->locAPIEnable(LOCATION_TECHNOLOGY_TYPE_GNSS);
|
||||
api->requestCapabilities();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,8 @@ GnssAPIClient::GnssAPIClient(const sp<IGnssCallback>& gpsCb,
|
|||
LocationAPIClientBase(),
|
||||
mGnssCbIface(nullptr),
|
||||
mGnssNiCbIface(nullptr),
|
||||
mLocationCapabilitiesMask(0)
|
||||
mLocationCapabilitiesMask(0),
|
||||
mLocationCapabilitiesCached(false)
|
||||
{
|
||||
LOC_LOGD("%s]: (%p %p)", __FUNCTION__, &gpsCb, &niCb);
|
||||
|
||||
|
@ -218,11 +219,20 @@ void GnssAPIClient::gnssConfigurationUpdate(const GnssConfig& gnssConfig)
|
|||
locAPIGnssUpdateConfig(gnssConfig);
|
||||
}
|
||||
|
||||
void GnssAPIClient::requestCapabilities() {
|
||||
// only send capablities if it's already cached, otherwise the first time LocationAPI
|
||||
// is initialized, capabilities will be sent by LocationAPI
|
||||
if (mLocationCapabilitiesCached) {
|
||||
onCapabilitiesCb(mLocationCapabilitiesMask);
|
||||
}
|
||||
}
|
||||
|
||||
// callbacks
|
||||
void GnssAPIClient::onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask)
|
||||
{
|
||||
LOC_LOGD("%s]: (%02x)", __FUNCTION__, capabilitiesMask);
|
||||
mLocationCapabilitiesMask = capabilitiesMask;
|
||||
mLocationCapabilitiesCached = true;
|
||||
if (mGnssCbIface != nullptr) {
|
||||
uint32_t data = 0;
|
||||
if ((capabilitiesMask & LOCATION_CAPABILITIES_TIME_BASED_TRACKING_BIT) ||
|
||||
|
|
|
@ -74,6 +74,7 @@ public:
|
|||
inline LocationCapabilitiesMask gnssGetCapabilities() const {
|
||||
return mLocationCapabilitiesMask;
|
||||
}
|
||||
void requestCapabilities();
|
||||
|
||||
// callbacks we are interested in
|
||||
void onCapabilitiesCb(LocationCapabilitiesMask capabilitiesMask) final;
|
||||
|
@ -90,6 +91,7 @@ private:
|
|||
sp<IGnssNiCallback> mGnssNiCbIface;
|
||||
|
||||
LocationCapabilitiesMask mLocationCapabilitiesMask;
|
||||
bool mLocationCapabilitiesCached;
|
||||
|
||||
LocationOptions mLocationOptions;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue