You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/app/src/main/java/org/tasks/injection/ProductionModule.kt

43 lines
1.4 KiB
Kotlin

package org.tasks.injection
import android.content.Context
import androidx.room.Room
import com.todoroo.astrid.dao.Database
import dagger.Module
import dagger.Provides
4 years ago
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ApplicationComponent
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskListDao
import org.tasks.db.Migrations
4 years ago
import org.tasks.jobs.WorkManager
import org.tasks.jobs.WorkManagerImpl
import org.tasks.preferences.Preferences
import javax.inject.Singleton
4 years ago
@Module
@InstallIn(ApplicationComponent::class)
internal class ProductionModule {
@Provides
@Singleton
fun getAppDatabase(@ApplicationContext context: Context): Database {
return Room.databaseBuilder(context, Database::class.java, Database.NAME)
.allowMainThreadQueries() // TODO: remove me
.addMigrations(*Migrations.MIGRATIONS)
.build()
}
@Provides
4 years ago
fun getPreferences(@ApplicationContext context: Context): Preferences = Preferences(context)
@Provides
@Singleton
fun getWorkManager(
@ApplicationContext context: Context,
preferences: Preferences,
googleTaskListDao: GoogleTaskListDao,
caldavDao: CaldavDao): WorkManager {
return WorkManagerImpl(context, preferences, googleTaskListDao, caldavDao)
}
}