AppRepository.kt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package com.sduduzog.slimlauncher.data
  2. import android.app.Application
  3. import android.os.AsyncTask
  4. import androidx.lifecycle.LiveData
  5. class AppRepository(application: Application) {
  6. private val db: DataRoomDatabase = DataRoomDatabase.getDatabase(application)!!
  7. private val appDao: AppDao = db.appDao()
  8. private val _apps = appDao.homeApps
  9. val apps: LiveData<List<HomeApp>>
  10. get() = _apps
  11. fun add(app: HomeApp){
  12. AddAppAsyncTask(appDao).execute(app)
  13. }
  14. fun update(vararg list: HomeApp) {
  15. UpdateAppAsyncTask(appDao).execute(*list)
  16. }
  17. private class AddAppAsyncTask(private val mAsyncTaskDao: AppDao) : AsyncTask<HomeApp, Void, Void>() {
  18. override fun doInBackground(vararg params: HomeApp): Void? {
  19. mAsyncTaskDao.add(params[0])
  20. return null
  21. }
  22. }
  23. private class UpdateAppAsyncTask(private val mAsyncTaskDao: AppDao) : AsyncTask<HomeApp, Void, Void>() {
  24. override fun doInBackground(vararg params: HomeApp): Void? {
  25. mAsyncTaskDao.update(*params)
  26. return null
  27. }
  28. }
  29. }