Mercury-IM/app/src/main/java/org/mercury_im/messenger/android/di/module/AndroidSchedulersModule.java

49 lines
1.3 KiB
Java

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();
}
}