Added a setting to prevent native addressbook integration
This commit is contained in:
parent
b426bd567f
commit
05718aa749
11 changed files with 50 additions and 21 deletions
|
@ -25,6 +25,7 @@ import android.view.View
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.main.MainActivity
|
import org.linphone.activities.main.MainActivity
|
||||||
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
|
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
|
||||||
|
@ -148,9 +149,11 @@ class ChatRoomCreationFragment : SecureFragment<ChatRoomCreationFragmentBinding>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Chat Room Creation] Asking for READ_CONTACTS permission")
|
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
Log.i("[Chat Room Creation] Asking for READ_CONTACTS permission")
|
||||||
|
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -368,6 +368,12 @@ class MasterChatRoomsFragment : MasterFragment<ChatRoomMasterFragmentBinding, Ch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
|
||||||
|
listViewModel.groupChatAvailable.value = LinphoneUtils.isGroupChatAvailable()
|
||||||
|
}
|
||||||
|
|
||||||
override fun deleteItems(indexesOfItemToDelete: ArrayList<Int>) {
|
override fun deleteItems(indexesOfItemToDelete: ArrayList<Int>) {
|
||||||
val list = ArrayList<ChatRoom>()
|
val list = ArrayList<ChatRoom>()
|
||||||
var closeSlidingPane = false
|
var closeSlidingPane = false
|
||||||
|
|
|
@ -39,7 +39,7 @@ class ChatRoomsListViewModel : MessageNotifierViewModel() {
|
||||||
|
|
||||||
val forwardPending = MutableLiveData<Boolean>()
|
val forwardPending = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val groupChatAvailable: Boolean = LinphoneUtils.isGroupChatAvailable()
|
val groupChatAvailable = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val chatRoomIndexUpdatedEvent: MutableLiveData<Event<Int>> by lazy {
|
val chatRoomIndexUpdatedEvent: MutableLiveData<Event<Int>> by lazy {
|
||||||
MutableLiveData<Event<Int>>()
|
MutableLiveData<Event<Int>>()
|
||||||
|
@ -97,6 +97,7 @@ class ChatRoomsListViewModel : MessageNotifierViewModel() {
|
||||||
private var chatRoomsToDeleteCount = 0
|
private var chatRoomsToDeleteCount = 0
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
groupChatAvailable.value = LinphoneUtils.isGroupChatAvailable()
|
||||||
updateChatRooms()
|
updateChatRooms()
|
||||||
coreContext.core.addListener(listener)
|
coreContext.core.addListener(listener)
|
||||||
coreContext.contactsManager.addListener(contactsListener)
|
coreContext.contactsManager.addListener(contactsListener)
|
||||||
|
|
|
@ -25,6 +25,7 @@ import android.view.View
|
||||||
import androidx.navigation.navGraphViewModels
|
import androidx.navigation.navGraphViewModels
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.main.conference.viewmodels.ConferenceSchedulingViewModel
|
import org.linphone.activities.main.conference.viewmodels.ConferenceSchedulingViewModel
|
||||||
|
@ -92,9 +93,11 @@ class ConferenceSchedulingParticipantsListFragment : GenericFragment<ConferenceS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Conference Creation] Asking for READ_CONTACTS permission")
|
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
Log.i("[Conference Creation] Asking for READ_CONTACTS permission")
|
||||||
|
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -311,9 +311,11 @@ class MasterContactsFragment : MasterFragment<ContactMasterFragmentBinding, Cont
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Contacts] Asking for READ_CONTACTS permission")
|
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
Log.i("[Contacts] Asking for READ_CONTACTS permission")
|
||||||
|
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,8 @@ class ContactsListViewModel : ViewModel() {
|
||||||
|
|
||||||
val contactsList = MutableLiveData<ArrayList<ContactViewModel>>()
|
val contactsList = MutableLiveData<ArrayList<ContactViewModel>>()
|
||||||
|
|
||||||
|
val nativeAddressBookEnabled = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val fetchInProgress = MutableLiveData<Boolean>()
|
val fetchInProgress = MutableLiveData<Boolean>()
|
||||||
private var searchResultsPending: Boolean = false
|
private var searchResultsPending: Boolean = false
|
||||||
private var fastFetchJob: Job? = null
|
private var fastFetchJob: Job? = null
|
||||||
|
@ -72,6 +74,7 @@ class ContactsListViewModel : ViewModel() {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
sipContactsSelected.value = coreContext.contactsManager.shouldDisplaySipContactsList()
|
sipContactsSelected.value = coreContext.contactsManager.shouldDisplaySipContactsList()
|
||||||
|
nativeAddressBookEnabled.value = corePreferences.enableNativeAddressBookIntegration
|
||||||
|
|
||||||
coreContext.contactsManager.addListener(contactsUpdatedListener)
|
coreContext.contactsManager.addListener(contactsUpdatedListener)
|
||||||
coreContext.contactsManager.magicSearch.addListener(magicSearchListener)
|
coreContext.contactsManager.magicSearch.addListener(magicSearchListener)
|
||||||
|
|
|
@ -88,9 +88,11 @@ class ContactsSettingsFragment : GenericSettingFragment<SettingsContactsFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PermissionHelper.required(requireContext()).hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Contacts Settings] Asking for READ_CONTACTS permission")
|
if (!PermissionHelper.required(requireContext()).hasReadContactsPermission()) {
|
||||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
Log.i("[Contacts Settings] Asking for READ_CONTACTS permission")
|
||||||
|
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.navGraphViewModels
|
import androidx.navigation.navGraphViewModels
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import org.linphone.LinphoneApplication
|
import org.linphone.LinphoneApplication
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.voip.viewmodels.ConferenceParticipantsViewModel
|
import org.linphone.activities.voip.viewmodels.ConferenceParticipantsViewModel
|
||||||
|
@ -104,9 +105,11 @@ class ConferenceAddParticipantsFragment : GenericFragment<VoipConferenceParticip
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Conference Add Participants] Asking for READ_CONTACTS permission")
|
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
Log.i("[Conference Add Participants] Asking for READ_CONTACTS permission")
|
||||||
|
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -488,10 +488,12 @@ class CoreContext(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fetchContacts() {
|
fun fetchContacts() {
|
||||||
if (PermissionHelper.required(context).hasReadContactsPermission()) {
|
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||||
Log.i("[Context] Init contacts loader")
|
if (PermissionHelper.required(context).hasReadContactsPermission()) {
|
||||||
val manager = LoaderManager.getInstance(this@CoreContext)
|
Log.i("[Context] Init contacts loader")
|
||||||
manager.restartLoader(0, null, contactLoader)
|
val manager = LoaderManager.getInstance(this@CoreContext)
|
||||||
|
manager.restartLoader(0, null, contactLoader)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -434,6 +434,9 @@ class CorePreferences constructor(private val context: Context) {
|
||||||
val allowMultipleFilesAndTextInSameMessage: Boolean
|
val allowMultipleFilesAndTextInSameMessage: Boolean
|
||||||
get() = config.getBool("app", "allow_multiple_files_and_text_in_same_message", true)
|
get() = config.getBool("app", "allow_multiple_files_and_text_in_same_message", true)
|
||||||
|
|
||||||
|
val enableNativeAddressBookIntegration: Boolean
|
||||||
|
get() = config.getBool("app", "enable_native_address_book", true)
|
||||||
|
|
||||||
val fetchContactsFromDefaultDirectory: Boolean
|
val fetchContactsFromDefaultDirectory: Boolean
|
||||||
get() = config.getBool("app", "fetch_contacts_from_default_directory", true)
|
get() = config.getBool("app", "fetch_contacts_from_default_directory", true)
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,8 @@
|
||||||
android:layout_weight="0.2"
|
android:layout_weight="0.2"
|
||||||
android:background="?attr/button_background_drawable"
|
android:background="?attr/button_background_drawable"
|
||||||
android:padding="15dp"
|
android:padding="15dp"
|
||||||
android:src="@drawable/contact_add" />
|
android:src="@drawable/contact_add"
|
||||||
|
android:visibility="@{viewModel.nativeAddressBookEnabled ? View.VISIBLE : View.GONE}"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:onClick="@{editClickListener}"
|
android:onClick="@{editClickListener}"
|
||||||
|
|
Loading…
Reference in a new issue