diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt index baa7e0c79a..607b022a2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt @@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.components.settings.app.chats import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.storage.StorageSyncHelper import org.thoughtcrime.securesms.util.ConversationUtil @@ -35,6 +37,7 @@ class ChatsSettingsViewModel(private val repository: ChatsSettingsRepository) : store.update { it.copy(useAddressBook = enabled) } SignalStore.settings().isPreferSystemContactPhotos = enabled refreshDebouncer.publish { ConversationUtil.refreshRecipientShortcuts() } + ApplicationDependencies.getJobManager().add(MultiDeviceContactUpdateJob(true)) StorageSyncHelper.scheduleSyncForDataChange() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index 600b2dc411..0d212e40ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -275,17 +275,23 @@ public class MultiDeviceContactUpdateJob extends BaseJob { } private Optional getAvatar(@NonNull RecipientId recipientId, @Nullable Uri uri) { - Optional avatarStream = Optional.absent(); + Optional stream; if (SignalStore.settings().isPreferSystemContactPhotos()) { - avatarStream = getSystemAvatar(uri); + stream = getSystemAvatar(uri); + + if (!stream.isPresent()) { + stream = getProfileAvatar(recipientId); + } + } else { + stream = getProfileAvatar(recipientId); + + if (!stream.isPresent()) { + stream = getSystemAvatar(uri); + } } - if (avatarStream.isPresent()) { - return avatarStream; - } else { - return getProfileAvatar(recipientId); - } + return stream; } private Optional getProfileAvatar(@NonNull RecipientId recipientId) {