diff --git a/app/src/main/assets/linphonerc_factory b/app/src/main/assets/linphonerc_factory index c9a117f40..0caf76dd7 100644 --- a/app/src/main/assets/linphonerc_factory +++ b/app/src/main/assets/linphonerc_factory @@ -42,6 +42,7 @@ enable_simple_group_chat_message_state=0 aggregate_imdn=1 notify_each_friend_individually_when_presence_received=0 store_friends=0 +hide_empty_chat_rooms=0 [app] activation_code_length=4 diff --git a/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt b/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt index 82fd30b79..0a39cefe9 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/adapter/ConversationEventAdapter.kt @@ -35,6 +35,7 @@ import org.linphone.ui.main.chat.model.ChatMessageModel import org.linphone.ui.main.chat.model.EventLogModel import org.linphone.ui.main.chat.model.EventModel import org.linphone.utils.Event +import org.linphone.utils.startAnimatedDrawable class ConversationEventAdapter : ListAdapter( EventLogDiffCallback() @@ -160,6 +161,8 @@ class ConversationEventAdapter : ListAdapter( ChatRoomDiffCallback() @@ -72,6 +73,8 @@ class ConversationsListAdapter : ListAdapter start() + is AnimatedVectorDrawable -> start() + else -> { /* not an animated icon */ } + } + } +} + @UiThread @BindingAdapter("coil") fun ShapeableImageView.loadCircleFileWithCoil(file: String?) { @@ -328,13 +339,9 @@ fun ShapeableImageView.loadCallAvatarWithCoil(model: AbstractAvatarModel?) { @UiThread @BindingAdapter("coilInitials") fun ShapeableImageView.loadInitialsAvatarWithCoil(initials: String?) { - (context as AppCompatActivity).lifecycleScope.launch { - withContext(Dispatchers.IO) { - val builder = AvatarGenerator(context) - builder.setInitials(initials.orEmpty()) - load(builder.build()) - } - } + val builder = AvatarGenerator(context) + builder.setInitials(initials.orEmpty()) + load(builder.build()) } @SuppressLint("ResourceType") diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt index 427c24579..4285a6aac 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt @@ -20,6 +20,7 @@ package org.linphone.utils import androidx.annotation.AnyThread +import androidx.annotation.DrawableRes import androidx.annotation.IntegerRes import androidx.annotation.WorkerThread import java.text.DateFormat @@ -199,7 +200,7 @@ class LinphoneUtils { } @AnyThread - @IntegerRes + @DrawableRes fun getChatIconResId(chatState: ChatMessage.State): Int { return when (chatState) { ChatMessage.State.Displayed, ChatMessage.State.FileTransferDone -> { diff --git a/app/src/main/res/animator/rotation.xml b/app/src/main/res/animator/rotation.xml deleted file mode 100644 index f9e15377a..000000000 --- a/app/src/main/res/animator/rotation.xml +++ /dev/null @@ -1,7 +0,0 @@ - - \ No newline at end of file diff --git a/app/src/main/res/drawable/animated_in_progress.xml b/app/src/main/res/drawable/animated_in_progress.xml index fcdb160cd..af6884547 100644 --- a/app/src/main/res/drawable/animated_in_progress.xml +++ b/app/src/main/res/drawable/animated_in_progress.xml @@ -1,6 +1,34 @@ - - + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/chat_list_cell.xml b/app/src/main/res/layout/chat_list_cell.xml index ccc35c3a4..ef9e8825b 100644 --- a/app/src/main/res/layout/chat_list_cell.xml +++ b/app/src/main/res/layout/chat_list_cell.xml @@ -151,7 +151,7 @@ android:layout_width="@dimen/small_icon_size" android:layout_height="@dimen/small_icon_size" android:layout_marginEnd="10dp" - android:src="@{model.lastMessageIcon, default=@drawable/check}" + android:src="@{model.lastMessageIcon, default=@drawable/animated_in_progress}" android:visibility="@{model.isLastMessageOutgoing ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/date_time"