diff options
author | Cyan_Hsieh <cyanhsieh@google.com> | 2019-12-04 12:06:28 +0800 |
---|---|---|
committer | Cyan_Hsieh <cyanhsieh@google.com> | 2019-12-11 15:30:52 +0800 |
commit | e88586065a860ca114e0e4e8c072618a54fd758a (patch) | |
tree | 6797d138ba03cac7094f0230c4df54cbda5871db /android | |
parent | c18923a8315ccc2c76be98f15b9b24dc89387495 (diff) | |
parent | 3b3bcb11138eb564f61bc56ad29b9660e93ff215 (diff) | |
download | gps-e88586065a860ca114e0e4e8c072618a54fd758a.tar.gz |
Merge remote-tracking branch 'goog/qcom/release/LA.UM.8.1.C9.09.00.00.518.343' into qt-qpr1-dev
Bug: 145572601
Change-Id: I9e379ad6f79f538a0368a4a905589616c5a23ee3
Diffstat (limited to 'android')
-rw-r--r-- | android/1.0/Gnss.cpp | 2 | ||||
-rw-r--r-- | android/1.0/location_api/GnssAPIClient.cpp | 1 | ||||
-rw-r--r-- | android/1.1/Gnss.cpp | 2 | ||||
-rw-r--r-- | android/1.1/location_api/GnssAPIClient.cpp | 1 | ||||
-rw-r--r-- | android/2.0/Gnss.cpp | 2 | ||||
-rw-r--r-- | android/2.0/location_api/GnssAPIClient.cpp | 1 | ||||
-rw-r--r-- | android/utils/Android.mk | 3 | ||||
-rw-r--r-- | android/utils/battery_listener.cpp | 70 |
8 files changed, 45 insertions, 37 deletions
diff --git a/android/1.0/Gnss.cpp b/android/1.0/Gnss.cpp index d85e0a4..4aac432 100644 --- a/android/1.0/Gnss.cpp +++ b/android/1.0/Gnss.cpp @@ -56,6 +56,8 @@ void location_on_battery_status_changed(bool charging) { Gnss::Gnss() { ENTRY_LOG_CALLFLOW(); sGnss = this; + // initilize gnss interface at first in case needing notify battery status + sGnss->getGnssInterface()->initialize(); // register health client to listen on battery change loc_extn_battery_properties_listener_init(location_on_battery_status_changed); // clear pending GnssConfig diff --git a/android/1.0/location_api/GnssAPIClient.cpp b/android/1.0/location_api/GnssAPIClient.cpp index b9fe2b2..eb78591 100644 --- a/android/1.0/location_api/GnssAPIClient.cpp +++ b/android/1.0/location_api/GnssAPIClient.cpp @@ -174,7 +174,6 @@ bool GnssAPIClient::gnssSetPositionMode(IGnss::GnssPositionMode mode, // For MSA, we always treat it as SINGLE mode. mTrackingOptions.minInterval = SINGLE_SHOT_MIN_TRACKING_INTERVAL_MSEC; } - mTrackingOptions.minDistance = preferredAccuracyMeters; if (mode == IGnss::GnssPositionMode::STANDALONE) mTrackingOptions.mode = GNSS_SUPL_MODE_STANDALONE; else if (mode == IGnss::GnssPositionMode::MS_BASED) diff --git a/android/1.1/Gnss.cpp b/android/1.1/Gnss.cpp index bea556f..277dbc1 100644 --- a/android/1.1/Gnss.cpp +++ b/android/1.1/Gnss.cpp @@ -97,6 +97,8 @@ void location_on_battery_status_changed(bool charging) { Gnss::Gnss() { ENTRY_LOG_CALLFLOW(); sGnss = this; + // initilize gnss interface at first in case needing notify battery status + sGnss->getGnssInterface()->initialize(); // register health client to listen on battery change loc_extn_battery_properties_listener_init(location_on_battery_status_changed); // clear pending GnssConfig diff --git a/android/1.1/location_api/GnssAPIClient.cpp b/android/1.1/location_api/GnssAPIClient.cpp index 9a95fdf..be4d659 100644 --- a/android/1.1/location_api/GnssAPIClient.cpp +++ b/android/1.1/location_api/GnssAPIClient.cpp @@ -174,7 +174,6 @@ bool GnssAPIClient::gnssSetPositionMode(IGnss::GnssPositionMode mode, // For MSA, we always treat it as SINGLE mode. mTrackingOptions.minInterval = SINGLE_SHOT_MIN_TRACKING_INTERVAL_MSEC; } - mTrackingOptions.minDistance = preferredAccuracyMeters; if (mode == IGnss::GnssPositionMode::STANDALONE) mTrackingOptions.mode = GNSS_SUPL_MODE_STANDALONE; else if (mode == IGnss::GnssPositionMode::MS_BASED) diff --git a/android/2.0/Gnss.cpp b/android/2.0/Gnss.cpp index af76b72..2276c14 100644 --- a/android/2.0/Gnss.cpp +++ b/android/2.0/Gnss.cpp @@ -96,6 +96,8 @@ void location_on_battery_status_changed(bool charging) { Gnss::Gnss() { ENTRY_LOG_CALLFLOW(); sGnss = this; + // initilize gnss interface at first in case needing notify battery status + sGnss->getGnssInterface()->initialize(); // register health client to listen on battery change loc_extn_battery_properties_listener_init(location_on_battery_status_changed); // clear pending GnssConfig diff --git a/android/2.0/location_api/GnssAPIClient.cpp b/android/2.0/location_api/GnssAPIClient.cpp index a3cdd27..d505241 100644 --- a/android/2.0/location_api/GnssAPIClient.cpp +++ b/android/2.0/location_api/GnssAPIClient.cpp @@ -223,7 +223,6 @@ bool GnssAPIClient::gnssSetPositionMode(IGnss::GnssPositionMode mode, // For MSA, we always treat it as SINGLE mode. mTrackingOptions.minInterval = SINGLE_SHOT_MIN_TRACKING_INTERVAL_MSEC; } - mTrackingOptions.minDistance = preferredAccuracyMeters; if (mode == IGnss::GnssPositionMode::STANDALONE) mTrackingOptions.mode = GNSS_SUPL_MODE_STANDALONE; else if (mode == IGnss::GnssPositionMode::MS_BASED) diff --git a/android/utils/Android.mk b/android/utils/Android.mk index bbcf512..9cb6f7b 100644 --- a/android/utils/Android.mk +++ b/android/utils/Android.mk @@ -24,6 +24,9 @@ LOCAL_SHARED_LIBRARIES := \ android.hardware.power@1.2 \ libbase +LOCAL_HEADER_LIBRARIES := \ + libgps.utils_headers \ + LOCAL_STATIC_LIBRARIES := libhealthhalutils LOCAL_CFLAGS += -DBATTERY_LISTENER_ENABLED diff --git a/android/utils/battery_listener.cpp b/android/utils/battery_listener.cpp index a790702..8547e41 100644 --- a/android/utils/battery_listener.cpp +++ b/android/utils/battery_listener.cpp @@ -31,12 +31,15 @@ #undef LOG_TAG #endif #define LOG_TAG "LocSvc_BatteryListener" +#define LOG_NDEBUG 0 #include <android/hidl/manager/1.0/IServiceManager.h> #include <android/hardware/health/2.0/IHealth.h> #include <healthhalutils/HealthHalUtils.h> #include <hidl/HidlTransportSupport.h> #include <thread> +#include <log_util.h> + using android::hardware::interfacesEqual; using android::hardware::Return; using android::hardware::Void; @@ -99,24 +102,25 @@ status_t BatteryListenerImpl::init() } while(tries < GET_HEALTH_SVC_RETRY_CNT); if (mHealth == NULL) { - ALOGE("no health service found, retries %d", tries); + LOC_LOGe("no health service found, retries %d", tries); return NO_INIT; } else { - ALOGI("Get health service in %d tries", tries); + LOC_LOGi("Get health service in %d tries", tries); } mStatus = BatteryStatus::UNKNOWN; auto ret = mHealth->getChargeStatus([&](Result r, BatteryStatus status) { if (r != Result::SUCCESS) { - ALOGE("batterylistener: cannot get battery status"); + LOC_LOGe("batterylistener: cannot get battery status"); return; } mStatus = status; }); - if (!ret.isOk()) - ALOGE("batterylistener: get charge status transaction error"); - - if (mStatus == BatteryStatus::UNKNOWN) - ALOGW("batterylistener: init: invalid battery status"); + if (!ret.isOk()) { + LOC_LOGe("batterylistener: get charge status transaction error"); + } + if (mStatus == BatteryStatus::UNKNOWN) { + LOC_LOGw("batterylistener: init: invalid battery status"); + } mDone = false; mThread = std::make_unique<std::thread>([this]() { std::unique_lock<std::mutex> l(mLock); @@ -146,7 +150,7 @@ status_t BatteryListenerImpl::init() } default: bool c = statusToBool(local_status); - ALOGI("healthInfo cb thread: cb %s", c ? "CHARGING" : "NOT CHARGING"); + LOC_LOGi("healthInfo cb thread: cb %s", c ? "CHARGING" : "NOT CHARGING"); l.unlock(); mCb(c); l.lock(); @@ -156,13 +160,14 @@ status_t BatteryListenerImpl::init() }); auto reg = mHealth->registerCallback(this); if (!reg.isOk()) { - ALOGE("Transaction error in registeringCb to HealthHAL death: %s", + LOC_LOGe("Transaction error in registeringCb to HealthHAL death: %s", reg.description().c_str()); } auto linked = mHealth->linkToDeath(this, 0 /* cookie */); if (!linked.isOk() || linked == false) { - ALOGE("Transaction error in linking to HealthHAL death: %s", linked.description().c_str()); + LOC_LOGe("Transaction error in linking to HealthHAL death: %s", + linked.description().c_str()); } return NO_ERROR; } @@ -181,7 +186,7 @@ BatteryListenerImpl::~BatteryListenerImpl() mHealth->unlinkToDeath(this); auto r = mHealth->unlinkToDeath(this); if (!r.isOk() || r == false) { - ALOGE("Transaction error in unregister to HealthHAL death: %s", + LOC_LOGe("Transaction error in unregister to HealthHAL death: %s", r.description().c_str()); } } @@ -195,10 +200,10 @@ void BatteryListenerImpl::serviceDied(uint64_t cookie __unused, { std::lock_guard<std::mutex> _l(mLock); if (mHealth == NULL || !interfacesEqual(mHealth, who.promote())) { - ALOGE("health not initialized or unknown interface died"); + LOC_LOGe("health not initialized or unknown interface died"); return; } - ALOGI("health service died, reinit"); + LOC_LOGi("health service died, reinit"); mDone = true; } mThread->join(); @@ -212,9 +217,8 @@ void BatteryListenerImpl::serviceDied(uint64_t cookie __unused, // NOT_CHARGING and CHARGING concurrencies. // Replace single var by a list if this assumption is broken Return<void> BatteryListenerImpl::healthInfoChanged( - const hardware::health::V2_0::HealthInfo& info) -{ - ALOGV("healthInfoChanged: %d", info.legacy.batteryStatus); + const hardware::health::V2_0::HealthInfo& info) { + LOC_LOGv("healthInfoChanged: %d", info.legacy.batteryStatus); std::unique_lock<std::mutex> l(mLock); if (info.legacy.batteryStatus != mStatus) { mStatus = info.legacy.batteryStatus; @@ -224,29 +228,29 @@ Return<void> BatteryListenerImpl::healthInfoChanged( } static sp<BatteryListenerImpl> batteryListener; -status_t batteryPropertiesListenerInit(BatteryListenerImpl::cb_fn_t cb) -{ - ALOGV("batteryPropertiesListenerInit entry"); + +bool batteryPropertiesListenerIsCharging() { + return batteryListener->isCharging(); +} + +status_t batteryPropertiesListenerInit(BatteryListenerImpl::cb_fn_t cb) { batteryListener = new BatteryListenerImpl(cb); + bool isCharging = batteryPropertiesListenerIsCharging(); + LOC_LOGv("charging status: %s charging", isCharging ? "" : "not");; + if (isCharging) { + cb(isCharging); + } return NO_ERROR; } -status_t batteryPropertiesListenerDeinit() -{ +status_t batteryPropertiesListenerDeinit() { batteryListener.clear(); return OK; } -bool batteryPropertiesListenerIsCharging() -{ - return batteryListener->isCharging(); -} - } // namespace android -void loc_extn_battery_properties_listener_init(battery_status_change_fn_t fn) -{ - ALOGV("loc_extn_battery_properties_listener_init entry"); +void loc_extn_battery_properties_listener_init(battery_status_change_fn_t fn) { if (!sIsBatteryListened) { std::thread t1(android::batteryPropertiesListenerInit, [=](bool charging) { fn(charging); }); @@ -255,12 +259,10 @@ void loc_extn_battery_properties_listener_init(battery_status_change_fn_t fn) } } -void loc_extn_battery_properties_listener_deinit() -{ +void loc_extn_battery_properties_listener_deinit() { android::batteryPropertiesListenerDeinit(); } -bool loc_extn_battery_properties_is_charging() -{ +bool loc_extn_battery_properties_is_charging() { return android::batteryPropertiesListenerIsCharging(); } |