Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/schaal/ocreader.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schaal <daniel@schaal.email>2021-07-19 07:22:33 +0300
committerDaniel Schaal <daniel@schaal.email>2021-07-25 10:10:47 +0300
commit35d708027cf9adc654c3fdf7542f55ddd44f1bb8 (patch)
treea0f33e933cdf36b770573892319f4d77876c3e51
parent8137abd31ec83204edb1ff9d47f49b22d9bb3351 (diff)
Move sync method to SyncWorker
-rw-r--r--app/src/main/java/email/schaal/ocreader/ListActivity.kt6
-rw-r--r--app/src/main/java/email/schaal/ocreader/database/FeedViewModel.kt21
-rw-r--r--app/src/main/java/email/schaal/ocreader/service/SyncWorker.kt14
3 files changed, 18 insertions, 23 deletions
diff --git a/app/src/main/java/email/schaal/ocreader/ListActivity.kt b/app/src/main/java/email/schaal/ocreader/ListActivity.kt
index 9c23b2bd..f92386cd 100644
--- a/app/src/main/java/email/schaal/ocreader/ListActivity.kt
+++ b/app/src/main/java/email/schaal/ocreader/ListActivity.kt
@@ -123,7 +123,7 @@ class ListActivity : AppCompatActivity(), ItemViewHolder.OnClickListener, OnRefr
true
}
R.id.menu_sync -> {
- observeWork(feedViewModel.sync(this, SyncType.FULL_SYNC))
+ observeWork(SyncWorker.sync(this, SyncType.FULL_SYNC))
true
}
R.id.menu_about -> {
@@ -239,7 +239,7 @@ class ListActivity : AppCompatActivity(), ItemViewHolder.OnClickListener, OnRefr
}
if(result.first == Activity.RESULT_OK) {
Queries.resetDatabase()
- observeWork(feedViewModel.sync(this, SyncType.FULL_SYNC))
+ observeWork(SyncWorker.sync(this, SyncType.FULL_SYNC))
}
}
@@ -311,7 +311,7 @@ class ListActivity : AppCompatActivity(), ItemViewHolder.OnClickListener, OnRefr
}
override fun onRefresh() {
- observeWork(feedViewModel.sync(this, SyncType.FULL_SYNC))
+ observeWork(SyncWorker.sync(this, SyncType.FULL_SYNC))
}
override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean {
diff --git a/app/src/main/java/email/schaal/ocreader/database/FeedViewModel.kt b/app/src/main/java/email/schaal/ocreader/database/FeedViewModel.kt
index 48a343b6..27b9881f 100644
--- a/app/src/main/java/email/schaal/ocreader/database/FeedViewModel.kt
+++ b/app/src/main/java/email/schaal/ocreader/database/FeedViewModel.kt
@@ -20,21 +20,17 @@ package email.schaal.ocreader.database
import android.content.Context
import android.content.SharedPreferences
-import androidx.lifecycle.*
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
import androidx.preference.PreferenceManager
-import androidx.work.OneTimeWorkRequestBuilder
-import androidx.work.WorkInfo
-import androidx.work.WorkManager
-import androidx.work.workDataOf
import email.schaal.ocreader.Preferences
import email.schaal.ocreader.database.model.*
import email.schaal.ocreader.database.model.TemporaryFeed.Companion.getListTemporaryFeed
import email.schaal.ocreader.putBreadCrumbs
-import email.schaal.ocreader.service.SyncType
-import email.schaal.ocreader.service.SyncWorker
import io.realm.Realm
import io.realm.kotlin.where
-import kotlin.IllegalArgumentException
class FeedViewModel(context: Context) : RealmViewModel() {
private val temporaryFeedLiveData: MutableLiveData<TemporaryFeed>
@@ -60,15 +56,6 @@ class FeedViewModel(context: Context) : RealmViewModel() {
val user: LiveData<User>
get() = userLiveData
- fun sync(context: Context, syncType: SyncType): LiveData<WorkInfo> {
- val workManager = WorkManager.getInstance(context)
- val syncWork = OneTimeWorkRequestBuilder<SyncWorker>()
- .setInputData(workDataOf(SyncWorker.KEY_SYNC_TYPE to syncType.action))
- .build()
- workManager.enqueue(syncWork)
- return workManager.getWorkInfoByIdLiveData(syncWork.id)
- }
-
fun updateFolders(onlyUnread: Boolean) {
foldersLiveData.value = Folder.getAll(realm, onlyUnread)
}
diff --git a/app/src/main/java/email/schaal/ocreader/service/SyncWorker.kt b/app/src/main/java/email/schaal/ocreader/service/SyncWorker.kt
index 0039482b..8380fb41 100644
--- a/app/src/main/java/email/schaal/ocreader/service/SyncWorker.kt
+++ b/app/src/main/java/email/schaal/ocreader/service/SyncWorker.kt
@@ -1,10 +1,9 @@
package email.schaal.ocreader.service
import android.content.Context
+import androidx.lifecycle.LiveData
import androidx.preference.PreferenceManager
-import androidx.work.CoroutineWorker
-import androidx.work.WorkerParameters
-import androidx.work.workDataOf
+import androidx.work.*
import email.schaal.ocreader.Preferences
import email.schaal.ocreader.api.API
import email.schaal.ocreader.util.LoginError
@@ -13,6 +12,15 @@ class SyncWorker(context: Context, workerParams: WorkerParameters) : CoroutineWo
companion object {
const val KEY_SYNC_TYPE = "KEY_SYNC_TYPE"
const val KEY_EXCEPTION = "KEY_EXCEPTION"
+
+ fun sync(context: Context, syncType: SyncType): LiveData<WorkInfo> {
+ val workManager = WorkManager.getInstance(context)
+ val syncWork = OneTimeWorkRequestBuilder<SyncWorker>()
+ .setInputData(workDataOf(KEY_SYNC_TYPE to syncType.action))
+ .build()
+ workManager.enqueue(syncWork)
+ return workManager.getWorkInfoByIdLiveData(syncWork.id)
+ }
}
override suspend fun doWork(): Result {