]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/jobs/RetrieveStickerPackJob.java
Implement editing of previous messages
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / jobs / RetrieveStickerPackJob.java
1 package org.asamk.signal.manager.jobs;
2
3 import org.asamk.signal.manager.api.StickerPackId;
4 import org.asamk.signal.manager.helper.Context;
5 import org.signal.libsignal.protocol.InvalidMessageException;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8 import org.whispersystems.signalservice.internal.util.Hex;
9
10 import java.io.IOException;
11
12 public class RetrieveStickerPackJob implements Job {
13
14 private final static Logger logger = LoggerFactory.getLogger(RetrieveStickerPackJob.class);
15
16 private final StickerPackId packId;
17 private final byte[] packKey;
18
19 public RetrieveStickerPackJob(final StickerPackId packId, final byte[] packKey) {
20 this.packId = packId;
21 this.packKey = packKey;
22 }
23
24 @Override
25 public void run(Context context) {
26 if (context.getStickerPackStore().existsStickerPack(packId)) {
27 logger.debug("Sticker pack {} already downloaded.", Hex.toStringCondensed(packId.serialize()));
28 return;
29 }
30 try {
31 context.getStickerHelper().retrieveStickerPack(packId, packKey);
32 } catch (IOException e) {
33 logger.warn("Failed to retrieve sticker pack {}: {}",
34 Hex.toStringCondensed(packId.serialize()),
35 e.getMessage());
36 } catch (InvalidMessageException e) {
37 logger.warn("Failed to retrieve sticker pack {}, invalid pack data: {}",
38 Hex.toStringCondensed(packId.serialize()),
39 e.getMessage());
40 }
41 }
42 }