From 72520f052288c11392c09ac7be7b5acae36e8ad7 Mon Sep 17 00:00:00 2001 From: Sanju S Date: Sun, 25 Apr 2021 00:01:01 +0530 Subject: [PATCH 1/3] fix delete note bug #160 Signed-off-by: Spikeysanju --- .idea/compiler.xml | 2 +- .idea/misc.xml | 2 +- .../main/java/thecodemonks/org/nottzapp/db/NotesDao.kt | 10 +++++++++- .../java/thecodemonks/org/nottzapp/repo/NotesRepo.kt | 2 ++ .../org/nottzapp/ui/details/NotesDetailsFragment.kt | 2 +- .../org/nottzapp/ui/notes/NotesFragment.kt | 8 +++++++- .../org/nottzapp/ui/notes/NotesViewModel.kt | 8 +++++++- 7 files changed, 28 insertions(+), 6 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index fb7f4a8..61a9130 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index c1a2313..29fbcfc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -18,7 +18,7 @@ - + diff --git a/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt b/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt index 991a9a1..feac0d3 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt @@ -29,7 +29,12 @@ package thecodemonks.org.nottzapp.db -import androidx.room.* +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update import kotlinx.coroutines.flow.Flow import thecodemonks.org.nottzapp.model.Notes @@ -51,4 +56,7 @@ interface NotesDao { // delete notes from db @Delete suspend fun deleteNotes(notes: Notes) + + @Query("DELETE FROM notes where id=:id") + suspend fun deleteNote(id: Int) } diff --git a/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt b/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt index 6680d8b..e075558 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt @@ -46,4 +46,6 @@ class NotesRepo @Inject constructor(private val db: NotesDatabase) { // delete article suspend fun deleteNotes(notes: Notes) = db.getNotesDao().deleteNotes(notes) + + suspend fun deleteNote(id: Int) = db.getNotesDao().deleteNote(id) } diff --git a/app/src/main/java/thecodemonks/org/nottzapp/ui/details/NotesDetailsFragment.kt b/app/src/main/java/thecodemonks/org/nottzapp/ui/details/NotesDetailsFragment.kt index 78a5329..e81b891 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/ui/details/NotesDetailsFragment.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/ui/details/NotesDetailsFragment.kt @@ -163,7 +163,7 @@ class NotesDetailsFragment : Fragment(R.layout.fragment_notes_details) { return when (item.itemId) { R.id.action_delete -> { - viewModel.deleteNotes(args.notes.id, args.notes.title, args.notes.description) + viewModel.deleteNoteByID(args.notes.id) findNavController().navigateUp() true } diff --git a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt index 77b8c36..a1960ae 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt @@ -30,7 +30,12 @@ package thecodemonks.org.nottzapp.ui.notes import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.appcompat.app.AppCompatDelegate import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -173,6 +178,7 @@ class NotesFragment : Fragment(R.layout.notes_fragment) { private fun showEmptyState() { binding.emptyStateLayout.show() + notesAdapter.differ.submitList(emptyList()) } private fun onNotesLoaded(notes: List) { diff --git a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt index 909e38d..68f4851 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt @@ -78,7 +78,7 @@ class NotesViewModel @Inject internal constructor( notesRepo.insert(notes) } - // save notes + // update notes fun updateNotes(id: Int, taskName: String, taskDesc: String) = viewModelScope.launch { val notes = Notes( id = id, @@ -110,4 +110,10 @@ class NotesViewModel @Inject internal constructor( ) notesRepo.deleteNotes(notes) } + + + // delete notes + fun deleteNoteByID(id: Int) = viewModelScope.launch { + notesRepo.deleteNote(id) + } } From b016a0504b2804b4ad29990b1e26d8607ba502a3 Mon Sep 17 00:00:00 2001 From: Sanju S Date: Sun, 25 Apr 2021 00:02:08 +0530 Subject: [PATCH 2/3] Remove unused queries #160 Signed-off-by: Spikeysanju --- .../java/thecodemonks/org/nottzapp/db/NotesDao.kt | 6 +----- .../thecodemonks/org/nottzapp/repo/NotesRepo.kt | 4 +--- .../org/nottzapp/ui/notes/NotesViewModel.kt | 13 +------------ 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt b/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt index feac0d3..de94170 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/db/NotesDao.kt @@ -30,7 +30,6 @@ package thecodemonks.org.nottzapp.db import androidx.room.Dao -import androidx.room.Delete import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query @@ -53,10 +52,7 @@ interface NotesDao { @Query("SELECT * FROM notes") fun getNotes(): Flow> - // delete notes from db - @Delete - suspend fun deleteNotes(notes: Notes) - + // delete notes by id @Query("DELETE FROM notes where id=:id") suspend fun deleteNote(id: Int) } diff --git a/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt b/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt index e075558..494f71a 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/repo/NotesRepo.kt @@ -44,8 +44,6 @@ class NotesRepo @Inject constructor(private val db: NotesDatabase) { // get saved notes fun getSavedNotes() = db.getNotesDao().getNotes() - // delete article - suspend fun deleteNotes(notes: Notes) = db.getNotesDao().deleteNotes(notes) - + // delete note by ID suspend fun deleteNote(id: Int) = db.getNotesDao().deleteNote(id) } diff --git a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt index 68f4851..cbbb4ca 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesViewModel.kt @@ -101,18 +101,7 @@ class NotesViewModel @Inject internal constructor( } } - // delete notes - fun deleteNotes(taskID: Int, taskName: String, taskDesc: String) = viewModelScope.launch { - val notes = Notes( - id = taskID, - title = taskName, - description = taskDesc - ) - notesRepo.deleteNotes(notes) - } - - - // delete notes + // delete note by ID fun deleteNoteByID(id: Int) = viewModelScope.launch { notesRepo.deleteNote(id) } From 9d39f7bf97698444fce166f1589a7232b972e9c3 Mon Sep 17 00:00:00 2001 From: Sanju S Date: Sun, 25 Apr 2021 00:15:46 +0530 Subject: [PATCH 3/3] Fix swipe to delete #160 Signed-off-by: Spikeysanju --- .../thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt index a1960ae..4108866 100644 --- a/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt +++ b/app/src/main/java/thecodemonks/org/nottzapp/ui/notes/NotesFragment.kt @@ -141,10 +141,8 @@ class NotesFragment : Fragment(R.layout.notes_fragment) { // get item position & delete notes val position = viewHolder.adapterPosition val notes = notesAdapter.differ.currentList[position] - viewModel.deleteNotes( - notes.id, - notes.title, - notes.description + viewModel.deleteNoteByID( + notes.id ) Snackbar.make( binding.root,