From c082aa52fd10ac0aa7c900f577368d14ea10bb57 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Thu, 7 Jun 2018 11:17:31 +0200 Subject: [PATCH] Fix not send expires at 0 on device shutdown if push or background mode enabled --- src/android/org/linphone/LinphoneManager.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index dfed7d63e..41c65f2f2 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -906,13 +906,24 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou } } + private void destroyLinphoneCore() { + if (LinphonePreferences.instance() != null) { + // We set network reachable at false before destroy LC to not send register with expires at 0 + if (LinphonePreferences.instance().isPushNotificationEnabled() + || LinphonePreferences.instance().isBackgroundModeEnabled()) { + mLc.setNetworkReachable(false); + } + } + mLc = null; + } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void doDestroy() { ContactsManagerDestroy(); BluetoothManagerDestroy(); try { mTimer.cancel(); - mLc = null; + destroyLinphoneCore(); } catch (RuntimeException e) { Log.e(e); @@ -947,7 +958,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou } catch (Exception e) { Log.e(e); } - mLc = null; instance = null; } }