groupHelper,
syncHelper,
profileHelper,
- storageHelper);
+ storageHelper,
+ preKeyHelper);
var jobExecutor = new JobExecutor(context);
this.incomingMessageHandler = new IncomingMessageHandler(account,
--- /dev/null
+package org.asamk.signal.manager.actions;
+
+import org.asamk.signal.manager.jobs.Context;
+
+public class RefreshPreKeysAction implements HandleAction {
+
+ private static final RefreshPreKeysAction INSTANCE = new RefreshPreKeysAction();
+
+ private RefreshPreKeysAction() {
+ }
+
+ public static RefreshPreKeysAction create() {
+ return INSTANCE;
+ }
+
+ @Override
+ public void execute(Context context) throws Throwable {
+ context.getPreKeyHelper().refreshPreKeysIfNecessary();
+ }
+}
import org.asamk.signal.manager.TrustLevel;
import org.asamk.signal.manager.UntrustedIdentityException;
import org.asamk.signal.manager.actions.HandleAction;
+import org.asamk.signal.manager.actions.RefreshPreKeysAction;
import org.asamk.signal.manager.actions.RenewSessionAction;
import org.asamk.signal.manager.actions.RetrieveProfileAction;
import org.asamk.signal.manager.actions.RetrieveStorageDataAction;
final boolean ignoreAttachments,
final Manager.ReceiveMessageHandler handler
) {
+ final List<HandleAction> actions = new ArrayList<>();
+ if (envelope.isPreKeySignalMessage()) {
+ actions.add(RefreshPreKeysAction.create());
+ }
+
SignalServiceContent content = null;
if (!envelope.isReceipt()) {
try {
return new Pair<>(List.of(), e);
}
}
- final var actions = checkAndHandleMessage(envelope, content, ignoreAttachments, handler, null);
+ actions.addAll(checkAndHandleMessage(envelope, content, ignoreAttachments, handler, null));
return new Pair<>(actions, null);
}
import org.asamk.signal.manager.SignalDependencies;
import org.asamk.signal.manager.StickerPackStore;
import org.asamk.signal.manager.helper.GroupHelper;
+import org.asamk.signal.manager.helper.PreKeyHelper;
import org.asamk.signal.manager.helper.ProfileHelper;
import org.asamk.signal.manager.helper.SendHelper;
import org.asamk.signal.manager.helper.StorageHelper;
private final SyncHelper syncHelper;
private final ProfileHelper profileHelper;
private final StorageHelper storageHelper;
+ private final PreKeyHelper preKeyHelper;
public Context(
final SignalAccount account,
final GroupHelper groupHelper,
final SyncHelper syncHelper,
final ProfileHelper profileHelper,
- final StorageHelper storageHelper
+ final StorageHelper storageHelper,
+ final PreKeyHelper preKeyHelper
) {
this.account = account;
this.dependencies = dependencies;
this.syncHelper = syncHelper;
this.profileHelper = profileHelper;
this.storageHelper = storageHelper;
+ this.preKeyHelper = preKeyHelper;
}
public SignalAccount getAccount() {
public StorageHelper getStorageHelper() {
return storageHelper;
}
+
+ public PreKeyHelper getPreKeyHelper() {
+ return preKeyHelper;
+ }
}