diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory
index 8723a1069..3dfd803f2 100644
--- a/res/raw/linphonerc_factory
+++ b/res/raw/linphonerc_factory
@@ -12,8 +12,7 @@ register_only_when_network_is_up=1
auto_net_state_mon=0
auto_answer_replacing_calls=1
ping_with_options=0
-rls_uri=sip:rls@sip.linphone.org
-use_rls_presence=1
+rls_uri=
[rtp]
audio_rtp_port=7076
diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index eb624b797..87e9d31b1 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -5,6 +5,7 @@
sip.linphone.org
org.linphone
vnd.android.cursor.item/org.linphone.profile
+ sip:rls@sip.linphone.org
false
false
false
diff --git a/src/org/linphone/ContactsManager.java b/src/org/linphone/ContactsManager.java
index 96f8804e5..bbc7a2951 100644
--- a/src/org/linphone/ContactsManager.java
+++ b/src/org/linphone/ContactsManager.java
@@ -423,7 +423,10 @@ public class ContactsManager extends ContentObserver {
setContacts(contacts);
setSipContacts(sipContacts);
- LinphoneManager.getLc().getFriendLists()[0].updateSubscriptions();
+ if (LinphonePreferences.instance() != null && LinphonePreferences.instance().isFriendlistsubscriptionEnabled()) {
+ LinphoneManager.getLc().getFriendLists()[0].setRLSUri(getString(R.string.rls_uri));
+ LinphoneManager.getLc().getFriendLists()[0].updateSubscriptions();
+ }
for (ContactsUpdatedListener listener : contactsUpdatedListeners) {
listener.onContactsUpdated();
}
diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java
index 79757a873..3341838db 100644
--- a/src/org/linphone/LinphoneActivity.java
+++ b/src/org/linphone/LinphoneActivity.java
@@ -1358,11 +1358,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
}
updateMissedChatCount();
- if(LinphonePreferences.instance().isFriendlistsubscriptionEnabled() && LinphoneManager.getLc().getDefaultProxyConfig() != null){
- LinphoneManager.getInstance().subscribeFriendList(true);
- } else {
- LinphoneManager.getInstance().subscribeFriendList(false);
- }
displayMissedCalls(LinphoneManager.getLc().getMissedCallsCount());
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index 91a761cf0..a748a5917 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -467,6 +467,8 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
LinphoneFriendList mFriendList = (lc.getFriendLists())[0];
Log.i("Presence list subscription is " + (enabled ? "enabled" : "disabled"));
mFriendList.enableSubscriptions(enabled);
+ if (ContactsManager.getInstance() != null)
+ ContactsManager.getInstance().fetchContactsAsync();
}
}
@@ -789,7 +791,6 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
mLc.setCallLogsDatabasePath(mCallLogDatabaseFile);
mLc.setFriendsDatabasePath(mFriendsDatabaseFile);
mLc.setUserCertificatesPath(mUserCertificatePath);
- subscribeFriendList(false);
//mLc.setCallErrorTone(Reason.NotFound, mErrorToneFile);
enableDeviceRingtone(mPrefs.isDeviceRingtoneEnabled());
diff --git a/submodules/linphone b/submodules/linphone
index 9bea70ebe..fb21732c3 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit 9bea70ebe3069a9b7ccfc2b090ce8e8834a8cbee
+Subproject commit fb21732c38217f81887684e0cd42a9ebf44ba2c5