NoteRepository.kt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.sduduzog.slimlauncher.data
  2. import android.app.Application
  3. import android.os.AsyncTask
  4. import androidx.lifecycle.LiveData
  5. import com.sduduzog.slimlauncher.data.model.Note
  6. class NoteRepository(application: Application) : Repository(application) {
  7. private val _notes = noteDao.notes
  8. val notes: LiveData<List<Note>>
  9. get() = _notes
  10. fun add(args: Note) {
  11. AddNoteAsyncTask(noteDao).execute(args)
  12. }
  13. fun update(vararg args: Note) {
  14. UpdateNotesAsyncTask(noteDao).execute(*args)
  15. }
  16. fun remove(note: Note) {
  17. RemoveNoteAsyncTask(noteDao).execute(note)
  18. }
  19. private class AddNoteAsyncTask(private val mAsyncTaskDao: NoteDao) : AsyncTask<Note, Void, Void>() {
  20. override fun doInBackground(vararg params: Note): Void? {
  21. mAsyncTaskDao.add(params[0])
  22. return null
  23. }
  24. }
  25. private class UpdateNotesAsyncTask(private val mAsyncTaskDao: NoteDao) : AsyncTask<Note, Void, Void>() {
  26. override fun doInBackground(vararg params: Note): Void? {
  27. mAsyncTaskDao.update(*params)
  28. return null
  29. }
  30. }
  31. private class RemoveNoteAsyncTask(private val mAsyncTaskDao: NoteDao) : AsyncTask<Note, Void, Void>() {
  32. override fun doInBackground(vararg params: Note): Void? {
  33. mAsyncTaskDao.remove(*params)
  34. return null
  35. }
  36. }
  37. }