]> nmode's Git Repositories - signal-cli/commitdiff
Add download profile avatar job
authorAsamK <asamk@gmx.de>
Sun, 12 Nov 2023 10:59:48 +0000 (11:59 +0100)
committerAsamK <asamk@gmx.de>
Sun, 12 Nov 2023 10:59:48 +0000 (11:59 +0100)
lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java
lib/src/main/java/org/asamk/signal/manager/jobs/DownloadProfileAvatarJob.java [new file with mode: 0644]

index f251856842597795c1badb7cb33eb657c0aae3b2..393953d949fba9ebc10b7ad05bd0c3c6555cefe2 100644 (file)
@@ -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 (file)
index 0000000..f46bac0
--- /dev/null
@@ -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());
+    }
+}