diff --git a/app/src/main/java/org/linphone/contacts/AbstractAvatarModel.kt b/app/src/main/java/org/linphone/contacts/AbstractAvatarModel.kt index b9a2aed82..8e87708c7 100644 --- a/app/src/main/java/org/linphone/contacts/AbstractAvatarModel.kt +++ b/app/src/main/java/org/linphone/contacts/AbstractAvatarModel.kt @@ -12,5 +12,7 @@ abstract class AbstractAvatarModel { val images = MutableLiveData>() - val showConferenceIcon = MutableLiveData() + val forceConferenceIcon = MutableLiveData() + + val defaultToConferenceIcon = MutableLiveData() } diff --git a/app/src/main/java/org/linphone/ui/call/model/CallModel.kt b/app/src/main/java/org/linphone/ui/call/model/CallModel.kt index fa00fb86b..10fc8bd05 100644 --- a/app/src/main/java/org/linphone/ui/call/model/CallModel.kt +++ b/app/src/main/java/org/linphone/ui/call/model/CallModel.kt @@ -63,7 +63,7 @@ class CallModel @WorkerThread constructor(val call: Call) { val conferenceInfo = coreContext.core.findConferenceInformationFromUri(call.remoteAddress) if (conferenceInfo != null) { displayName.postValue(conferenceInfo.subject) - avatarModel.showConferenceIcon.postValue(true) + avatarModel.forceConferenceIcon.postValue(true) } else { displayName.postValue(friend?.name ?: LinphoneUtils.getDisplayName(call.remoteAddress)) } diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt index 0b78715c1..75bb18931 100644 --- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt @@ -798,7 +798,7 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() { fakeFriend.name = conferenceInfo?.subject ?: LinphoneUtils.getDisplayName(address) fakeFriend.addAddress(address) val model = ContactAvatarModel(fakeFriend) - model.showConferenceIcon.postValue(conferenceInfo != null) + model.forceConferenceIcon.postValue(conferenceInfo != null) model.trust.postValue(securityLevel) contact.postValue(model) displayedName.postValue(fakeFriend.name) diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt index 741431e05..c20b9f0b7 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt @@ -146,6 +146,7 @@ class ConversationModel @WorkerThread constructor(val chatRoom: ChatRoom) { if (isGroup) { val fakeFriend = coreContext.core.createFriend() val model = ContactAvatarModel(fakeFriend) + model.defaultToConferenceIcon.postValue(true) model.setPicturesFromFriends(friends) avatarModel.postValue(model) } else { diff --git a/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt b/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt index 69f0087a4..67439dd33 100644 --- a/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt +++ b/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt @@ -66,7 +66,7 @@ class CallLogModel @WorkerThread constructor(private val callLog: CallLog) { } avatarModel = ContactAvatarModel(fakeFriend) - avatarModel.showConferenceIcon.postValue(true) + avatarModel.forceConferenceIcon.postValue(true) friendRefKey = null friendExists = false } else { diff --git a/app/src/main/java/org/linphone/ui/main/history/viewmodel/ContactHistoryViewModel.kt b/app/src/main/java/org/linphone/ui/main/history/viewmodel/ContactHistoryViewModel.kt index 6be572025..704f3803f 100644 --- a/app/src/main/java/org/linphone/ui/main/history/viewmodel/ContactHistoryViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/history/viewmodel/ContactHistoryViewModel.kt @@ -98,7 +98,7 @@ class ContactHistoryViewModel @UiThread constructor() : ViewModel() { val conferenceInfo = coreContext.core.findConferenceInformationFromUri(address) if (conferenceInfo != null) { model.avatarModel.name.postValue(conferenceInfo.subject) - model.avatarModel.showConferenceIcon.postValue(true) + model.avatarModel.forceConferenceIcon.postValue(true) } callLogModel.postValue(model) diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index 1aa348258..8fa2b1e01 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -361,7 +361,7 @@ private suspend fun loadContactPictureWithCoil( val context = imageView.context if (model != null) { - if (model.showConferenceIcon.value == true) { + if (model.forceConferenceIcon.value == true) { imageView.load( ResourcesCompat.getDrawable( context.resources, @@ -406,11 +406,19 @@ private suspend fun loadContactPictureWithCoil( withContext(Dispatchers.IO) { val initials = model.initials.value.orEmpty() if (initials.isEmpty() || initials == "+") { - ResourcesCompat.getDrawable( - context.resources, - R.drawable.user_circle, - context.theme - ) + if (model.defaultToConferenceIcon.value == true) { + ResourcesCompat.getDrawable( + context.resources, + R.drawable.inset_users_three, + context.theme + ) + } else { + ResourcesCompat.getDrawable( + context.resources, + R.drawable.inset_user_circle, + context.theme + ) + } } else { val builder = AvatarGenerator(context) builder.setInitials(model.initials.value.orEmpty()) diff --git a/app/src/main/res/layout/chat_conversation_send_area.xml b/app/src/main/res/layout/chat_conversation_send_area.xml index 7940ef212..200383d63 100644 --- a/app/src/main/res/layout/chat_conversation_send_area.xml +++ b/app/src/main/res/layout/chat_conversation_send_area.xml @@ -89,7 +89,7 @@ android:textColorHint="@color/gray_main2_400" android:maxLines="3" android:hint="@string/conversation_text_field_hint" - android:inputType="text" + android:inputType="text|textCapSentences|textAutoCorrect" app:layout_constraintTop_toBottomOf="@id/emoji_picker" app:layout_constraintStart_toStartOf="@id/message_area_background" app:layout_constraintEnd_toStartOf="@id/send_barrier" diff --git a/build.gradle b/build.gradle index 21f8430a2..f0fc0ed4d 100644 --- a/build.gradle +++ b/build.gradle @@ -9,8 +9,8 @@ buildscript { } // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '8.1.2' apply false - id 'com.android.library' version '8.1.2' apply false + id 'com.android.application' version '8.1.3' apply false + id 'com.android.library' version '8.1.3' apply false id 'org.jetbrains.kotlin.android' version '1.9.0-RC' apply false id 'com.google.gms.google-services' version '4.3.15' apply false } \ No newline at end of file