From 70db61722970612f633f0cdcb60fff2d3d7f5056 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 12 May 2021 17:08:13 -0400 Subject: [PATCH] Fix some issues with avatar syncing. - We weren't falling back to system avatars when no profile was present - We weren't triggering a sync when the setting changed --- .../app/chats/ChatsSettingsViewModel.kt | 3 +++ .../jobs/MultiDeviceContactUpdateJob.java | 20 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) 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 baa7e0c79..607b022a2 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 600b2dc41..0d212e40b 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) {