Skip to content

Commit 5345513

Browse files
committed
Update from Dagger2.x to Android-Hilt.
1 parent 9c11eb0 commit 5345513

24 files changed

+93
-281
lines changed

app/build.gradle

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ apply plugin: 'kotlin-android'
33
apply plugin: 'kotlin-android-extensions'
44
apply plugin: 'kotlin-kapt'
55
apply plugin: 'kotlin-platform-android'
6+
apply plugin: 'dagger.hilt.android.plugin'
7+
68

79
android {
8-
compileSdkVersion rootProject.compileSdkVersion
9-
buildToolsVersion '29.0.3'
10+
compileSdkVersion 30
11+
buildToolsVersion '30.0.2'
1012
defaultConfig {
1113
applicationId 'com.eltaher.task'
1214
minSdkVersion rootProject.minSdkVersion
@@ -59,6 +61,14 @@ android {
5961
pickFirst 'META-INF/kotlinx-coroutines-core.kotlin_module'
6062
pickFirst 'META-INF/kotlinx-coroutines-io.kotlin_module'
6163
}
64+
65+
configurations.all {
66+
resolutionStrategy {
67+
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
68+
69+
}
70+
}
71+
6272
testOptions {
6373
unitTests.returnDefaultValues = true
6474
}
@@ -79,7 +89,6 @@ android {
7989
dependencies {
8090
implementation fileTree(dir: 'libs', include: ['*.jar'])
8191
//kotlin
82-
//implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
8392
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
8493
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
8594
implementation "androidx.annotation:annotation:$annotationVersion"
@@ -89,7 +98,6 @@ dependencies {
8998
//junit 5
9099
testImplementation "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
91100
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"
92-
93101
testImplementation "org.junit.platform:junit-platform-runner:$junitRunnerVersion"
94102
androidTestImplementation "androidx.test.ext:junit:$androidXJunitVersion"
95103
androidTestImplementation "org.assertj:assertj-core:$assertjVersion"
@@ -111,20 +119,12 @@ dependencies {
111119
implementation "androidx.recyclerview:recyclerview:$recyclerviewVersion"
112120
implementation "androidx.appcompat:appcompat:$appcompatVersion"
113121
implementation "com.google.android.material:material:$materialVersion"
114-
implementation "androidx.core:core-ktx:$coreKtxVersion"
122+
115123
implementation "androidx.coordinatorlayout:coordinatorlayout:$coordinatorLayoutVersion"
116124
implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"
117125
implementation "androidx.cardview:cardview:$cardViewVersion"
118-
implementation "androidx.activity:activity:$activityVersion"
119-
implementation "androidx.activity:activity-ktx:$activityKtxVersion"
120126

121-
//Dagger
122-
implementation "com.google.dagger:dagger:$daggerVersion"
123-
kapt "com.google.dagger:dagger-compiler:$daggerVersion"
124-
implementation "com.google.dagger:dagger-android:$daggerVersion"
125-
implementation "com.google.dagger:dagger-android-support:$daggerVersion"
126-
kapt "com.google.dagger:dagger-android-processor:$daggerVersion"
127-
kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion"
127+
128128

129129
//Logging
130130
implementation "com.squareup.okhttp3:logging-interceptor:$okhttpInterceptorVersion"
@@ -142,8 +142,6 @@ dependencies {
142142
//MultiDex
143143
implementation "androidx.multidex:multidex:$multiDexVersion"
144144

145-
//Mockk
146-
// androidTestImplementation "io.mockk:mockk-android:$mockVersion"
147145
testImplementation "io.mockk:mockk:$mockVersion"
148146

149147
//coroutines
@@ -152,4 +150,12 @@ dependencies {
152150
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtensionsVersion"
153151
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleKTXVersion"
154152
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleKTXVersion"
153+
implementation "androidx.core:core-ktx:$coreKtxVersion"
154+
implementation "androidx.activity:activity-ktx:$activityKtxVersion"
155+
156+
implementation 'com.google.dagger:hilt-android:2.31.2-alpha'
157+
kapt 'com.google.dagger:hilt-android-compiler:2.31.2-alpha'
158+
}
159+
kapt {
160+
correctErrorTypes true
155161
}
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
package com.task
2-
import com.task.di.DaggerTestAppComponent
32

43
class AppTest: App() {
5-
override fun initDagger() {
6-
DaggerTestAppComponent.builder().application(this).build().inject(this)
7-
}
84
}

app/src/androidTest/java/com/task/di/TestAppComponent.kt

Lines changed: 0 additions & 27 deletions
This file was deleted.

app/src/androidTest/java/com/task/di/TestDataModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ import com.task.TestDataRepository
44
import com.task.data.DataRepositorySource
55
import dagger.Binds
66
import dagger.Module
7+
import dagger.hilt.InstallIn
8+
import dagger.hilt.components.SingletonComponent
79
import javax.inject.Singleton
810

911
@Module
12+
@InstallIn(SingletonComponent::class)
1013
abstract class TestDataModule {
1114
@Binds
1215
@Singleton

app/src/main/java/com/task/App.kt

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,18 @@
11
package com.task
22

3+
import android.app.Application
34
import android.content.Context
4-
import androidx.multidex.MultiDexApplication
5-
import com.task.di.DaggerAppComponent
6-
import dagger.android.AndroidInjector
7-
import dagger.android.DispatchingAndroidInjector
8-
import dagger.android.HasAndroidInjector
9-
import javax.inject.Inject
5+
import dagger.hilt.android.HiltAndroidApp
106

117
/**
128
* Created by AhmedEltaher
139
*/
14-
15-
open class App : MultiDexApplication(), HasAndroidInjector {
16-
17-
@Inject
18-
lateinit var androidInjector: DispatchingAndroidInjector<Any>
19-
20-
override fun androidInjector(): AndroidInjector<Any> = androidInjector
10+
@HiltAndroidApp
11+
open class App : Application() {
2112

2213
override fun onCreate() {
2314
super.onCreate()
2415
context = applicationContext
25-
initDagger()
26-
}
27-
28-
open fun initDagger() {
29-
DaggerAppComponent.builder().build().inject(this)
3016
}
3117

3218
companion object {

app/src/main/java/com/task/di/ActivityModuleBuilder.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.

app/src/main/java/com/task/di/AppComponent.kt

Lines changed: 0 additions & 26 deletions
This file was deleted.

app/src/main/java/com/task/di/AppModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ import com.task.utils.Network
66
import com.task.utils.NetworkConnectivity
77
import dagger.Module
88
import dagger.Provides
9+
import dagger.hilt.InstallIn
10+
import dagger.hilt.components.SingletonComponent
911
import kotlinx.coroutines.Dispatchers
1012
import javax.inject.Singleton
1113
import kotlin.coroutines.CoroutineContext
1214

1315
@Module
16+
@InstallIn(SingletonComponent::class)
1417
class AppModule {
1518
@Provides
1619
@Singleton

app/src/main/java/com/task/di/DataModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import com.task.data.DataRepository
55
import com.task.data.DataRepositorySource
66
import dagger.Binds
77
import dagger.Module
8+
import dagger.hilt.InstallIn
9+
import dagger.hilt.components.SingletonComponent
810
import javax.inject.Singleton
911

1012
// Tells Dagger this is a Dagger module
1113
@Module
14+
@InstallIn(SingletonComponent::class)
1215
abstract class DataModule {
1316
@Binds
1417
@Singleton

app/src/main/java/com/task/di/ErrorModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ import com.task.usecase.errors.ErrorFactory
66
import com.task.usecase.errors.ErrorManager
77
import dagger.Binds
88
import dagger.Module
9+
import dagger.hilt.InstallIn
10+
import dagger.hilt.components.SingletonComponent
911
import javax.inject.Singleton
1012

1113
// with @Module we Telling Dagger that, this is a Dagger module
1214
@Module
15+
@InstallIn(SingletonComponent::class)
1316
abstract class ErrorModule {
1417
@Binds
1518
@Singleton

0 commit comments

Comments
 (0)