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.recyclerview.widget.LinearLayoutManager
|
||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||
import org.linphone.R
|
||||
import org.linphone.activities.main.MainActivity
|
||||
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
|
||||
|
@ -148,9 +149,11 @@ class ChatRoomCreationFragment : SecureFragment<ChatRoomCreationFragmentBinding>
|
|||
}
|
||||
}
|
||||
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
Log.i("[Chat Room Creation] Asking for READ_CONTACTS permission")
|
||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
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>) {
|
||||
val list = ArrayList<ChatRoom>()
|
||||
var closeSlidingPane = false
|
||||
|
|
|
@ -39,7 +39,7 @@ class ChatRoomsListViewModel : MessageNotifierViewModel() {
|
|||
|
||||
val forwardPending = MutableLiveData<Boolean>()
|
||||
|
||||
val groupChatAvailable: Boolean = LinphoneUtils.isGroupChatAvailable()
|
||||
val groupChatAvailable = MutableLiveData<Boolean>()
|
||||
|
||||
val chatRoomIndexUpdatedEvent: MutableLiveData<Event<Int>> by lazy {
|
||||
MutableLiveData<Event<Int>>()
|
||||
|
@ -97,6 +97,7 @@ class ChatRoomsListViewModel : MessageNotifierViewModel() {
|
|||
private var chatRoomsToDeleteCount = 0
|
||||
|
||||
init {
|
||||
groupChatAvailable.value = LinphoneUtils.isGroupChatAvailable()
|
||||
updateChatRooms()
|
||||
coreContext.core.addListener(listener)
|
||||
coreContext.contactsManager.addListener(contactsListener)
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.view.View
|
|||
import androidx.navigation.navGraphViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||
import org.linphone.R
|
||||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.conference.viewmodels.ConferenceSchedulingViewModel
|
||||
|
@ -92,9 +93,11 @@ class ConferenceSchedulingParticipantsListFragment : GenericFragment<ConferenceS
|
|||
}
|
||||
}
|
||||
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
Log.i("[Conference Creation] Asking for READ_CONTACTS permission")
|
||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
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()) {
|
||||
Log.i("[Contacts] Asking for READ_CONTACTS permission")
|
||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
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 nativeAddressBookEnabled = MutableLiveData<Boolean>()
|
||||
|
||||
val fetchInProgress = MutableLiveData<Boolean>()
|
||||
private var searchResultsPending: Boolean = false
|
||||
private var fastFetchJob: Job? = null
|
||||
|
@ -72,6 +74,7 @@ class ContactsListViewModel : ViewModel() {
|
|||
|
||||
init {
|
||||
sipContactsSelected.value = coreContext.contactsManager.shouldDisplaySipContactsList()
|
||||
nativeAddressBookEnabled.value = corePreferences.enableNativeAddressBookIntegration
|
||||
|
||||
coreContext.contactsManager.addListener(contactsUpdatedListener)
|
||||
coreContext.contactsManager.magicSearch.addListener(magicSearchListener)
|
||||
|
|
|
@ -88,9 +88,11 @@ class ContactsSettingsFragment : GenericSettingFragment<SettingsContactsFragment
|
|||
}
|
||||
}
|
||||
|
||||
if (!PermissionHelper.required(requireContext()).hasReadContactsPermission()) {
|
||||
Log.i("[Contacts Settings] Asking for READ_CONTACTS permission")
|
||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (!PermissionHelper.required(requireContext()).hasReadContactsPermission()) {
|
||||
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.recyclerview.widget.LinearLayoutManager
|
||||
import org.linphone.LinphoneApplication
|
||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||
import org.linphone.R
|
||||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.voip.viewmodels.ConferenceParticipantsViewModel
|
||||
|
@ -104,9 +105,11 @@ class ConferenceAddParticipantsFragment : GenericFragment<VoipConferenceParticip
|
|||
}
|
||||
}
|
||||
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
Log.i("[Conference Add Participants] Asking for READ_CONTACTS permission")
|
||||
requestPermissions(arrayOf(android.Manifest.permission.READ_CONTACTS), 0)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (!PermissionHelper.get().hasReadContactsPermission()) {
|
||||
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() {
|
||||
if (PermissionHelper.required(context).hasReadContactsPermission()) {
|
||||
Log.i("[Context] Init contacts loader")
|
||||
val manager = LoaderManager.getInstance(this@CoreContext)
|
||||
manager.restartLoader(0, null, contactLoader)
|
||||
if (corePreferences.enableNativeAddressBookIntegration) {
|
||||
if (PermissionHelper.required(context).hasReadContactsPermission()) {
|
||||
Log.i("[Context] Init contacts loader")
|
||||
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
|
||||
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
|
||||
get() = config.getBool("app", "fetch_contacts_from_default_directory", true)
|
||||
|
||||
|
|
|
@ -102,7 +102,8 @@
|
|||
android:layout_weight="0.2"
|
||||
android:background="?attr/button_background_drawable"
|
||||
android:padding="15dp"
|
||||
android:src="@drawable/contact_add" />
|
||||
android:src="@drawable/contact_add"
|
||||
android:visibility="@{viewModel.nativeAddressBookEnabled ? View.VISIBLE : View.GONE}"/>
|
||||
|
||||
<ImageView
|
||||
android:onClick="@{editClickListener}"
|
||||
|
|
Loading…
Reference in a new issue