From afb432dceea26c53683b5d1b14cbbe68693fd588 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Wed, 10 Oct 2018 13:00:07 +0200 Subject: [PATCH] Add store methods for message counters --- .../smackx/omemo/CachingOmemoStore.java | 25 +++++++++++++++++++ .../smackx/omemo/FileBasedOmemoStore.java | 24 ++++++++++++++++++ .../jivesoftware/smackx/omemo/OmemoStore.java | 21 ++++++++++++++++ .../smackx/omemo/OmemoStoreTest.java | 7 ++++++ 4 files changed, 77 insertions(+) diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java index ec4b23a46..7ab0bcde6 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java @@ -140,6 +140,30 @@ public class CachingOmemoStore lastDeviceIdPublicationDates = new HashMap<>(); private final HashMap deviceLists = new HashMap<>(); private Date lastRenewalDate = null; + private final HashMap messageCounters = new HashMap<>(); } } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java index 4ecefcda7..bab399c35 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java @@ -24,6 +24,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -353,6 +354,24 @@ public abstract class FileBasedOmemoStore integers = readIntegers(messageCounterFile); + + if (integers == null || integers.isEmpty()) { + return 0; + } + + return integers.iterator().next(); + } + @Override public OmemoCachedDeviceList loadCachedDeviceList(OmemoDevice userDevice, BareJid contact) { OmemoCachedDeviceList cachedDeviceList = new OmemoCachedDeviceList(); @@ -732,6 +751,7 @@ public abstract class FileBasedOmemoStore