AppComponent.kt 1.22 KB
Newer Older
1 2 3
package chat.rocket.android.dagger

import android.app.Application
4
import chat.rocket.android.app.AppLifecycleObserver
5
import chat.rocket.android.app.RocketChatApplication
6
import chat.rocket.android.chatroom.service.MessageService
7 8
import chat.rocket.android.dagger.module.ActivityBuilder
import chat.rocket.android.dagger.module.AppModule
9
import chat.rocket.android.dagger.module.ReceiverBuilder
10 11
import chat.rocket.android.dagger.module.ServiceBuilder
import chat.rocket.android.push.FirebaseTokenService
12 13 14 15 16 17
import dagger.BindsInstance
import dagger.Component
import dagger.android.support.AndroidSupportInjectionModule
import javax.inject.Singleton

@Singleton
18 19
@Component(modules = [AndroidSupportInjectionModule::class,
    AppModule::class, ActivityBuilder::class, ServiceBuilder::class, ReceiverBuilder::class])
20 21 22 23 24 25 26 27 28 29 30 31
interface AppComponent {

    @Component.Builder
    interface Builder {
        @BindsInstance
        fun application(application: Application): Builder

        fun build(): AppComponent
    }

    fun inject(app: RocketChatApplication)

32 33
    fun inject(service: FirebaseTokenService)

34 35
    fun inject(service: MessageService)

36 37 38
    /*@Component.Builder
    abstract class Builder : AndroidInjector.Builder<RocketChatApplication>()*/
}