mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-10 01:02:33 +02:00
Reducing double launch or co-routines
This commit is contained in:
@@ -194,7 +194,6 @@ abstract class NostrDataSource(val debugName: String) {
|
|||||||
private val bundler = BundledUpdate(300, Dispatchers.IO)
|
private val bundler = BundledUpdate(300, Dispatchers.IO)
|
||||||
|
|
||||||
fun invalidateFilters() {
|
fun invalidateFilters() {
|
||||||
scope.launch(Dispatchers.IO) {
|
|
||||||
bundler.invalidate {
|
bundler.invalidate {
|
||||||
// println("DataSource: ${this.javaClass.simpleName} InvalidateFilters")
|
// println("DataSource: ${this.javaClass.simpleName} InvalidateFilters")
|
||||||
|
|
||||||
@@ -203,7 +202,6 @@ abstract class NostrDataSource(val debugName: String) {
|
|||||||
resetFiltersSuspend()
|
resetFiltersSuspend()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun resetFilters() {
|
fun resetFilters() {
|
||||||
scope.launch(Dispatchers.IO) { resetFiltersSuspend() }
|
scope.launch(Dispatchers.IO) { resetFiltersSuspend() }
|
||||||
|
@@ -436,7 +436,6 @@ abstract class FeedViewModel(val localFilter: FeedFilter<Note>) :
|
|||||||
|
|
||||||
fun checkKeysInvalidateDataAndSendToTop() {
|
fun checkKeysInvalidateDataAndSendToTop() {
|
||||||
if (lastFeedKey != localFilter.feedKey()) {
|
if (lastFeedKey != localFilter.feedKey()) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
|
||||||
bundler.invalidate(false) {
|
bundler.invalidate(false) {
|
||||||
// adds the time to perform the refresh into this delay
|
// adds the time to perform the refresh into this delay
|
||||||
// holding off new updates in case of heavy refresh routines.
|
// holding off new updates in case of heavy refresh routines.
|
||||||
@@ -445,7 +444,6 @@ abstract class FeedViewModel(val localFilter: FeedFilter<Note>) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun invalidateInsertData(newItems: Set<Note>) {
|
fun invalidateInsertData(newItems: Set<Note>) {
|
||||||
bundlerInsert.invalidateList(newItems) { refreshFromOldState(it.flatten().toSet()) }
|
bundlerInsert.invalidateList(newItems) { refreshFromOldState(it.flatten().toSet()) }
|
||||||
|
@@ -95,14 +95,12 @@ open class StringFeedViewModel(val dataSource: FeedFilter<String>) :
|
|||||||
private val bundler = BundledUpdate(250, Dispatchers.IO)
|
private val bundler = BundledUpdate(250, Dispatchers.IO)
|
||||||
|
|
||||||
override fun invalidateData(ignoreIfDoing: Boolean) {
|
override fun invalidateData(ignoreIfDoing: Boolean) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
|
||||||
bundler.invalidate(ignoreIfDoing) {
|
bundler.invalidate(ignoreIfDoing) {
|
||||||
// adds the time to perform the refresh into this delay
|
// adds the time to perform the refresh into this delay
|
||||||
// holding off new updates in case of heavy refresh routines.
|
// holding off new updates in case of heavy refresh routines.
|
||||||
refreshSuspended()
|
refreshSuspended()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var collectorJob: Job? = null
|
var collectorJob: Job? = null
|
||||||
|
|
||||||
|
@@ -126,14 +126,12 @@ open class UserFeedViewModel(val dataSource: FeedFilter<User>) :
|
|||||||
private val bundler = BundledUpdate(250, Dispatchers.IO)
|
private val bundler = BundledUpdate(250, Dispatchers.IO)
|
||||||
|
|
||||||
override fun invalidateData(ignoreIfDoing: Boolean) {
|
override fun invalidateData(ignoreIfDoing: Boolean) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
|
||||||
bundler.invalidate(ignoreIfDoing) {
|
bundler.invalidate(ignoreIfDoing) {
|
||||||
// adds the time to perform the refresh into this delay
|
// adds the time to perform the refresh into this delay
|
||||||
// holding off new updates in case of heavy refresh routines.
|
// holding off new updates in case of heavy refresh routines.
|
||||||
refreshSuspended()
|
refreshSuspended()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var collectorJob: Job? = null
|
var collectorJob: Job? = null
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user