package org.jvalue.ods.notifications.sender;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.TypeLiteral;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import org.jvalue.ods.api.notifications.GcmClient;
import org.jvalue.ods.api.notifications.HttpClient;
import org.jvalue.ods.main.GcmApiKey;
public class SenderModule extends AbstractModule {
@Override
protected void configure() {
install(new FactoryModuleBuilder()
.implement(new TypeLiteral<Sender<GcmClient>>() { }, GcmSender.class)
.implement(new TypeLiteral<Sender<HttpClient>>() { }, HttpSender.class)
.build(SenderFactory.class));
bind(SenderCache.class).in(Singleton.class);
}
@Provides
public com.google.android.gcm.server.Sender provideGcmSender(@GcmApiKey String gcmApiKey) {
return new com.google.android.gcm.server.Sender(gcmApiKey);
}
}