From 2bd684a7eaaad07bd3d2b2fb8c0e9066ba3709b5 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 11 Oct 2018 11:29:25 +0200 Subject: [PATCH] Try to prevent crash if contacts changes happens while no activity is available --- .../org/linphone/contacts/ContactsManager.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/android/org/linphone/contacts/ContactsManager.java b/src/android/org/linphone/contacts/ContactsManager.java index 41ecb0102..59f7a7b78 100644 --- a/src/android/org/linphone/contacts/ContactsManager.java +++ b/src/android/org/linphone/contacts/ContactsManager.java @@ -49,6 +49,7 @@ import org.linphone.LinphonePreferences; import org.linphone.LinphoneService; import org.linphone.LinphoneUtils; import org.linphone.R; +import org.linphone.activities.LinphoneActivity; import org.linphone.core.Address; import org.linphone.core.Core; import org.linphone.core.Friend; @@ -212,7 +213,10 @@ public class ContactsManager extends ContentObserver implements FriendListListen } else if (mActivity != activity) { mActivity = activity; } - if (mContacts.size() == 0 && hasContactsAccess()) { + if (mActivity == null && LinphoneActivity.isInstanciated()) { + mActivity = LinphoneActivity.instance(); + } + if (mActivity != null && mContacts.size() == 0 && hasContactsAccess()) { mActivity.getLoaderManager().initLoader(CONTACTS_LOADER, null, this); } } @@ -365,6 +369,13 @@ public class ContactsManager extends ContentObserver implements FriendListListen } public void fetchContactsSync() { + if (mActivity == null && LinphoneActivity.isInstanciated()) { + mActivity = LinphoneActivity.instance(); + } + if (mActivity == null) { + Log.w("Can't fetch contacts right now, activity is null..."); + return; + } mActivity.getLoaderManager().initLoader(CONTACTS_LOADER, null, this); }