Guest User

Untitled

a guest
Jul 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. @Singleton
  2. @Component(
  3. modules = [
  4. AndroidSupportInjectionModule::class,
  5. AppModule::class,
  6. ActivityBuilderModule::class]
  7. )
  8. interface AppComponent {
  9. @Component.Builder
  10. interface Builder {
  11. @BindsInstance
  12. fun application(application: Application): Builder
  13.  
  14. fun build(): AppComponent
  15. }
  16.  
  17. fun inject(app: App)
  18. }
  19.  
  20. class App : Application(), HasActivityInjector {
  21.  
  22. @Inject
  23. lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>
  24.  
  25. override fun onCreate() {
  26. super.onCreate()
  27. AppInjector.init(this)
  28. initOneSignal()
  29. }
  30.  
  31. private fun initOneSignal() = OneSignal.startInit(this).setNotificationOpenedHandler(CustomNotificationOpenedHandler()).inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification).init()
  32.  
  33.  
  34. override fun activityInjector() = dispatchingAndroidInjector
  35. }
  36.  
  37. @Module
  38. abstract class ActivityBuilderModule {
  39. @ContributesAndroidInjector
  40. abstract fun contributeSplashActivity(): SplashActivity
  41. }
  42.  
  43. @Module(includes = [(ViewModelModule::class)])
  44. class AppModule {
  45.  
  46. @Singleton
  47. @Provides
  48. fun provideContext(app: Application): Context = app.applicationContext;
  49.  
  50. @Singleton
  51. @Provides
  52. fun provideApiService(client: OkHttpClient): ApiService {
  53. return Retrofit.Builder()
  54. .baseUrl(Constants.baseUrl)
  55. .client(client)
  56. .addConverterFactory(GsonConverterFactory.create())
  57. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  58. .build()
  59. .create(ApiService::class.java)
  60. }
  61.  
  62. @Singleton
  63. @Provides
  64. fun provideOkHttpClient(interceptor: HttpLoggingInterceptor): OkHttpClient {
  65. return OkHttpClient.Builder().addInterceptor(interceptor).build()
  66. }
  67.  
  68. @Singleton
  69. @Provides
  70. fun provideHttpLoggingInterceptor(): HttpLoggingInterceptor {
  71. val interceptor = HttpLoggingInterceptor()
  72. interceptor.level = HttpLoggingInterceptor.Level.BODY
  73. return interceptor
  74. }
  75. }
Add Comment
Please, Sign In to add comment