File tree Expand file tree Collapse file tree 4 files changed +16
-22
lines changed
app/src/main/java/ru/otus/daggerhomework Expand file tree Collapse file tree 4 files changed +16
-22
lines changed Original file line number Diff line number Diff line change @@ -3,8 +3,9 @@ package ru.otus.daggerhomework
33import kotlinx.coroutines.flow.Flow
44import kotlinx.coroutines.flow.MutableSharedFlow
55import kotlinx.coroutines.flow.asSharedFlow
6+ import javax.inject.Inject
67
7- class EventsWriterReader : EventsReader , EventsWriter {
8+ class EventsWriterReader @Inject constructor() : EventsReader, EventsWriter {
89 private val _eventsFlow = MutableSharedFlow <Int >(replay = 1 )
910
1011 override val eventsFlow: Flow <Int >
Original file line number Diff line number Diff line change 11package ru.otus.daggerhomework
22
3- import android.content.Context
43import androidx.lifecycle.ViewModel
54import dagger.Binds
65import dagger.Module
@@ -14,36 +13,29 @@ interface MainActivityModule {
1413 @Binds
1514 @ClassKey(ViewModelProducer ::class )
1615 @IntoMap
16+ @ActivityScope
1717 fun provideViewModelProducer (viewModel : ViewModelProducer ): ViewModel
1818
1919 @Binds
2020 @ClassKey(ViewModelReceiver ::class )
2121 @IntoMap
22+ @ActivityScope
2223 fun provideViewModelReceiver (viewModel : ViewModelReceiver ): ViewModel
2324
2425 @Binds
2526 @ActivityScope
2627 fun bindColorGenerator (colorGeneratorImpl : ColorGeneratorImpl ): ColorGenerator
2728
29+ @Binds
30+ @ActivityScope
31+ fun bindEventWriter (eventsWriter : EventsWriterReader ): EventsWriter
32+
33+ @Binds
34+ @ActivityScope
35+ fun bindEventReader (eventsReader : EventsWriterReader ): EventsReader
36+
2837 companion object {
29- @Provides
30- @ActivityScope
31- fun provideViewModelProducer (
32- @ActivityContext context : Context ,
33- eventsWriter : EventsWriterReader ,
34- colorGenerator : ColorGenerator
35- ): ViewModelProducer {
36- return ViewModelProducer (colorGenerator, context, eventsWriter)
37- }
3838
39- @Provides
40- @ActivityScope
41- fun provideViewModelReceiver (
42- @ApplicationContext context : Context ,
43- eventsReader : EventsWriterReader
44- ): ViewModelReceiver {
45- return ViewModelReceiver (context, eventsReader)
46- }
4739
4840 @Provides
4941 @ActivityScope
Original file line number Diff line number Diff line change @@ -4,10 +4,11 @@ import android.content.Context
44import android.widget.Toast
55import androidx.fragment.app.FragmentActivity
66import androidx.lifecycle.ViewModel
7+ import javax.inject.Inject
78
8- class ViewModelProducer (
9+ class ViewModelProducer @Inject constructor (
910 private val colorGenerator : ColorGenerator ,
10- private val context : Context ,
11+ @ActivityContext private val context : Context ,
1112 private val eventsWriter : EventsWriter
1213): ViewModel() {
1314
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ import kotlinx.coroutines.launch
1010import javax.inject.Inject
1111
1212class ViewModelReceiver @Inject constructor(
13- private val context : Context ,
13+ @ApplicationContext private val context : Context ,
1414 val eventsReader : EventsReader
1515):ViewModel() {
1616 init {
You can’t perform that action at this time.
0 commit comments