package org.mercury_im.messenger.android.di.module; import android.app.Application; import org.mercury_im.messenger.core.SchedulersFacade; import org.mercury_im.messenger.data.model.Models; import org.mercury_im.messenger.BuildConfig; import javax.inject.Named; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import io.reactivex.Scheduler; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import io.requery.Persistable; import io.requery.android.sqlite.DatabaseSource; import io.requery.reactivex.ReactiveEntityStore; import io.requery.reactivex.ReactiveSupport; import io.requery.sql.Configuration; import io.requery.sql.EntityDataStore; import io.requery.sql.TableCreationMode; @Module public class AndroidSchedulersModule { @Provides @Named(value = SchedulersFacade.SCHEDULER_IO) @Singleton static Scheduler provideDatabaseThread() { return Schedulers.io(); } @Provides @Named(value = SchedulersFacade.SCHEDULER_UI) @Singleton static Scheduler providerUIThread() { return AndroidSchedulers.mainThread(); } @Provides @Named(value = SchedulersFacade.SCHEDULER_NEW_THREAD) @Singleton static Scheduler provideNewThread() { return Schedulers.newThread(); } }