1 package org
.asamk
.signal
.manager
.storage
.stickers
;
3 import org
.asamk
.signal
.manager
.api
.StickerPackId
;
5 import java
.util
.Base64
;
6 import java
.util
.HashSet
;
8 import java
.util
.Objects
;
10 public class LegacyStickerStore
{
12 public static void migrate(Storage storage
, StickerStore stickerStore
) {
13 final var packIds
= new HashSet
<StickerPackId
>();
14 final var stickers
= storage
.stickers
.stream().map(s
-> {
15 var packId
= StickerPackId
.deserialize(Base64
.getDecoder().decode(s
.packId
));
16 if (packIds
.contains(packId
)) {
17 // Remove legacy duplicate packIds ...
21 var packKey
= Base64
.getDecoder().decode(s
.packKey
);
22 var installed
= s
.installed
;
23 return new StickerPack(-1, packId
, packKey
, installed
);
24 }).filter(Objects
::nonNull
).toList();
26 stickerStore
.addLegacyStickers(stickers
);
29 public record Storage(List
<Sticker
> stickers
) {
31 private record Sticker(String packId
, String packKey
, boolean installed
) {