mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-16 08:34:53 +02:00
56 lines
2.6 KiB
Java
56 lines
2.6 KiB
Java
package org.mercury_im.messenger.data.di;
|
|
|
|
import org.mercury_im.messenger.data.repository.AccountRepository;
|
|
import org.mercury_im.messenger.data.repository.ContactRepository;
|
|
import org.mercury_im.messenger.data.repository.DirectChatRepository;
|
|
import org.mercury_im.messenger.data.repository.EntityCapsRepository;
|
|
import org.mercury_im.messenger.data.repository.XmppAccountRepository;
|
|
import org.mercury_im.messenger.data.repository.XmppDirectChatRepository;
|
|
import org.mercury_im.messenger.data.repository.XmppContactRepository;
|
|
import org.mercury_im.messenger.util.ThreadUtils;
|
|
|
|
import javax.inject.Named;
|
|
import javax.inject.Singleton;
|
|
|
|
import dagger.Module;
|
|
import dagger.Provides;
|
|
import io.reactivex.Scheduler;
|
|
import io.requery.Persistable;
|
|
import io.requery.reactivex.ReactiveEntityStore;
|
|
|
|
@Module
|
|
public class RepositoryModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
public static AccountRepository provideAccountRepository(ReactiveEntityStore<Persistable> data,
|
|
@Named(value = ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
|
|
@Named(value = ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
|
|
return new XmppAccountRepository(data, ioScheduler, uiScheduler);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
public static DirectChatRepository provideChatRepository(ReactiveEntityStore<Persistable> data,
|
|
@Named(value = ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
|
|
@Named(value = ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
|
|
return new XmppDirectChatRepository(data, ioScheduler, uiScheduler);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
public static EntityCapsRepository provideCapsRepository(ReactiveEntityStore<Persistable> data,
|
|
@Named(value = ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
|
|
@Named(value = ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
|
|
return new EntityCapsRepository(data, ioScheduler, uiScheduler);
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
public static ContactRepository provideRosterRepository(ReactiveEntityStore<Persistable> data,
|
|
@Named(value = ThreadUtils.SCHEDULER_IO) Scheduler ioScheduler,
|
|
@Named(value = ThreadUtils.SCHEDULER_UI) Scheduler uiScheduler) {
|
|
return new XmppContactRepository(data, ioScheduler, uiScheduler);
|
|
}
|
|
}
|