From a81f7bb711e5bf6ff66bc4a1be3fc3091cdc8dd2 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 31 Mar 2022 16:26:55 +0200 Subject: [PATCH] New way of using single/multiple contact(s) avatar don't work well with notifications & shortcuts, fixing it --- .../compatibility/XiaomiCompatibility.kt | 2 +- .../main/java/org/linphone/contact/Contact.kt | 2 +- .../org/linphone/contact/NativeContact.kt | 2 +- .../notifications/NotificationsManager.kt | 4 ++-- .../org/linphone/utils/DataBindingUtils.kt | 18 ++---------------- .../org/linphone/utils/ShortcutsHelper.kt | 6 +++--- .../voip_multiple_contacts_avatar_alt.png | Bin 0 -> 6666 bytes .../voip_single_contact_avatar_alt.png | Bin 0 -> 4848 bytes .../call_incoming_notification_heads_up.xml | 2 +- .../main/res/layout/contact_avatar_big.xml | 2 +- .../main/res/layout/side_menu_fragment.xml | 16 ++++++++++------ app/src/main/res/layout/voip_calls_cell.xml | 7 ++++--- 12 files changed, 26 insertions(+), 35 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/voip_multiple_contacts_avatar_alt.png create mode 100644 app/src/main/res/drawable-xhdpi/voip_single_contact_avatar_alt.png diff --git a/app/src/main/java/org/linphone/compatibility/XiaomiCompatibility.kt b/app/src/main/java/org/linphone/compatibility/XiaomiCompatibility.kt index 0f5dbadbe..c001f1572 100644 --- a/app/src/main/java/org/linphone/compatibility/XiaomiCompatibility.kt +++ b/app/src/main/java/org/linphone/compatibility/XiaomiCompatibility.kt @@ -54,7 +54,7 @@ class XiaomiCompatibility { val builder = NotificationCompat.Builder(context, context.getString(R.string.notification_channel_incoming_call_id)) .addPerson(notificationsManager.getPerson(contact, displayName, roundPicture)) .setSmallIcon(R.drawable.topbar_call_notification) - .setLargeIcon(roundPicture ?: BitmapFactory.decodeResource(context.resources, R.drawable.voip_single_contact_avatar)) + .setLargeIcon(roundPicture ?: BitmapFactory.decodeResource(context.resources, R.drawable.voip_single_contact_avatar_alt)) .setContentTitle(displayName) .setContentText(address) .setSubText(context.getString(R.string.incoming_call_notification_title)) diff --git a/app/src/main/java/org/linphone/contact/Contact.kt b/app/src/main/java/org/linphone/contact/Contact.kt index 9a0716dfa..9b5557a27 100644 --- a/app/src/main/java/org/linphone/contact/Contact.kt +++ b/app/src/main/java/org/linphone/contact/Contact.kt @@ -181,7 +181,7 @@ open class Contact() : Comparable { val icon = if (bm == null) IconCompat.createWithResource( coreContext.context, - R.drawable.voip_single_contact_avatar + R.drawable.voip_single_contact_avatar_alt ) else IconCompat.createWithAdaptiveBitmap(bm) if (icon != null) { personBuilder.setIcon(icon) diff --git a/app/src/main/java/org/linphone/contact/NativeContact.kt b/app/src/main/java/org/linphone/contact/NativeContact.kt index 6a4a4c920..8cdcf57a2 100644 --- a/app/src/main/java/org/linphone/contact/NativeContact.kt +++ b/app/src/main/java/org/linphone/contact/NativeContact.kt @@ -72,7 +72,7 @@ class NativeContact(val nativeId: String, private val lookupKey: String? = null) val icon = if (bm == null) IconCompat.createWithResource( coreContext.context, - R.drawable.voip_single_contact_avatar + R.drawable.voip_single_contact_avatar_alt ) else IconCompat.createWithAdaptiveBitmap(bm) if (icon != null) { personBuilder.setIcon(icon) diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index d8540defb..207dfaeb5 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -430,7 +430,7 @@ class NotificationsManager(private val context: Context) { if (picture != null) { IconCompat.createWithAdaptiveBitmap(picture) } else { - IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar) + IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar_alt) } if (userIcon != null) builder.setIcon(userIcon) builder.build() @@ -791,7 +791,7 @@ class NotificationsManager(private val context: Context) { } style.isGroupConversation = notifiable.isGroup - val icon = lastPerson?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar) + val icon = lastPerson?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar_alt) val bubble = NotificationCompat.BubbleMetadata.Builder(bubbleIntent, icon) .setDesiredHeightResId(R.dimen.chat_message_bubble_desired_height) .build() diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index e640941c4..555d7a7dd 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -310,23 +310,9 @@ fun setImageViewScaleType(imageView: ImageView, scaleType: ImageView.ScaleType) imageView.scaleType = scaleType } -@BindingAdapter("glideAvatarFallback") -fun loadAvatarWithGlideFallback(imageView: ImageView, path: String?) { - if (path != null && path.isNotEmpty() && FileUtils.isExtensionImage(path)) { - GlideApp.with(imageView) - .load(path) - .signature(ObjectKey(coreContext.contactsManager.latestContactFetch)) - .apply(RequestOptions.circleCropTransform()) - .into(imageView) - } else { - Log.w("[Data Binding] [Glide] Can't load $path") - imageView.setImageResource(R.drawable.voip_single_contact_avatar) - } -} - @BindingAdapter("glidePath") -fun loadImageWithGlide(imageView: ImageView, path: String) { - if (path.isNotEmpty() && FileUtils.isExtensionImage(path)) { +fun loadImageWithGlide(imageView: ImageView, path: String?) { + if (path != null && path.isNotEmpty() && FileUtils.isExtensionImage(path)) { if (corePreferences.vfsEnabled && path.endsWith(FileUtils.VFS_PLAIN_FILE_EXTENSION)) { GlideApp.with(imageView) .load(path) diff --git a/app/src/main/java/org/linphone/utils/ShortcutsHelper.kt b/app/src/main/java/org/linphone/utils/ShortcutsHelper.kt index 8a30bb0f6..8e6a4a7d9 100644 --- a/app/src/main/java/org/linphone/utils/ShortcutsHelper.kt +++ b/app/src/main/java/org/linphone/utils/ShortcutsHelper.kt @@ -169,7 +169,7 @@ class ShortcutsHelper(val context: Context) { personsList.add(contact.getPerson()) } subject = contact?.fullName ?: LinphoneUtils.getDisplayName(chatRoom.peerAddress) - icon = contact?.getPerson()?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar) + icon = contact?.getPerson()?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar_alt) } else if (chatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt()) && chatRoom.participants.isNotEmpty()) { val address = chatRoom.participants.first().address val contact = @@ -178,7 +178,7 @@ class ShortcutsHelper(val context: Context) { personsList.add(contact.getPerson()) } subject = contact?.fullName ?: LinphoneUtils.getDisplayName(address) - icon = contact?.getPerson()?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar) + icon = contact?.getPerson()?.icon ?: IconCompat.createWithResource(context, R.drawable.voip_single_contact_avatar_alt) } else { for (participant in chatRoom.participants) { val contact = @@ -188,7 +188,7 @@ class ShortcutsHelper(val context: Context) { } } subject = chatRoom.subject.orEmpty() - icon = IconCompat.createWithResource(context, R.drawable.voip_multiple_contacts_avatar) + icon = IconCompat.createWithResource(context, R.drawable.voip_multiple_contacts_avatar_alt) } val persons = arrayOfNulls(personsList.size) diff --git a/app/src/main/res/drawable-xhdpi/voip_multiple_contacts_avatar_alt.png b/app/src/main/res/drawable-xhdpi/voip_multiple_contacts_avatar_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..983c1448db8e69a404130272a15daf0af15baa53 GIT binary patch literal 6666 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/voip_single_contact_avatar_alt.png b/app/src/main/res/drawable-xhdpi/voip_single_contact_avatar_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..58a69d43bdfa356fadefe2e5e80f1e264bea354c GIT binary patch literal 4848 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 W*}(UM+63+Z0000 + android:src="@drawable/voip_single_contact_avatar_alt"/> + glidePath="@{viewModel.defaultAccountAvatar}" /> + android:src="@drawable/avatar_border" + android:visibility="@{viewModel.defaultAccountFound ? View.VISIBLE : View.GONE}" /> + android:layout_centerVertical="true" + android:background="@drawable/generated_avatar_bg" + android:src="@drawable/icon_multiple_contacts_avatar" />