diff options
Diffstat (limited to 'android/2.1/GnssMeasurement.cpp')
-rw-r--r-- | android/2.1/GnssMeasurement.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/android/2.1/GnssMeasurement.cpp b/android/2.1/GnssMeasurement.cpp index dfb464d..b6b3e59 100644 --- a/android/2.1/GnssMeasurement.cpp +++ b/android/2.1/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,21 @@ GnssMeasurement::~GnssMeasurement() { } } +void GnssMeasurement::handleClientDeath() { + + close(); + if (mApi != nullptr) { + mApi->measurementSetCallback(nullptr); + mApi->measurementSetCallback_1_1(nullptr); + mApi->measurementSetCallback_2_0(nullptr); + mApi->measurementSetCallback_2_1(nullptr); + } + mGnssMeasurementCbIface = nullptr; + mGnssMeasurementCbIface_1_1 = nullptr; + mGnssMeasurementCbIface_2_0 = nullptr; + mGnssMeasurementCbIface_2_1 = nullptr; +} + // Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow. Return<GnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback( const sp<V1_0::IGnssMeasurementCallback>& callback) { |