forked from embedded-dev-research/openvino-notes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAppModule.kt
More file actions
94 lines (91 loc) · 4 KB
/
Copy pathAppModule.kt
File metadata and controls
94 lines (91 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.itlab
import com.itlab.domain.usecase.folderusecase.CreateFolderUseCase
import com.itlab.domain.usecase.folderusecase.DeleteFolderUseCase
import com.itlab.domain.usecase.folderusecase.GetFolderUseCase
import com.itlab.domain.usecase.folderusecase.ObserveFoldersUseCase
import com.itlab.domain.usecase.folderusecase.UpdateFolderUseCase
import com.itlab.domain.usecase.noteusecase.CreateNoteUseCase
import com.itlab.domain.usecase.noteusecase.DeleteNoteUseCase
import com.itlab.domain.usecase.noteusecase.GetAllFavoritesUseCase
import com.itlab.domain.usecase.noteusecase.GetNoteUseCase
import com.itlab.domain.usecase.noteusecase.GetUserIdUseCase
import com.itlab.domain.usecase.noteusecase.MoveNoteToFolderUseCase
import com.itlab.domain.usecase.noteusecase.ObserveNotesByFolderUseCase
import com.itlab.domain.usecase.noteusecase.ObserveNotesUseCase
import com.itlab.domain.usecase.noteusecase.SearchNotesUseCase
import com.itlab.domain.usecase.noteusecase.SwitchFavoriteUseCase
import com.itlab.domain.usecase.noteusecase.UpdateNoteUseCase
import com.itlab.domain.usecase.noteusecase.ValidateDuplicateNoteTitleUseCase
import com.itlab.notes.auth.AppSessionPreferences
import com.itlab.notes.auth.ClearLocalDataOnSignOut
import com.itlab.notes.onboarding.OnboardingPreferences
import com.itlab.notes.onboarding.OnboardingViewModel
import com.itlab.notes.ui.NotesUseCases
import com.itlab.notes.ui.NotesViewModel
import com.itlab.notes.ui.auth.AuthViewModel
import org.koin.android.ext.koin.androidApplication
import org.koin.core.module.dsl.viewModel
import org.koin.core.module.dsl.viewModelOf
import org.koin.dsl.module
val appModule =
module {
single { OnboardingPreferences(androidApplication()) }
single { AppSessionPreferences(androidApplication()) }
factory { ValidateDuplicateNoteTitleUseCase(get()) }
factory { CreateNoteUseCase(get()) }
factory { CreateFolderUseCase(get()) }
factory { DeleteFolderUseCase(get(), get()) }
factory { DeleteNoteUseCase(get()) }
factory { UpdateNoteUseCase(get()) }
factory { UpdateFolderUseCase(get()) }
factory { GetFolderUseCase(get()) }
factory { ObserveNotesByFolderUseCase(get()) }
factory { ObserveFoldersUseCase(get()) }
factory { MoveNoteToFolderUseCase(get(), get()) }
factory { ObserveNotesUseCase(get()) }
factory { GetUserIdUseCase(get()) }
factory { SearchNotesUseCase(get()) }
factory { SwitchFavoriteUseCase(get()) }
factory { GetAllFavoritesUseCase(get()) }
factory { GetNoteUseCase(get()) }
factory { UpdateFolderUseCase(get()) }
factory { GetFolderUseCase(get()) }
factory {
ClearLocalDataOnSignOut(
observeNotesUseCase = get(),
deleteNoteUseCase = get(),
observeFoldersUseCase = get(),
deleteFolderUseCase = get(),
)
}
factory {
NotesUseCases(
createFolderUseCase = get(),
deleteFolderUseCase = get(),
createNoteUseCase = get(),
deleteNoteUseCase = get(),
updateNoteUseCase = get(),
observeNotesByFolderUseCase = get(),
observeFoldersUseCase = get(),
updateFolderUseCase = get(),
getFolderUseCase = get(),
moveNoteToFolderUseCase = get(),
observeNotesUseCase = get(),
getUserIdUseCase = get(),
searchNotesUseCase = get(),
switchFavoriteUseCase = get(),
getAllFavoritesUseCase = get(),
getNoteUseCase = get(),
)
}
viewModelOf(::NotesViewModel)
viewModelOf(::OnboardingViewModel)
viewModel {
AuthViewModel(
firebaseAuth = get(),
app = androidApplication(),
appSessionPreferences = get(),
clearLocalDataOnSignOut = get(),
)
}
}