summaryrefslogtreecommitdiff
path: root/android/2.0/GnssMeasurement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'android/2.0/GnssMeasurement.cpp')
-rw-r--r--android/2.0/GnssMeasurement.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/android/2.0/GnssMeasurement.cpp b/android/2.0/GnssMeasurement.cpp
index a1c22cf..a78fca3 100644
--- a/android/2.0/GnssMeasurement.cpp
+++ b/android/2.0/GnssMeasurement.cpp
@@ -36,7 +36,7 @@ void GnssMeasurement::GnssMeasurementDeathRecipient::serviceDied(
__FUNCTION__, static_cast<unsigned long long>(cookie), &who);
auto gssMeasurement = mGnssMeasurement.promote();
if (gssMeasurement != nullptr) {
- gssMeasurement->close();
+ gssMeasurement->handleClientDeath();
}
}
@@ -51,6 +51,19 @@ GnssMeasurement::~GnssMeasurement() {
}
}
+void GnssMeasurement::handleClientDeath() {
+
+ close();
+ if (mApi != nullptr) {
+ mApi->measurementSetCallback(nullptr);
+ mApi->measurementSetCallback_1_1(nullptr);
+ mApi->measurementSetCallback_2_0(nullptr);
+ }
+ mGnssMeasurementCbIface = nullptr;
+ mGnssMeasurementCbIface_1_1 = nullptr;
+ mGnssMeasurementCbIface_2_0 = nullptr;
+}
+
// Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow.
Return<GnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback(
const sp<V1_0::IGnssMeasurementCallback>& callback) {