From 206ad9780555c9548f0102860bbf297b8ca02903 Mon Sep 17 00:00:00 2001 From: anton Date: Mon, 6 Jun 2022 23:38:51 +0200 Subject: [PATCH 1/2] init commit --- app/src/main/AndroidManifest.xml | 12 +- app/src/main/java/otus/homework/dagger/App.kt | 23 +++ .../java/otus/homework/dagger/ColorFlow.kt | 7 + .../homework/dagger}/ColorGenerator.kt | 3 +- .../homework/dagger}/FragmentProducer.kt | 9 +- .../homework/dagger}/FragmentReceiver.kt | 11 +- .../homework/dagger}/MainActivity.kt | 7 +- .../homework/dagger/MyViewModelFactory.kt | 18 +++ .../homework/dagger}/ViewModelProducer.kt | 10 +- .../homework/dagger}/ViewModelReceiver.kt | 10 +- .../homework/dagger/di/ActivityComponent.kt | 34 +++++ .../dagger/di/ApplicationComponent.kt | 26 ++++ .../homework/dagger/di/FragmentComponents.kt | 59 ++++++++ .../main/java/ru/otus/daggerhomework/App.kt | 6 - .../daggerhomework/ApplicationComponent.kt | 4 - .../drawable-v24/ic_launcher_foreground.xml | 11 +- .../res/drawable/ic_launcher_background.xml | 135 +++++++++--------- .../res/mipmap-anydpi-v26/ic_launcher.xml | 3 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 3 +- app/src/main/res/values-night/themes.xml | 4 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/themes.xml | 4 +- 22 files changed, 293 insertions(+), 108 deletions(-) create mode 100644 app/src/main/java/otus/homework/dagger/App.kt create mode 100644 app/src/main/java/otus/homework/dagger/ColorFlow.kt rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/ColorGenerator.kt (84%) rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/FragmentProducer.kt (73%) rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/FragmentReceiver.kt (70%) rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/MainActivity.kt (58%) create mode 100644 app/src/main/java/otus/homework/dagger/MyViewModelFactory.kt rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/ViewModelProducer.kt (62%) rename app/src/main/java/{ru/otus/daggerhomework => otus/homework/dagger}/ViewModelReceiver.kt (61%) create mode 100644 app/src/main/java/otus/homework/dagger/di/ActivityComponent.kt create mode 100644 app/src/main/java/otus/homework/dagger/di/ApplicationComponent.kt create mode 100644 app/src/main/java/otus/homework/dagger/di/FragmentComponents.kt delete mode 100644 app/src/main/java/ru/otus/daggerhomework/App.kt delete mode 100644 app/src/main/java/ru/otus/daggerhomework/ApplicationComponent.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe328c68..95620b67 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,16 +1,18 @@ - + + - + android:theme="@style/Theme.Flow" > + diff --git a/app/src/main/java/otus/homework/dagger/App.kt b/app/src/main/java/otus/homework/dagger/App.kt new file mode 100644 index 00000000..e6f461dd --- /dev/null +++ b/app/src/main/java/otus/homework/dagger/App.kt @@ -0,0 +1,23 @@ +package otus.homework.dagger + +import android.app.Application +import otus.homework.dagger.di.* +import otus.homework.dagger.di.AppModule + +class App : Application() { + + override fun onCreate() { + super.onCreate() + appComponent = DaggerAppComponent.builder().appModule(AppModule(this)).build() + activityComponent = DaggerActivityComponent.factory().create(appComponent) + fragmentReceverComponent = DaggerFragmentReceiverComponent.factory().create(activityComponent) + fragmentProducerComponent = DaggerFragmentProducerComponent.factory().create(activityComponent) + } + + companion object { + lateinit var appComponent: AppComponent + lateinit var activityComponent: ActivityComponent + lateinit var fragmentReceverComponent: FragmentReceiverComponent + lateinit var fragmentProducerComponent: FragmentProducerComponent + } +} \ No newline at end of file diff --git a/app/src/main/java/otus/homework/dagger/ColorFlow.kt b/app/src/main/java/otus/homework/dagger/ColorFlow.kt new file mode 100644 index 00000000..5f31f2b4 --- /dev/null +++ b/app/src/main/java/otus/homework/dagger/ColorFlow.kt @@ -0,0 +1,7 @@ +package otus.homework.dagger + +import androidx.lifecycle.MutableLiveData + +class ColorFlow { + var colorObserver = MutableLiveData() +} \ No newline at end of file diff --git a/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt b/app/src/main/java/otus/homework/dagger/ColorGenerator.kt similarity index 84% rename from app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt rename to app/src/main/java/otus/homework/dagger/ColorGenerator.kt index a9e25a27..0afe58a4 100644 --- a/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt +++ b/app/src/main/java/otus/homework/dagger/ColorGenerator.kt @@ -1,8 +1,7 @@ -package ru.otus.daggerhomework +package otus.homework.dagger import android.graphics.Color import androidx.annotation.ColorInt -import androidx.annotation.ColorRes import java.util.* interface ColorGenerator { diff --git a/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt b/app/src/main/java/otus/homework/dagger/FragmentProducer.kt similarity index 73% rename from app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt rename to app/src/main/java/otus/homework/dagger/FragmentProducer.kt index 00dd10dc..1cb3c5eb 100644 --- a/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt +++ b/app/src/main/java/otus/homework/dagger/FragmentProducer.kt @@ -1,4 +1,4 @@ -package ru.otus.daggerhomework +package otus.homework.dagger import android.os.Bundle import android.view.LayoutInflater @@ -6,20 +6,27 @@ import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.get +import javax.inject.Inject class FragmentProducer : Fragment() { + @Inject lateinit var viewModel: ViewModelProducer + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { + App.activityComponent.injectInto(this) return inflater.inflate(R.layout.fragment_a, container, true) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) view.findViewById