package org.limewire.facebook.service.livemessage;
import java.util.HashMap;
import org.json.JSONObject;
import org.limewire.facebook.service.FacebookFriendConnection;
import org.limewire.friend.api.FriendException;
import org.limewire.friend.api.FriendPresence;
import org.limewire.friend.api.feature.FeatureTransport;
import org.limewire.friend.api.feature.LibraryChangedNotifier;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
public class LibraryRefreshHandler implements FeatureTransport<LibraryChangedNotifier>, LiveMessageHandler {
private static final String TYPE = "library-changed";
private final FacebookFriendConnection connection;
private final Handler<LibraryChangedNotifier> handler;
@Inject
public LibraryRefreshHandler(@Assisted FacebookFriendConnection connection,
Handler<LibraryChangedNotifier> handler) {
this.connection = connection;
this.handler = handler;
}
@Override
@Inject
public void register(LiveMessageHandlerRegistry registry) {
registry.register(TYPE, this);
}
@Override
public void handle(String messageType, JSONObject message) {
String from = message.optString("from", null);
if (from != null) {
handler.featureReceived(from, new LibraryChangedNotifier(){});
}
}
@Override
public void sendFeature(FriendPresence presence, LibraryChangedNotifier localFeature) throws FriendException {
connection.sendLiveMessage(presence, TYPE, new HashMap<String, Object>());
}
}