diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java b/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java index 3e38f20e..3b1e6724 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java @@ -8,6 +8,7 @@ import com.d4rk.androidtutorials.java.data.repository.DefaultMainRepository; import com.d4rk.androidtutorials.java.data.repository.DefaultSupportRepository; import com.d4rk.androidtutorials.java.data.repository.HomeRepository; +import com.d4rk.androidtutorials.java.data.repository.LessonRepository; import com.d4rk.androidtutorials.java.data.repository.MainRepository; import com.d4rk.androidtutorials.java.data.repository.SupportRepository; import com.d4rk.androidtutorials.java.data.source.DefaultHomeLocalDataSource; @@ -16,6 +17,7 @@ import com.d4rk.androidtutorials.java.data.source.HomeRemoteDataSource; import com.d4rk.androidtutorials.java.domain.about.GetCurrentYearUseCase; import com.d4rk.androidtutorials.java.domain.about.GetVersionStringUseCase; +import com.d4rk.androidtutorials.java.domain.android.GetLessonUseCase; import com.d4rk.androidtutorials.java.domain.help.LaunchReviewFlowUseCase; import com.d4rk.androidtutorials.java.domain.help.RequestReviewFlowUseCase; import com.d4rk.androidtutorials.java.domain.home.GetAppPlayStoreUrlUseCase; @@ -262,4 +264,15 @@ public RequestReviewFlowUseCase provideRequestReviewFlowUseCase(HelpRepository r public LaunchReviewFlowUseCase provideLaunchReviewFlowUseCase(HelpRepository repository) { return new LaunchReviewFlowUseCase(repository); } + + @Provides + @Singleton + public LessonRepository provideLessonRepository() { + return new com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository(); + } + + @Provides + public GetLessonUseCase provideGetLessonUseCase(LessonRepository repository) { + return new GetLessonUseCase(repository); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeActivity.java index a0d36ed0..84addc55 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeActivity.java @@ -8,15 +8,18 @@ import androidx.viewpager2.adapter.FragmentStateAdapter; import com.d4rk.androidtutorials.java.R; +import com.d4rk.androidtutorials.java.data.repository.LessonRepository; import com.d4rk.androidtutorials.java.databinding.ActivityTabLayoutBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; -import com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository; import com.d4rk.androidtutorials.java.ui.screens.android.tabs.CodeFragment; import com.d4rk.androidtutorials.java.ui.screens.android.tabs.LayoutFragment; import com.d4rk.androidtutorials.java.ui.screens.android.tabs.NoCodeFragment; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; import com.google.android.material.tabs.TabLayoutMediator; +import dagger.hilt.android.AndroidEntryPoint; + +@AndroidEntryPoint public class CodeActivity extends UpNavigationActivity { private ActivityTabLayoutBinding binding; diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeViewModel.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeViewModel.java index 4994f7a1..7cbef0bd 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeViewModel.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeViewModel.java @@ -4,13 +4,22 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import com.d4rk.androidtutorials.java.data.repository.LessonRepository; import com.d4rk.androidtutorials.java.domain.android.GetLessonUseCase; -import com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository; +import javax.inject.Inject; + +import dagger.hilt.android.lifecycle.HiltViewModel; + +@HiltViewModel public class CodeViewModel extends ViewModel { private final MutableLiveData lesson = new MutableLiveData<>(); - private final LessonRepository repository = new LessonRepository(); - private final GetLessonUseCase getLessonUseCase = new GetLessonUseCase(repository); + private final GetLessonUseCase getLessonUseCase; + + @Inject + public CodeViewModel(GetLessonUseCase getLessonUseCase) { + this.getLessonUseCase = getLessonUseCase; + } public void setLessonName(String lessonName) { lesson.setValue(getLessonUseCase.invoke(lessonName));