diff --git a/app/build.gradle b/app/build.gradle index a5609bb9..f4d074eb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,13 +5,13 @@ plugins { } android { - compileSdkVersion 30 + compileSdkVersion 31 buildToolsVersion "30.0.3" defaultConfig { applicationId "ru.otus.daggerhomework" minSdkVersion 23 - targetSdkVersion 30 + targetSdkVersion 31 versionCode 1 versionName "1.0" @@ -41,4 +41,10 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.0' implementation 'com.google.dagger:dagger:2.38.1' kapt 'com.google.dagger:dagger-compiler:2.38.1' + + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2' + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2' + + implementation 'androidx.fragment:fragment-ktx:1.4.1' + // implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-rc01") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe328c68..82191fee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,16 +1,18 @@ - - + diff --git a/app/src/main/java/ru/otus/daggerhomework/App.kt b/app/src/main/java/ru/otus/daggerhomework/App.kt index de363626..f76932ab 100644 --- a/app/src/main/java/ru/otus/daggerhomework/App.kt +++ b/app/src/main/java/ru/otus/daggerhomework/App.kt @@ -1,6 +1,17 @@ package ru.otus.daggerhomework import android.app.Application +import ru.otus.daggerhomework.di.app.ApplicationComponent +import ru.otus.daggerhomework.di.app.DaggerApplicationComponent + +class App : Application() { + + val componentInstance: ApplicationComponent by lazy { + createApplicationComponent() + } + + private fun createApplicationComponent(): ApplicationComponent = DaggerApplicationComponent + .factory() + .create(context = this) -class App :Application() { } \ No newline at end of file diff --git a/app/src/main/java/ru/otus/daggerhomework/ApplicationComponent.kt b/app/src/main/java/ru/otus/daggerhomework/ApplicationComponent.kt deleted file mode 100644 index fc47f256..00000000 --- a/app/src/main/java/ru/otus/daggerhomework/ApplicationComponent.kt +++ /dev/null @@ -1,4 +0,0 @@ -package ru.otus.daggerhomework - -interface ApplicationComponent { -} \ No newline at end of file diff --git a/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt b/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt index a9e25a27..7262565a 100644 --- a/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt +++ b/app/src/main/java/ru/otus/daggerhomework/ColorGenerator.kt @@ -2,8 +2,8 @@ package ru.otus.daggerhomework import android.graphics.Color import androidx.annotation.ColorInt -import androidx.annotation.ColorRes import java.util.* +import javax.inject.Inject interface ColorGenerator { @@ -11,10 +11,15 @@ interface ColorGenerator { fun generateColor(): Int } -class ColorGeneratorImpl : ColorGenerator { +class ColorGeneratorImpl @Inject constructor() : ColorGenerator { override fun generateColor(): Int { val rnd = Random() - return Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)) + return Color.argb( + 255, + rnd.nextInt(256), + rnd.nextInt(256), + rnd.nextInt(256) + ) } } \ No newline at end of file diff --git a/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt b/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt index 00dd10dc..c5b92744 100644 --- a/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt +++ b/app/src/main/java/ru/otus/daggerhomework/FragmentProducer.kt @@ -6,9 +6,19 @@ import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.fragment.app.Fragment +import javax.inject.Inject class FragmentProducer : Fragment() { + @Inject + lateinit var viewModelProducer: ViewModelProducer + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + injectDependencies() + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -20,7 +30,16 @@ class FragmentProducer : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) view.findViewById