From 7074db040a43494a9cd3ed4e0a91404f1397d08f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 11 Jul 2016 16:47:44 +0200 Subject: [PATCH] Fix for push information not being set if network down at configuration time --- src/org/linphone/LinphoneManager.java | 6 ++++++ src/org/linphone/LinphonePreferences.java | 4 ++-- src/org/linphone/compatibility/ApiElevenPlus.java | 1 + src/org/linphone/compatibility/ApiSixteenPlus.java | 1 + src/org/linphone/compatibility/ApiTwentyOnePlus.java | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7ee8ffd33..6efc2a469 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -792,6 +792,12 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag mLastNetworkType=curtype; } } + + if (mLc.isNetworkReachable()) { + // When network isn't available, push informations might not be set. This should fix the issue. + LinphonePreferences prefs = LinphonePreferences.instance(); + prefs.setPushNotificationEnabled(prefs.isPushNotificationEnabled()); + } } @TargetApi(Build.VERSION_CODES.HONEYCOMB) diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index 73a5893ba..babfb4613 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -1017,7 +1017,7 @@ public class LinphonePreferences { lpc.edit(); lpc.setContactUriParameters(contactInfos); lpc.done(); - Log.d("Push notif infos added to proxy config"); + Log.d("Push notif infos added to proxy config " + lpc.getAddress().asStringUriOnly()); } lc.refreshRegisters(); } @@ -1027,7 +1027,7 @@ public class LinphonePreferences { lpc.edit(); lpc.setContactUriParameters(null); lpc.done(); - Log.d("Push notif infos removed from proxy config"); + Log.d("Push notif infos removed from proxy config " + lpc.getAddress().asStringUriOnly()); } lc.refreshRegisters(); } diff --git a/src/org/linphone/compatibility/ApiElevenPlus.java b/src/org/linphone/compatibility/ApiElevenPlus.java index d967bc6d3..d8c0a1fe4 100644 --- a/src/org/linphone/compatibility/ApiElevenPlus.java +++ b/src/org/linphone/compatibility/ApiElevenPlus.java @@ -69,6 +69,7 @@ public class ApiElevenPlus { | Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) .setWhen(System.currentTimeMillis()) + .setNumber(msgCount) .setLargeIcon(contactIcon).getNotification(); return notif; diff --git a/src/org/linphone/compatibility/ApiSixteenPlus.java b/src/org/linphone/compatibility/ApiSixteenPlus.java index ac9ccd86d..a97cb04e1 100644 --- a/src/org/linphone/compatibility/ApiSixteenPlus.java +++ b/src/org/linphone/compatibility/ApiSixteenPlus.java @@ -56,6 +56,7 @@ public class ApiSixteenPlus { | Notification.DEFAULT_VIBRATE) .setWhen(System.currentTimeMillis()) .setLargeIcon(contactIcon) + .setNumber(msgCount) .build(); return notif; diff --git a/src/org/linphone/compatibility/ApiTwentyOnePlus.java b/src/org/linphone/compatibility/ApiTwentyOnePlus.java index e1a842b4c..8247caa5f 100644 --- a/src/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/src/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -54,6 +54,7 @@ public class ApiTwentyOnePlus { .setCategory(Notification.CATEGORY_MESSAGE) .setVisibility(Notification.VISIBILITY_PRIVATE) .setPriority(Notification.PRIORITY_HIGH) + .setNumber(msgCount) .build(); return notif;