diff options
Diffstat (limited to 'geofence/GeofenceAdapter.cpp')
-rw-r--r-- | geofence/GeofenceAdapter.cpp | 105 |
1 files changed, 14 insertions, 91 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]); |