Skip to content

Instantly share code, notes, and snippets.

View mrmojtabaa's full-sized avatar
🎯
Focusing

Mojtaba Haddadi mrmojtabaa

🎯
Focusing
View GitHub Profile
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt' // Kotlin Annotation processing tool
android {
compileSdkVersion 28
class myApplication : Application(), HasActivityInjector {
@Inject
lateinit var activityInjector: DispatchingAndroidInjector<Activity>
override fun onCreate() {
super.onCreate()
var appComponent = DaggerAppComponent.create()
appComponent.inject(this)
}
class MainActivityViewModel @Inject constructor() {
var someData = "MyString"
}
class MainActivity : AppCompatActivity() {
@Inject
lateinit var viewModel: MainActivityViewModel
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@Module
abstract class ActivitiesModule {
@ContributesAndroidInjector
abstract fun contributeMainActivity(): MainActivity
}
@Component(
modules = [
ActivitiesModule::class
]
)
interface AppComponent {
fun inject(myApplication: MyApplication)
}
class myApplication : Application(), HasActivityInjector {
@Inject
lateinit var activityInjector: DispatchingAndroidInjector<Activity>
override fun onCreate() {
super.onCreate()
}
override fun activityInjector(): AndroidInjector<Activity> {
dependencies {
.
.
implementation "com.google.dagger:dagger-android:2.16"
.
}
class mainActivity {
}