From: AsamK Date: Sun, 12 Nov 2023 10:59:48 +0000 (+0100) Subject: Add download profile avatar job X-Git-Tag: v0.13.0~88 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/d844e0f3961ce34c080424f2625d33fb34d80966?ds=sidebyside Add download profile avatar job --- diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java index f2518568..393953d9 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java @@ -6,6 +6,7 @@ import org.asamk.signal.manager.api.PhoneNumberSharingMode; import org.asamk.signal.manager.api.Profile; import org.asamk.signal.manager.api.TrustLevel; import org.asamk.signal.manager.internal.SignalDependencies; +import org.asamk.signal.manager.jobs.DownloadProfileAvatarJob; import org.asamk.signal.manager.storage.SignalAccount; import org.asamk.signal.manager.storage.recipients.RecipientAddress; import org.signal.libsignal.protocol.IdentityKey; @@ -276,7 +277,7 @@ public class StorageHelper { if (profileKey != null) { account.setProfileKey(profileKey); final var avatarPath = accountRecord.getAvatarUrlPath().orElse(null); - context.getProfileHelper().downloadProfileAvatar(account.getSelfRecipientId(), avatarPath, profileKey); + context.getJobExecutor().enqueueJob(new DownloadProfileAvatarJob(avatarPath)); } } diff --git a/lib/src/main/java/org/asamk/signal/manager/jobs/DownloadProfileAvatarJob.java b/lib/src/main/java/org/asamk/signal/manager/jobs/DownloadProfileAvatarJob.java new file mode 100644 index 00000000..f46bac0c --- /dev/null +++ b/lib/src/main/java/org/asamk/signal/manager/jobs/DownloadProfileAvatarJob.java @@ -0,0 +1,23 @@ +package org.asamk.signal.manager.jobs; + +import org.asamk.signal.manager.helper.Context; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DownloadProfileAvatarJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(DownloadProfileAvatarJob.class); + private final String avatarPath; + + public DownloadProfileAvatarJob(final String avatarPath) { + this.avatarPath = avatarPath; + } + + @Override + public void run(Context context) { + logger.trace("Downloading profile avatar {}", avatarPath); + final var account = context.getAccount(); + context.getProfileHelper() + .downloadProfileAvatar(account.getSelfRecipientId(), avatarPath, account.getProfileKey()); + } +}