Skip to content

Commit 499f59e

Browse files
Inject CodeViewModel with Hilt
1 parent a601bcf commit 499f59e

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.d4rk.androidtutorials.java.data.repository.DefaultMainRepository;
99
import com.d4rk.androidtutorials.java.data.repository.DefaultSupportRepository;
1010
import com.d4rk.androidtutorials.java.data.repository.HomeRepository;
11+
import com.d4rk.androidtutorials.java.data.repository.LessonRepository;
1112
import com.d4rk.androidtutorials.java.data.repository.MainRepository;
1213
import com.d4rk.androidtutorials.java.data.repository.SupportRepository;
1314
import com.d4rk.androidtutorials.java.data.source.DefaultHomeLocalDataSource;
@@ -16,6 +17,7 @@
1617
import com.d4rk.androidtutorials.java.data.source.HomeRemoteDataSource;
1718
import com.d4rk.androidtutorials.java.domain.about.GetCurrentYearUseCase;
1819
import com.d4rk.androidtutorials.java.domain.about.GetVersionStringUseCase;
20+
import com.d4rk.androidtutorials.java.domain.android.GetLessonUseCase;
1921
import com.d4rk.androidtutorials.java.domain.help.LaunchReviewFlowUseCase;
2022
import com.d4rk.androidtutorials.java.domain.help.RequestReviewFlowUseCase;
2123
import com.d4rk.androidtutorials.java.domain.home.GetAppPlayStoreUrlUseCase;
@@ -262,4 +264,15 @@ public RequestReviewFlowUseCase provideRequestReviewFlowUseCase(HelpRepository r
262264
public LaunchReviewFlowUseCase provideLaunchReviewFlowUseCase(HelpRepository repository) {
263265
return new LaunchReviewFlowUseCase(repository);
264266
}
267+
268+
@Provides
269+
@Singleton
270+
public LessonRepository provideLessonRepository() {
271+
return new com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository();
272+
}
273+
274+
@Provides
275+
public GetLessonUseCase provideGetLessonUseCase(LessonRepository repository) {
276+
return new GetLessonUseCase(repository);
277+
}
265278
}

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@
88
import androidx.viewpager2.adapter.FragmentStateAdapter;
99

1010
import com.d4rk.androidtutorials.java.R;
11+
import com.d4rk.androidtutorials.java.data.repository.LessonRepository;
1112
import com.d4rk.androidtutorials.java.databinding.ActivityTabLayoutBinding;
1213
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
13-
import com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository;
1414
import com.d4rk.androidtutorials.java.ui.screens.android.tabs.CodeFragment;
1515
import com.d4rk.androidtutorials.java.ui.screens.android.tabs.LayoutFragment;
1616
import com.d4rk.androidtutorials.java.ui.screens.android.tabs.NoCodeFragment;
1717
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
1818
import com.google.android.material.tabs.TabLayoutMediator;
1919

20+
import dagger.hilt.android.AndroidEntryPoint;
21+
22+
@AndroidEntryPoint
2023
public class CodeActivity extends UpNavigationActivity {
2124
private ActivityTabLayoutBinding binding;
2225

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/CodeViewModel.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,22 @@
44
import androidx.lifecycle.MutableLiveData;
55
import androidx.lifecycle.ViewModel;
66

7+
import com.d4rk.androidtutorials.java.data.repository.LessonRepository;
78
import com.d4rk.androidtutorials.java.domain.android.GetLessonUseCase;
8-
import com.d4rk.androidtutorials.java.ui.screens.android.repository.LessonRepository;
99

10+
import javax.inject.Inject;
11+
12+
import dagger.hilt.android.lifecycle.HiltViewModel;
13+
14+
@HiltViewModel
1015
public class CodeViewModel extends ViewModel {
1116
private final MutableLiveData<LessonRepository.Lesson> lesson = new MutableLiveData<>();
12-
private final LessonRepository repository = new LessonRepository();
13-
private final GetLessonUseCase getLessonUseCase = new GetLessonUseCase(repository);
17+
private final GetLessonUseCase getLessonUseCase;
18+
19+
@Inject
20+
public CodeViewModel(GetLessonUseCase getLessonUseCase) {
21+
this.getLessonUseCase = getLessonUseCase;
22+
}
1423

1524
public void setLessonName(String lessonName) {
1625
lesson.setValue(getLessonUseCase.invoke(lessonName));

0 commit comments

Comments
 (0)