}
private LocalSone loadLocalSone(OwnIdentity ownIdentity) {
- LocalSone localSone = (LocalSone) newSoneBuilder().local().from(ownIdentity).build();
+ LocalSone localSone = newSoneBuilder().from(ownIdentity).using(
+ new Client("Sone", SonePlugin.VERSION.toString())).buildLocal();
localSone.setLatestEdition(
Optional.fromNullable(
Longs.tryParse(ownIdentity.getProperty(LATEST_EDITION_PROPERTY)))
.or(0L));
- localSone.setClient(new Client("Sone", SonePlugin.VERSION.toString()));
localSone.setKnown(true);
loadSone(localSone);
return localSone;
}
- public void loadSone(LocalSone sone) {
+ private void loadSone(LocalSone sone) {
long soneTime = configurationLoader.getLocalSoneTime(sone.getId());
if (soneTime == -1) {
return;
/* if we’re still here, Sone was loaded successfully. */
lock.writeLock().lock();
try {
- sone.setTime(soneTime);
+ updateSoneTime(sone, soneTime);
sone.setProfile(profile);
sone.setLikePostIds(likedPostIds);
sone.setLikeReplyIds(likedReplyIds);
@Override
protected void doStart() {
soneDatabase.start();
+ memoryFriendDatabase.start();
postDatabase.start();
memoryBookmarkDatabase.start();
loadKnownPostReplies();
protected void doStop() {
try {
soneDatabase.stop();
+ memoryFriendDatabase.stop();
postDatabase.stop();
memoryBookmarkDatabase.stop();
save();
soneDatabase.setSoneKnown(sone.getId());
}
+ @Override
+ public void updateSoneTime(Sone sone, long soneTime) {
+ soneDatabase.updateSoneTime(sone.getId(), soneTime);
+ }
+
private void storePosts(String soneId, Collection<Post> posts) {
postDatabase.storePosts(soneId, posts);
}
}
@Override
+ public Optional<Long> getSoneFollowingTime(String remoteSoneId) {
+ return memoryFriendDatabase.getSoneFollowingTime(remoteSoneId);
+ }
+
+ @Override
public boolean isFriend(LocalSone localSone, String friendSoneId) {
if (!localSone.isLocal()) {
return false;