diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5cc8df15..7ae3729e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -54,7 +54,6 @@ dependencies { implementation(Libraries.androidAnnotations) implementation(Libraries.glide) implementation(Libraries.hilt) - implementation(Libraries.hiltLifecycle) implementation(Libraries.retrofit) implementation(Libraries.okHttpLoggingInterceptor) diff --git a/app/src/main/kotlin/com/fernandocejas/sample/core/di/ApplicationModule.kt b/app/src/main/kotlin/com/fernandocejas/sample/core/di/ApplicationModule.kt index da49f6fb..59d26acb 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/core/di/ApplicationModule.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/core/di/ApplicationModule.kt @@ -20,7 +20,7 @@ import com.fernandocejas.sample.features.movies.MoviesRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.components.ApplicationComponent +import dagger.hilt.components.SingletonComponent import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit @@ -28,7 +28,7 @@ import retrofit2.converter.gson.GsonConverterFactory import javax.inject.Singleton @Module -@InstallIn(ApplicationComponent::class) +@InstallIn(SingletonComponent::class) class ApplicationModule { @Provides @Singleton fun provideRetrofit(): Retrofit { diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsActivity.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsActivity.kt index 2cb99984..d1b692aa 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsActivity.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsActivity.kt @@ -18,6 +18,7 @@ package com.fernandocejas.sample.features.movies import android.content.Context import android.content.Intent import com.fernandocejas.sample.core.platform.BaseActivity +import dagger.hilt.android.AndroidEntryPoint class MovieDetailsActivity : BaseActivity() { diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsFragment.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsFragment.kt index 8c2cbcdf..0f4bdeff 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsFragment.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsFragment.kt @@ -47,7 +47,7 @@ class MovieDetailsFragment : BaseFragment() { @Inject lateinit var movieDetailsAnimator: MovieDetailsAnimator - private val movieDetailsViewModel: MovieDetailsViewModel by viewModels() + private val movieDetailsViewModel by viewModels() override fun layoutId() = R.layout.fragment_movie_details diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsViewModel.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsViewModel.kt index 20f2d62a..64dbf395 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsViewModel.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MovieDetailsViewModel.kt @@ -15,19 +15,19 @@ */ package com.fernandocejas.sample.features.movies -import androidx.hilt.Assisted -import androidx.hilt.lifecycle.ViewModelInject import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.SavedStateHandle import com.fernandocejas.sample.core.platform.BaseViewModel import com.fernandocejas.sample.features.movies.GetMovieDetails.Params +import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject +@HiltViewModel class MovieDetailsViewModel -@ViewModelInject constructor(private val getMovieDetails: GetMovieDetails, - @Assisted private val savedStateHandle: SavedStateHandle, - private val playMovie: PlayMovie) : BaseViewModel() { +@Inject constructor(private val getMovieDetails: GetMovieDetails, + private val savedStateHandle: SavedStateHandle, + private val playMovie: PlayMovie) : BaseViewModel() { private val _movieDetails: MutableLiveData = MutableLiveData() val movieDetails: LiveData = _movieDetails diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesActivity.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesActivity.kt index a6c541b6..e03f2c45 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesActivity.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesActivity.kt @@ -18,6 +18,7 @@ package com.fernandocejas.sample.features.movies import android.content.Context import android.content.Intent import com.fernandocejas.sample.core.platform.BaseActivity +import dagger.hilt.android.AndroidEntryPoint class MoviesActivity : BaseActivity() { diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesFragment.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesFragment.kt index bc9b9e32..a5f662ef 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesFragment.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesFragment.kt @@ -63,7 +63,7 @@ class MoviesFragment : BaseFragment() { movieList.layoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL) movieList.adapter = moviesAdapter moviesAdapter.clickListener = { movie, navigationExtras -> - navigator.showMovieDetails(requireActivity(), movie, navigationExtras) } + navigator.showMovieDetails(requireActivity(), movie, navigationExtras) } } private fun loadMoviesList() { diff --git a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesViewModel.kt b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesViewModel.kt index c2cd7b1e..da32b693 100644 --- a/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesViewModel.kt +++ b/app/src/main/kotlin/com/fernandocejas/sample/features/movies/MoviesViewModel.kt @@ -15,18 +15,18 @@ */ package com.fernandocejas.sample.features.movies -import androidx.hilt.Assisted -import androidx.hilt.lifecycle.ViewModelInject import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.SavedStateHandle import com.fernandocejas.sample.core.interactor.UseCase.None import com.fernandocejas.sample.core.platform.BaseViewModel +import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject +@HiltViewModel class MoviesViewModel -@ViewModelInject constructor(private val getMovies: GetMovies, - @Assisted private val savedStateHandle: SavedStateHandle) : BaseViewModel() { +@Inject constructor(private val getMovies: GetMovies, + private val savedStateHandle: SavedStateHandle) : BaseViewModel() { private val _movies: MutableLiveData> = MutableLiveData() val movies: LiveData> = _movies diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 4166667c..f6d12f8f 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -20,7 +20,7 @@ object BuildPlugins { object Versions { const val buildToolsVersion = "4.1.0" const val gradleVersion = "6.7" - const val hilt = "2.29-alpha" + const val hilt = "2.35.1" } const val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.buildToolsVersion}" @@ -43,7 +43,6 @@ object ScriptPlugins { object Libraries { private object Versions { const val hilt = BuildPlugins.Versions.hilt - const val hiltLifecycle = "1.0.0-alpha01" const val appCompat = "1.2.0" const val constraintLayout = "2.0.2" const val recyclerView = "1.1.0" @@ -74,7 +73,6 @@ object Libraries { const val androidAnnotations = "androidx.annotation:annotation:${Versions.annotations}" const val glide = "com.github.bumptech.glide:glide:${Versions.glide}" const val hilt = "com.google.dagger:hilt-android:${Versions.hilt}" - const val hiltLifecycle = "androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hiltLifecycle}" const val hiltCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hilt}" const val retrofit = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}" const val okHttpLoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.okHttpLoggingInterceptor}"