File tree Expand file tree Collapse file tree 15 files changed +345
-167
lines changed
java/com/vladshurakov/jetnotesapp
feature_settings/presenter Expand file tree Collapse file tree 15 files changed +345
-167
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -13,8 +13,8 @@ android {
1313 applicationId = " com.vladshurakov.jetnotesapp"
1414 minSdk = 26
1515 targetSdk = 34
16- versionCode = 5
17- versionName = " 1.1.2 "
16+ versionCode = 6
17+ versionName = " 1.2.0 "
1818 resourceConfigurations + = listOf (" en" )
1919
2020 vectorDrawables {
@@ -71,6 +71,9 @@ dependencies {
7171 // Pretty Time
7272 implementation (" org.ocpsoft.prettytime:prettytime:5.0.4.Final" )
7373
74+ // Gson
75+ implementation(" com.google.code.gson:gson:2.10.1" )
76+
7477 implementation(" androidx.core:core-ktx:1.12.0" )
7578 implementation(" androidx.lifecycle:lifecycle-runtime-ktx:2.6.2" )
7679 implementation(" androidx.activity:activity-compose:1.8.1" )
Original file line number Diff line number Diff line change @@ -18,9 +18,9 @@ import androidx.navigation.compose.composable
1818import androidx.navigation.compose.rememberNavController
1919import androidx.navigation.navArgument
2020import com.google.accompanist.systemuicontroller.rememberSystemUiController
21- import com.vladshurakov.jetnotesapp.feature_notes.presenter.screen.EditScreen
2221import com.vladshurakov.jetnotesapp.feature_notes.presenter.screen.ArchivedScreen
2322import com.vladshurakov.jetnotesapp.feature_notes.presenter.screen.DeletedScreen
23+ import com.vladshurakov.jetnotesapp.feature_notes.presenter.screen.EditScreen
2424import com.vladshurakov.jetnotesapp.feature_notes.presenter.screen.NotesScreen
2525import com.vladshurakov.jetnotesapp.feature_settings.presenter.screen.SettingsScreen
2626import com.vladshurakov.jetnotesapp.feature_settings.presenter.viewmodel.SettingsEvent
@@ -92,7 +92,7 @@ class MainActivity : ComponentActivity() {
9292 composable(route = Screen .Settings .route) {
9393 SettingsScreen (
9494 navController = navController,
95- settingsBundle = settingsBundle ,
95+ settingsViewModel = settingsViewModel ,
9696 onSettingsChanged = { newSettingsBundle ->
9797 settingsBundle = newSettingsBundle
9898 settingsViewModel.onEvent(SettingsEvent .SaveSettings (settingsBundle))
Original file line number Diff line number Diff line change @@ -6,8 +6,10 @@ import com.vladshurakov.jetnotesapp.feature_notes.data.data_source.NoteDatabase
66import com.vladshurakov.jetnotesapp.feature_notes.data.repository.NotesRepositoryImpl
77import com.vladshurakov.jetnotesapp.feature_notes.domain.repository.NotesRepository
88import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.DeleteNote
9+ import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.GetAllNotes
910import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.GetNote
1011import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.GetNotes
12+ import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.InsertNotes
1113import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.InsertNote
1214import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.MoveNoteToFolder
1315import com.vladshurakov.jetnotesapp.feature_notes.domain.usecase.NotesUseCases
@@ -50,6 +52,8 @@ object AppModule {
5052 fun provideNotesUseCases (notesRepository : NotesRepository ): NotesUseCases {
5153 return NotesUseCases (
5254 insertNote = InsertNote (notesRepository),
55+ insertNotes = InsertNotes (notesRepository),
56+ getAllNotes = GetAllNotes (notesRepository),
5357 getNote = GetNote (notesRepository),
5458 deleteNote = DeleteNote (notesRepository),
5559 moveTo = MoveNoteToFolder (notesRepository),
Original file line number Diff line number Diff line change @@ -14,6 +14,12 @@ interface NoteDao {
1414 @Insert(onConflict = OnConflictStrategy .REPLACE )
1515 suspend fun insert (noteEntity : NoteEntity ): Long
1616
17+ @Insert(onConflict = OnConflictStrategy .IGNORE )
18+ suspend fun insert (noteEntities : List <NoteEntity >): List <Long >
19+
20+ @Query(" SELECT * FROM note" )
21+ fun getAll (): List <NoteEntity >
22+
1723 @Query(" SELECT * FROM note WHERE id = :id" )
1824 suspend fun get (id : Long ): NoteEntity ?
1925
Original file line number Diff line number Diff line change @@ -11,10 +11,17 @@ import kotlinx.coroutines.flow.map
1111
1212class NotesRepositoryImpl (private val noteDao : NoteDao ) : NotesRepository {
1313 override suspend fun insert (note : Note ): Long {
14-
1514 return noteDao.insert(note.toNoteEntity())
1615 }
1716
17+ override suspend fun insert (notes : List <Note >): List <Long > {
18+ return noteDao.insert(notes.map { it.toNoteEntity() })
19+ }
20+
21+ override fun getAll (): List <Note > {
22+ return noteDao.getAll().map { it.toNote() }
23+ }
24+
1825 override suspend fun get (id : Long ): Note ? {
1926 return noteDao.get(id)?.toNote()
2027 }
Original file line number Diff line number Diff line change @@ -6,6 +6,8 @@ import kotlinx.coroutines.flow.Flow
66
77interface NotesRepository {
88 suspend fun insert (note : Note ): Long?
9+ suspend fun insert (notes : List <Note >): List <Long ?>
10+ fun getAll (): List <Note >
911 suspend fun get (id : Long ): Note ?
1012 suspend fun delete (note : Note )
1113 suspend fun moveTo (id : Long , folder : Folder )
Original file line number Diff line number Diff line change 1+ package com.vladshurakov.jetnotesapp.feature_notes.domain.usecase
2+
3+ import com.vladshurakov.jetnotesapp.feature_notes.domain.models.Note
4+ import com.vladshurakov.jetnotesapp.feature_notes.domain.repository.NotesRepository
5+
6+ class GetAllNotes (private val repository : NotesRepository ) {
7+ operator fun invoke (): List <Note > {
8+ return repository.getAll()
9+ }
10+ }
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ class InsertNote(private val repository: NotesRepository){
77
88 suspend operator fun invoke (note : Note ): Long? {
99 if (note.title.isBlank() && (note.content.isBlank() || note.content.startsWith(' ' ))){
10- return null
10+ return - 1
1111 }
1212 if (note.title.isBlank() && note.content.isNotBlank()){
1313 note.title = " Title"
Original file line number Diff line number Diff line change 1+ package com.vladshurakov.jetnotesapp.feature_notes.domain.usecase
2+
3+ import com.vladshurakov.jetnotesapp.feature_notes.domain.models.Note
4+ import com.vladshurakov.jetnotesapp.feature_notes.domain.repository.NotesRepository
5+
6+ class InsertNotes (private val repository : NotesRepository ) {
7+ suspend operator fun invoke (notes : List <Note >): List <Long ?> {
8+ return repository.insert(notes)
9+ }
10+ }
You can’t perform that action at this time.
0 commit comments