Skip to content

Commit 1ed95b2

Browse files
committed
537: make browse target resolver thread-safe
1 parent 863216b commit 1ed95b2

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import tachiyomi.i18n.MR
4040
import tachiyomi.presentation.core.i18n.stringResource
4141
import uy.kohesive.injekt.Injekt
4242
import uy.kohesive.injekt.api.get
43+
import java.util.concurrent.atomic.AtomicReference
4344

4445
data object BrowseTab : Tab {
4546

@@ -151,14 +152,18 @@ internal enum class BrowseSearchTarget {
151152
}
152153

153154
internal class BrowseReselectTargetResolver(
154-
private var lastKnownSearchTarget: BrowseSearchTarget = BrowseSearchTarget.UNKNOWN,
155+
initialSearchTarget: BrowseSearchTarget = BrowseSearchTarget.UNKNOWN,
155156
) {
157+
private val lastKnownSearchTarget = AtomicReference(initialSearchTarget)
158+
156159
fun updateForPage(page: Int) {
157-
lastKnownSearchTarget = updateBrowseSearchTarget(lastKnownSearchTarget, page)
160+
lastKnownSearchTarget.updateAndGet { current ->
161+
updateBrowseSearchTarget(current, page)
162+
}
158163
}
159164

160165
fun resolvedTarget(): BrowseSearchTarget {
161-
return resolveBrowseReselectTarget(lastKnownSearchTarget)
166+
return resolveBrowseReselectTarget(lastKnownSearchTarget.get())
162167
}
163168
}
164169

0 commit comments

Comments
 (0)