Skip to content

Commit

Permalink
Update from Dagger2.x to Android-Hilt.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmedeltaher committed Jan 27, 2021
1 parent 9c11eb0 commit 5345513
Show file tree
Hide file tree
Showing 24 changed files with 93 additions and 281 deletions.
38 changes: 22 additions & 16 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-platform-android'
apply plugin: 'dagger.hilt.android.plugin'


android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion '29.0.3'
compileSdkVersion 30
buildToolsVersion '30.0.2'
defaultConfig {
applicationId 'com.eltaher.task'
minSdkVersion rootProject.minSdkVersion
Expand Down Expand Up @@ -59,6 +61,14 @@ android {
pickFirst 'META-INF/kotlinx-coroutines-core.kotlin_module'
pickFirst 'META-INF/kotlinx-coroutines-io.kotlin_module'
}

configurations.all {
resolutionStrategy {
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"

}
}

testOptions {
unitTests.returnDefaultValues = true
}
Expand All @@ -79,7 +89,6 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//kotlin
//implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
implementation "androidx.annotation:annotation:$annotationVersion"
Expand All @@ -89,7 +98,6 @@ dependencies {
//junit 5
testImplementation "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"

testImplementation "org.junit.platform:junit-platform-runner:$junitRunnerVersion"
androidTestImplementation "androidx.test.ext:junit:$androidXJunitVersion"
androidTestImplementation "org.assertj:assertj-core:$assertjVersion"
Expand All @@ -111,20 +119,12 @@ dependencies {
implementation "androidx.recyclerview:recyclerview:$recyclerviewVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation "com.google.android.material:material:$materialVersion"
implementation "androidx.core:core-ktx:$coreKtxVersion"

implementation "androidx.coordinatorlayout:coordinatorlayout:$coordinatorLayoutVersion"
implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"
implementation "androidx.cardview:cardview:$cardViewVersion"
implementation "androidx.activity:activity:$activityVersion"
implementation "androidx.activity:activity-ktx:$activityKtxVersion"

//Dagger
implementation "com.google.dagger:dagger:$daggerVersion"
kapt "com.google.dagger:dagger-compiler:$daggerVersion"
implementation "com.google.dagger:dagger-android:$daggerVersion"
implementation "com.google.dagger:dagger-android-support:$daggerVersion"
kapt "com.google.dagger:dagger-android-processor:$daggerVersion"
kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion"


//Logging
implementation "com.squareup.okhttp3:logging-interceptor:$okhttpInterceptorVersion"
Expand All @@ -142,8 +142,6 @@ dependencies {
//MultiDex
implementation "androidx.multidex:multidex:$multiDexVersion"

//Mockk
// androidTestImplementation "io.mockk:mockk-android:$mockVersion"
testImplementation "io.mockk:mockk:$mockVersion"

//coroutines
Expand All @@ -152,4 +150,12 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtensionsVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleKTXVersion"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleKTXVersion"
implementation "androidx.core:core-ktx:$coreKtxVersion"
implementation "androidx.activity:activity-ktx:$activityKtxVersion"

implementation 'com.google.dagger:hilt-android:2.31.2-alpha'
kapt 'com.google.dagger:hilt-android-compiler:2.31.2-alpha'
}
kapt {
correctErrorTypes true
}
4 changes: 0 additions & 4 deletions app/src/androidTest/java/com/task/AppTest.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
package com.task
import com.task.di.DaggerTestAppComponent

class AppTest: App() {
override fun initDagger() {
DaggerTestAppComponent.builder().application(this).build().inject(this)
}
}
27 changes: 0 additions & 27 deletions app/src/androidTest/java/com/task/di/TestAppComponent.kt

This file was deleted.

3 changes: 3 additions & 0 deletions app/src/androidTest/java/com/task/di/TestDataModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import com.task.TestDataRepository
import com.task.data.DataRepositorySource
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class TestDataModule {
@Binds
@Singleton
Expand Down
22 changes: 4 additions & 18 deletions app/src/main/java/com/task/App.kt
Original file line number Diff line number Diff line change
@@ -1,32 +1,18 @@
package com.task

import android.app.Application
import android.content.Context
import androidx.multidex.MultiDexApplication
import com.task.di.DaggerAppComponent
import dagger.android.AndroidInjector
import dagger.android.DispatchingAndroidInjector
import dagger.android.HasAndroidInjector
import javax.inject.Inject
import dagger.hilt.android.HiltAndroidApp

/**
* Created by AhmedEltaher
*/

open class App : MultiDexApplication(), HasAndroidInjector {

@Inject
lateinit var androidInjector: DispatchingAndroidInjector<Any>

override fun androidInjector(): AndroidInjector<Any> = androidInjector
@HiltAndroidApp
open class App : Application() {

override fun onCreate() {
super.onCreate()
context = applicationContext
initDagger()
}

open fun initDagger() {
DaggerAppComponent.builder().build().inject(this)
}

companion object {
Expand Down
24 changes: 0 additions & 24 deletions app/src/main/java/com/task/di/ActivityModuleBuilder.kt

This file was deleted.

26 changes: 0 additions & 26 deletions app/src/main/java/com/task/di/AppComponent.kt

This file was deleted.

3 changes: 3 additions & 0 deletions app/src/main/java/com/task/di/AppModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ import com.task.utils.Network
import com.task.utils.NetworkConnectivity
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import kotlinx.coroutines.Dispatchers
import javax.inject.Singleton
import kotlin.coroutines.CoroutineContext

@Module
@InstallIn(SingletonComponent::class)
class AppModule {
@Provides
@Singleton
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/com/task/di/DataModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ import com.task.data.DataRepository
import com.task.data.DataRepositorySource
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

// Tells Dagger this is a Dagger module
@Module
@InstallIn(SingletonComponent::class)
abstract class DataModule {
@Binds
@Singleton
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/com/task/di/ErrorModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ import com.task.usecase.errors.ErrorFactory
import com.task.usecase.errors.ErrorManager
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

// with @Module we Telling Dagger that, this is a Dagger module
@Module
@InstallIn(SingletonComponent::class)
abstract class ErrorModule {
@Binds
@Singleton
Expand Down
15 changes: 0 additions & 15 deletions app/src/main/java/com/task/di/ViewModelKey.kt

This file was deleted.

43 changes: 0 additions & 43 deletions app/src/main/java/com/task/di/ViewModelModule.kt

This file was deleted.

25 changes: 0 additions & 25 deletions app/src/main/java/com/task/ui/ViewModelFactory.kt

This file was deleted.

4 changes: 0 additions & 4 deletions app/src/main/java/com/task/ui/base/BaseActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.task.ui.base
import android.os.Bundle
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import dagger.android.AndroidInjection

/**
* Created by AhmedEltaher
Expand All @@ -12,15 +11,12 @@ import dagger.android.AndroidInjection

abstract class BaseActivity : AppCompatActivity() {

protected abstract fun initializeViewModel()
abstract fun observeViewModel()
protected abstract fun initViewBinding()

override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
initViewBinding()
initializeViewModel()
observeViewModel()
}

Expand Down
Loading

0 comments on commit 5345513

Please sign in to comment.