Skip to content

Instantly share code, notes, and snippets.

View aleksandarzekovic's full-sized avatar
🎯
Focusing

Aleksandar Zekovic aleksandarzekovic

🎯
Focusing
View GitHub Profile
@aleksandarzekovic
aleksandarzekovic / ClassInfo
Last active September 21, 2020 06:48
Class for explain DI
class Engine{
fun turnOn() {
Log.d("TAG", "Engine is turn on")
}
}
class Transmission {
}
class MainActivity : AppCompatActivity() {
private lateinit var car: Car
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// val engine = Engine()
// val transmission = Transmission()
class Engine @Inject constructor(){
fun turnOn() {
Log.d("TAG", "Engine is turn on")
}
}
class Transmission @Inject constructor(){
}
@Component
interface CarComponent {
fun getCar(): Car
}
public final class DaggerCarComponent implements CarComponent {
private DaggerCarComponent() {
}
public static Builder builder() {
return new Builder();
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
DaggerCarComponent.builder().build().getCar().startCar()
}
}
@Component
interface CarComponent {
//fun getCar(): Car
fun inject(mainActivity: MainActivity)
}
class MainActivity : AppCompatActivity() {
@Inject
lateinit var car: Car
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//DaggerCarComponent.builder().build().getCar().startCar()
@SuppressWarnings({
"unchecked",
"rawtypes"
})
public final class DaggerCarComponent implements CarComponent {
private DaggerCarComponent() {
}
public final class MainActivity_MembersInjector implements MembersInjector<MainActivity> {
private final Provider<Car> carProvider;
public MainActivity_MembersInjector(Provider<Car> carProvider) {
this.carProvider = carProvider;
}
public static MembersInjector<MainActivity> create(Provider<Car> carProvider) {
return new MainActivity_MembersInjector(carProvider);
}