+ return loadIds("KnownPosts");
+ }
+
+ public synchronized Set<String> loadKnownPostReplies() {
+ return loadIds("KnownReplies");
+ }
+
+ public synchronized Set<String> loadBookmarkedPosts() {
+ return loadIds("Bookmarks/Post");
+ }
+
+ @Nullable
+ public synchronized Long getSoneFollowingTime(@Nonnull String soneId) {
+ return loadSoneFollowingTimes().get(soneId);
+ }
+
+ public synchronized void removeSoneFollowingTime(@Nonnull String soneId) {
+ Map<String, Long> soneFollowingTimes = loadSoneFollowingTimes();
+ soneFollowingTimes.remove(soneId);
+ storeSoneFollowingTimes(soneFollowingTimes);
+ }
+
+ public synchronized void setSoneFollowingTime(@Nonnull String soneId, long time) {
+ Map<String, Long> soneFollowingTimes = loadSoneFollowingTimes();
+ soneFollowingTimes.put(soneId, time);
+ storeSoneFollowingTimes(soneFollowingTimes);
+ }
+
+ private synchronized Map<String, Long> loadSoneFollowingTimes() {
+ Map<String, Long> soneFollowingTimes = new HashMap<>();
+ int soneCounter = 0;