summaryrefslogtreecommitdiff
path: root/geofence
diff options
context:
space:
mode:
Diffstat (limited to 'geofence')
-rw-r--r--geofence/GeofenceAdapter.cpp105
-rw-r--r--geofence/GeofenceAdapter.h40
2 files changed, 15 insertions, 130 deletions
diff --git a/geofence/GeofenceAdapter.cpp b/geofence/GeofenceAdapter.cpp
index 3fbe0a9..1aeea0a 100644
--- a/geofence/GeofenceAdapter.cpp
+++ b/geofence/GeofenceAdapter.cpp
@@ -26,43 +26,6 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-
-/*
-Changes from Qualcomm Innovation Center are provided under the following license:
-
-Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted (subject to the limitations in the
-disclaimer below) provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
#define LOG_TAG "LocSvc_GeofenceAdapter"
#include <GeofenceAdapter.h>
@@ -154,62 +117,25 @@ GeofenceAdapter::getGeofenceKeyFromHwId(uint32_t hwId, GeofenceKey& key)
}
void
-GeofenceAdapter::handleEngineLockStatusEvent(EngineLockState engineLockState) {
-
- LOC_LOGD("%s]: Old Engine state %d, New Engine state : %d,", __func__,
- mLocApi->getEngineLockState(), engineLockState);
-
- struct MsgEngineLockStateEvent : public LocMsg {
- GeofenceAdapter& mAdapter;
- EngineLockState mEngineLockState;
-
- inline MsgEngineLockStateEvent(GeofenceAdapter& adapter, EngineLockState engineLockState) :
- LocMsg(),
- mAdapter(adapter),
- mEngineLockState(engineLockState){}
-
- virtual void proc() const {
- mAdapter.handleEngineLockStatus(mEngineLockState);
- }
- };
-
- sendMsg(new MsgEngineLockStateEvent(*this, engineLockState));
-}
-
-void
-GeofenceAdapter::handleEngineLockStatus(EngineLockState engineLockState) {
-
- if (ENGINE_LOCK_STATE_ENABLED == engineLockState) {
- for (auto msg: mPendingGnssEnabledMsgs) {
- sendMsg(msg);
- }
- mPendingGnssEnabledMsgs.clear();
- }
-}
-
-void
GeofenceAdapter::handleEngineUpEvent()
{
struct MsgSSREvent : public LocMsg {
GeofenceAdapter& mAdapter;
- LocApiBase& mApi;
- inline MsgSSREvent(GeofenceAdapter& adapter, LocApiBase& api) :
+ inline MsgSSREvent(GeofenceAdapter& adapter) :
LocMsg(),
- mAdapter(adapter),
- mApi(api) {}
+ mAdapter(adapter) {}
virtual void proc() const {
mAdapter.setEngineCapabilitiesKnown(true);
mAdapter.broadcastCapabilities(mAdapter.getCapabilities());
- if (ENGINE_LOCK_STATE_ENABLED == mApi.getEngineLockState()) {
- mAdapter.restartGeofences();
- for (auto msg: mAdapter.mPendingMsgs) {
- mAdapter.sendMsg(msg);
- }
+ mAdapter.restartGeofences();
+ for (auto msg: mAdapter.mPendingMsgs) {
+ mAdapter.sendMsg(msg);
}
+ mAdapter.mPendingMsgs.clear();
}
};
- sendMsg(new MsgSSREvent(*this, *mLocApi));
+ sendMsg(new MsgSSREvent(*this));
}
void
@@ -305,7 +231,7 @@ GeofenceAdapter::addGeofencesCommand(LocationAPI* client, size_t count, Geofence
mCount(count),
mIds(ids),
mOptions(options),
- mInfos(infos){}
+ mInfos(infos) {}
inline virtual void proc() const {
LocationError* errs = new LocationError[mCount];
if (nullptr == errs) {
@@ -323,10 +249,9 @@ GeofenceAdapter::addGeofencesCommand(LocationAPI* client, size_t count, Geofence
mApi.addGeofence(mIds[i], mOptions[i], mInfos[i],
new LocApiResponseData<LocApiGeofenceData>(*mAdapter.getContext(),
[&mAdapter = mAdapter, mOptions = mOptions, mClient = mClient,
- mCount = mCount, mIds = mIds, mInfos = mInfos, errs, i, &mApi = mApi]
+ mCount = mCount, mIds = mIds, mInfos = mInfos, errs, i]
(LocationError err, LocApiGeofenceData data) {
- if (ENGINE_LOCK_STATE_DISABLED == mApi.getEngineLockState() ||
- LOCATION_ERROR_SUCCESS == err) {
+ if (LOCATION_ERROR_SUCCESS == err) {
mAdapter.saveGeofenceItem(mClient,
mIds[i],
data.hwId,
@@ -428,9 +353,8 @@ GeofenceAdapter::removeGeofencesCommand(LocationAPI* client, size_t count, uint3
mApi.removeGeofence(hwId, mIds[i],
new LocApiResponse(*mAdapter.getContext(),
[&mAdapter = mAdapter, mCount = mCount, mClient = mClient, mIds = mIds,
- hwId, errs, i, &mApi = mApi] (LocationError err ) {
- if (ENGINE_LOCK_STATE_DISABLED == mApi.getEngineLockState() ||
- LOCATION_ERROR_SUCCESS == err) {
+ hwId, errs, i] (LocationError err ) {
+ if (LOCATION_ERROR_SUCCESS == err) {
mAdapter.removeGeofenceItem(hwId);
}
errs[i] = err;
@@ -663,10 +587,9 @@ GeofenceAdapter::modifyGeofencesCommand(LocationAPI* client, size_t count, uint3
mApi.modifyGeofence(hwId, mIds[i], mOptions[i],
new LocApiResponse(*mAdapter.getContext(),
[&mAdapter = mAdapter, mCount = mCount, mClient = mClient,
- mIds = mIds, mOptions = mOptions, hwId, errs, i, &mApi = mApi]
+ mIds = mIds, mOptions = mOptions, hwId, errs, i]
(LocationError err ) {
- if (ENGINE_LOCK_STATE_DISABLED == mApi.getEngineLockState() ||
- LOCATION_ERROR_SUCCESS == err) {
+ if (LOCATION_ERROR_SUCCESS == err) {
errs[i] = err;
mAdapter.modifyGeofenceItem(hwId, mOptions[i]);
diff --git a/geofence/GeofenceAdapter.h b/geofence/GeofenceAdapter.h
index 83911a9..38f4823 100644
--- a/geofence/GeofenceAdapter.h
+++ b/geofence/GeofenceAdapter.h
@@ -26,43 +26,6 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-
-/*
-Changes from Qualcomm Innovation Center are provided under the following license:
-
-Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted (subject to the limitations in the
-disclaimer below) provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
#ifndef GEOFENCE_ADAPTER_H
#define GEOFENCE_ADAPTER_H
@@ -158,9 +121,8 @@ public:
LocationError getHwIdFromClient(LocationAPI* client, uint32_t clientId, uint32_t& hwId);
LocationError getGeofenceKeyFromHwId(uint32_t hwId, GeofenceKey& key);
void dump();
+
/* ==== REPORTS ======================================================================== */
- virtual void handleEngineLockStatusEvent(EngineLockState engineLockState);
- void handleEngineLockStatus(EngineLockState engineLockState);
/* ======== EVENTS ====(Called from QMI Thread)========================================= */
void geofenceBreachEvent(size_t count, uint32_t* hwIds, Location& location,
GeofenceBreachType breachType, uint64_t timestamp);