Skip to content

Commit 072c488

Browse files
committed
2. Оставшиеся два задания
1 parent dc79525 commit 072c488

File tree

4 files changed

+16
-22
lines changed

4 files changed

+16
-22
lines changed

app/src/main/java/ru/otus/daggerhomework/EventsWriterReader.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ package ru.otus.daggerhomework
33
import kotlinx.coroutines.flow.Flow
44
import kotlinx.coroutines.flow.MutableSharedFlow
55
import 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>

app/src/main/java/ru/otus/daggerhomework/MainActivityModule.kt

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package ru.otus.daggerhomework
22

3-
import android.content.Context
43
import androidx.lifecycle.ViewModel
54
import dagger.Binds
65
import 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

app/src/main/java/ru/otus/daggerhomework/ViewModelProducer.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import android.content.Context
44
import android.widget.Toast
55
import androidx.fragment.app.FragmentActivity
66
import 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

app/src/main/java/ru/otus/daggerhomework/ViewModelReceiver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import kotlinx.coroutines.launch
1010
import javax.inject.Inject
1111

1212
class ViewModelReceiver @Inject constructor(
13-
private val context: Context,
13+
@ApplicationContext private val context: Context,
1414
val eventsReader: EventsReader
1515
):ViewModel() {
1616
init {

0 commit comments

Comments
 (0)