ext {
hilt_version = '2.38.1'
}
dependencies {
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
}
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'kotlin-parcelize'
id 'dagger.hilt.android.plugin'
}
dependencies {
// Hilt
// dagger hilt
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
}
@HiltAndroidApp
class BaseApplication: Application()
@Module
@InstallIn(SingletonComponent::class)
class Module {
@Singleton
@Provides
fun getIndianFood(): IndianFood {
return IndianFood()
}
@Provides
fun getChineseFood(): ChineseFood {
return ChineseFood()
}
}
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var indianFood: IndianFood
@Inject
lateinit var chineseFood: ChineseFood
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.btIndian.setOnClickListener {
binding.tvStatus.text =
"Food Details:${indianFood.foodType()},${indianFood.foodCount()}"
indianFood.specialFood()
}
binding.btChinese.setOnClickListener {
binding.tvStatus.text =
"Food Details:${chineseFood.foodType()},${chineseFood.foodCount()}"
}
binding.btNext.setOnClickListener {
startActivity(Intent(this@MainActivity, MainActivity2::class.java))
}
}
}
@Inject constructor()
@Inject constructor(@ApplicationContext context: Context)
Eg:
class IndianFood @Inject constructor()