Sunday, July 4, 2021

【ANDROID STUDIO】Singleton With Dagger

 package com.example.dagger


import android.util.Log
import javax.inject.Inject
import javax.inject.Singleton


@Singleton
class SmartPhone @Inject constructor(val battery: Battery, val simCard: SIMCard, val memoryCard: MemoryCard) {

init {
battery.getPower()
simCard.getConnection()
memoryCard.getSpaceAvailablity()
Log.i("MYTAG", "SmartPhone Constructed")
}

fun makeACallWithRecording() {
Log.i("MYTAG", "Calling.....")
}
}
package com.example.dagger

import dagger.Component
import javax.inject.Singleton

@Singleton
@Component(modules = [MemoryCardModule::class, NCBatteryModule::class])
interface SmartPhoneComponent {
fun inject(mainActivity: MainActivity)
}
package com.example.dagger

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import dagger.internal.InjectedFieldSignature
import javax.inject.Inject

class MainActivity : AppCompatActivity() {

@Inject
lateinit var smartPhone: SmartPhone
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
(application as SmartPhoneApplication).smartPhoneComponent.inject(this)
smartPhone.makeACallWithRecording()

}
}

No comments:

Post a Comment

End of Summer Sale ☀️😎

20% OFF Inside!🤯 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏...