diff --git a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt index 04727b85c..a90f4271e 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt @@ -42,6 +42,10 @@ class ContactsListViewModel : ViewModel() { val readOnlyNativeAddressBook = MutableLiveData() + val hideSipContactsList = MutableLiveData() + + val onlyShowSipContactsList = MutableLiveData() + val fetchInProgress = MutableLiveData() private var searchResultsPending: Boolean = false private var fastFetchJob: Job? = null @@ -79,6 +83,15 @@ class ContactsListViewModel : ViewModel() { nativeAddressBookEnabled.value = corePreferences.enableNativeAddressBookIntegration readOnlyNativeAddressBook.value = corePreferences.readOnlyNativeContacts + onlyShowSipContactsList.value = corePreferences.onlyShowSipContactsList + hideSipContactsList.value = corePreferences.hideSipContactsList + if (onlyShowSipContactsList.value == true) { + sipContactsSelected.value = true + } + if (hideSipContactsList.value == true) { + sipContactsSelected.value = false + } + coreContext.contactsManager.addListener(contactsUpdatedListener) coreContext.contactsManager.magicSearch.addListener(magicSearchListener) } diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index cba0b5c10..8fb81a8bf 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -475,6 +475,14 @@ class CorePreferences constructor(private val context: Context) { val readOnlyNativeContacts: Boolean get() = config.getBool("app", "read_only_native_address_book", false) + // Will hide the contacts selector to allow listing all contacts, even those without a SIP address + val onlyShowSipContactsList: Boolean + get() = config.getBool("app", "only_show_sip_contacts_list", false) + + // Will hide the SIP contacts selector, leaving only the all contacts list + val hideSipContactsList: Boolean + get() = config.getBool("app", "hide_sip_contacts_list", false) + // Will disable chat feature completely val disableChat: Boolean get() = config.getBool("app", "disable_chat_feature", false) diff --git a/app/src/main/res/layout/contact_master_fragment.xml b/app/src/main/res/layout/contact_master_fragment.xml index 9e967365b..be11c802c 100644 --- a/app/src/main/res/layout/contact_master_fragment.xml +++ b/app/src/main/res/layout/contact_master_fragment.xml @@ -43,7 +43,8 @@ + android:layout_weight="0.2" + android:visibility="@{viewModel.onlyShowSipContactsList ? View.GONE : View.VISIBLE}"> + android:layout_weight="0.2" + android:visibility="@{viewModel.hideSipContactsList ? View.GONE : View.VISIBLE}"> + +