From: AsamK Date: Sun, 28 Jan 2024 21:37:53 +0000 (+0100) Subject: Add CDSI recipients refresh job X-Git-Tag: v0.13.0~39 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/0840e0dedb2fd272da590bd0d3168d54f3733739?ds=inline Add CDSI recipients refresh job --- diff --git a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java index 75dcb138..9814d95c 100644 --- a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java @@ -66,6 +66,7 @@ import org.asamk.signal.manager.config.ServiceEnvironmentConfig; import org.asamk.signal.manager.helper.AccountFileUpdater; import org.asamk.signal.manager.helper.Context; import org.asamk.signal.manager.helper.RecipientHelper.RegisteredUser; +import org.asamk.signal.manager.jobs.RefreshRecipientsJob; import org.asamk.signal.manager.jobs.SyncStorageJob; import org.asamk.signal.manager.storage.AttachmentStore; import org.asamk.signal.manager.storage.AvatarStore; @@ -226,14 +227,7 @@ public class ManagerImpl implements Manager { final var lastRecipientsRefresh = account.getLastRecipientsRefresh(); if (lastRecipientsRefresh == null || lastRecipientsRefresh < System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)) { - try { - context.getRecipientHelper().refreshUsers(); - } catch (Exception e) { - logger.warn("Full CDSI recipients refresh failed, ignoring: {} ({})", - e.getMessage(), - e.getClass().getSimpleName()); - logger.debug("Full CDSI refresh failed", e); - } + context.getJobExecutor().enqueueJob(new RefreshRecipientsJob()); context.getAccountHelper().checkWhoAmiI(); } } diff --git a/lib/src/main/java/org/asamk/signal/manager/jobs/RefreshRecipientsJob.java b/lib/src/main/java/org/asamk/signal/manager/jobs/RefreshRecipientsJob.java new file mode 100644 index 00000000..472bbac1 --- /dev/null +++ b/lib/src/main/java/org/asamk/signal/manager/jobs/RefreshRecipientsJob.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 RefreshRecipientsJob implements Job { + + private static final Logger logger = LoggerFactory.getLogger(RefreshRecipientsJob.class); + + @Override + public void run(Context context) { + logger.trace("Full CDSI recipients refresh"); + try { + context.getRecipientHelper().refreshUsers(); + } catch (Exception e) { + logger.warn("Full CDSI recipients refresh failed, ignoring: {} ({})", + e.getMessage(), + e.getClass().getSimpleName()); + logger.debug("Full CDSI refresh failed", e); + } + } +} diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/ContactRecordProcessor.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/ContactRecordProcessor.java index b79cb957..7598b5ea 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/ContactRecordProcessor.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/ContactRecordProcessor.java @@ -4,6 +4,7 @@ import org.asamk.signal.manager.api.Contact; import org.asamk.signal.manager.api.Profile; import org.asamk.signal.manager.internal.JobExecutor; import org.asamk.signal.manager.jobs.DownloadProfileJob; +import org.asamk.signal.manager.jobs.RefreshRecipientsJob; import org.asamk.signal.manager.storage.SignalAccount; import org.asamk.signal.manager.storage.recipients.RecipientAddress; import org.asamk.signal.manager.util.KeyUtils; @@ -152,7 +153,7 @@ public class ContactRecordProcessor extends DefaultStorageRecordProcessor