Skip to content

Commit

Permalink
finalised data-layer-added dependency injection module in di package
Browse files Browse the repository at this point in the history
  • Loading branch information
mutukuian committed Sep 17, 2023
1 parent 361ad3c commit 782c51c
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions app/src/main/java/budgetTracker/app/di/BudgetModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package budgetTracker.app.di

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import budgetTracker.app.data.TransactionDao
import budgetTracker.app.data.TransactionDatabase
import budgetTracker.app.data.repository.DataStoreRepositoryImpl
import budgetTracker.app.data.repository.TransactionRepositoryImpl
import budgetTracker.app.domain.repository.DataStoreRepository
import budgetTracker.app.domain.repository.TransactionRepository
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
object BudgetModule {


@Provides
@Singleton
fun provideDataStoreRepository(@ApplicationContext context: Context):DataStoreRepository{
return DataStoreRepositoryImpl(context)
}

@Provides
@Singleton
fun providesTransactionDao(database: TransactionDatabase) = database.transactionDao

@Provides
@Singleton
fun providesTransactionRepository(transactionDao: TransactionDao):TransactionRepository{
return TransactionRepositoryImpl(transactionDao)
}

@Provides
@Singleton
fun providesTransactionDatabase(@ApplicationContext context: Context):TransactionDatabase{
return Room.databaseBuilder(context,TransactionDatabase::class.java,"transactionDB")
.fallbackToDestructiveMigration()
.build()
}


}

0 comments on commit 782c51c

Please sign in to comment.