Wednesday, June 30, 2021

【ANDROID STUDIO】Dagger Modules

 package com.example.dagger


import dagger.Component

@Component(modules = [MemoryCardModule::class])
interface SmartPhoneComponent {
fun getSmartPhone() : SmartPhone
}
package com.example.dagger

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

class SIMCard @Inject constructor(private val serviceProvider: ServiceProvider) {


init {
Log.i("MYTAG", "SIM Card Constructed")
}

fun getConnection() {
serviceProvider.getServiceProvider()
}
}
package com.example.dagger

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

class ServiceProvider @Inject constructor() {
init {
Log.i("MYTAG", "Service Provider Constructed")
}

fun getServiceProvider() {
Log.i("MYTAG", "Service provider connected")
}
}
package com.example.dagger

import dagger.Module
import dagger.Provides

@Module
class MemoryCardModule {

@Provides
fun providesMemoryCard(): MemoryCard {
return MemoryCard()
}
}
package com.example.dagger

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

class MemoryCard {
init {
Log.i("MYTAG", "Memory Card Constructed")
}

fun getSpaceAvailablity() {
Log.i("MYTAG", "Memory space available")
}

}
package com.example.dagger

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

class Battery @Inject constructor() {
init {
Log.i("MYTAG", "Battery Constructed")
}

fun getPower() {
Log.i("MYTAG", "Battery power is available")
}
}
package com.example.dagger

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {

private lateinit var smartPhone: SmartPhone
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
DaggerSmartPhoneComponent.create()
.getSmartPhone()
.makeACallWithRecording()
}
}

No comments:

Post a Comment

End of Summer Sale ☀️😎

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