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

47 lines
1.6 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.BuildConfig
import org.tasks.R
import org.tasks.data.CaldavDaoBlocking
import org.tasks.data.GoogleTaskListDaoBlocking
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, preferences: Preferences): Database {
val builder = Room.databaseBuilder(context, Database::class.java, Database.NAME)
.addMigrations(*Migrations.MIGRATIONS)
if (!BuildConfig.DEBUG || preferences.getBoolean(R.string.p_debug_main_queries, true)) {
builder.allowMainThreadQueries()
}
return builder.build()
}
@Provides
4 years ago
fun getPreferences(@ApplicationContext context: Context): Preferences = Preferences(context)
@Provides
@Singleton
fun getWorkManager(
@ApplicationContext context: Context,
preferences: Preferences,
googleTaskListDao: GoogleTaskListDaoBlocking,
caldavDao: CaldavDaoBlocking): WorkManager {
4 years ago
return WorkManagerImpl(context, preferences, googleTaskListDao, caldavDao)
}
}