diff --git a/app/src/main/java/com/saulhdev/feeder/db/ArticleRepository.kt b/app/src/main/java/com/saulhdev/feeder/db/ArticleRepository.kt index c52d78e..6f61b16 100644 --- a/app/src/main/java/com/saulhdev/feeder/db/ArticleRepository.kt +++ b/app/src/main/java/com/saulhdev/feeder/db/ArticleRepository.kt @@ -25,8 +25,10 @@ import com.saulhdev.feeder.db.dao.insertOrUpdate import com.saulhdev.feeder.db.models.Feed import com.saulhdev.feeder.db.models.FeedArticle import com.saulhdev.feeder.db.models.FeedItemIdWithLink +import com.saulhdev.feeder.models.scheduleFullTextParse import com.saulhdev.feeder.sdk.FeedItem import com.saulhdev.feeder.sync.FeedSyncer +import com.saulhdev.feeder.sync.requestFeedSync import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -73,12 +75,14 @@ class ArticleRepository(context: Context) { } } - fun updateFeed(feed: Feed) { + fun updateFeed(feed: Feed, resync: Boolean = false) { scope.launch { val list: List = feedSourceDao.findFeedById(feed.id) if (list.isNotEmpty()) { feed.lastSync = ZonedDateTime.now().toInstant() feedSourceDao.update(feed) + if (resync) requestFeedSync(feed.id) + if (feed.fullTextByDefault) scheduleFullTextParse() } } } diff --git a/app/src/main/java/com/saulhdev/feeder/models/FullTextParser.kt b/app/src/main/java/com/saulhdev/feeder/models/FullTextParser.kt index 464e4ea..6ed0974 100644 --- a/app/src/main/java/com/saulhdev/feeder/models/FullTextParser.kt +++ b/app/src/main/java/com/saulhdev/feeder/models/FullTextParser.kt @@ -29,7 +29,7 @@ fun scheduleFullTextParse() { val workManager: WorkManager by inject(WorkManager::class.java) workManager.enqueueUniqueWork( "FullTextWorker", - ExistingWorkPolicy.KEEP, + ExistingWorkPolicy.REPLACE, workRequest.build() ) } diff --git a/app/src/main/java/com/saulhdev/feeder/sync/FeedSyncer.kt b/app/src/main/java/com/saulhdev/feeder/sync/FeedSyncer.kt index b0190f1..5ed97ef 100644 --- a/app/src/main/java/com/saulhdev/feeder/sync/FeedSyncer.kt +++ b/app/src/main/java/com/saulhdev/feeder/sync/FeedSyncer.kt @@ -125,7 +125,7 @@ fun requestFeedSync( workManager.enqueueUniqueWork( "feeder_sync_onetime_$feedId", - ExistingWorkPolicy.KEEP, + ExistingWorkPolicy.REPLACE, workRequest.build() ) } \ No newline at end of file diff --git a/app/src/main/java/com/saulhdev/feeder/viewmodel/EditFeedViewModel.kt b/app/src/main/java/com/saulhdev/feeder/viewmodel/EditFeedViewModel.kt index 97c0455..236593b 100644 --- a/app/src/main/java/com/saulhdev/feeder/viewmodel/EditFeedViewModel.kt +++ b/app/src/main/java/com/saulhdev/feeder/viewmodel/EditFeedViewModel.kt @@ -53,12 +53,14 @@ class EditFeedViewModel : ViewModel() { fun updateFeed(state: EditFeedViewState) { repository.updateFeed( - feed.value.copy( + feed = feed.value.copy( title = state.title, url = sloppyLinkToStrictURL(state.url), fullTextByDefault = state.fullTextByDefault, isEnabled = state.isEnabled, - ) + ), + resync = feed.value.fullTextByDefault != state.fullTextByDefault + || feed.value.isEnabled != state.isEnabled ) }