Fix crashes
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package org.koitharu.kotatsu.tracker.data
|
||||
|
||||
import java.util.*
|
||||
import org.koitharu.kotatsu.core.db.entity.toManga
|
||||
import org.koitharu.kotatsu.core.db.entity.toMangaTags
|
||||
import org.koitharu.kotatsu.tracker.domain.model.TrackingLogItem
|
||||
import java.util.Date
|
||||
|
||||
fun TrackLogWithManga.toTrackingLogItem(counters: MutableMap<Long, Int>): TrackingLogItem {
|
||||
val chaptersList = trackLog.chapters.split('\n').filterNot { x -> x.isEmpty() }
|
||||
@@ -16,7 +16,7 @@ fun TrackLogWithManga.toTrackingLogItem(counters: MutableMap<Long, Int>): Tracki
|
||||
)
|
||||
}
|
||||
|
||||
private fun MutableMap<Long, Int>.decrement(key: Long, count: Int): Boolean {
|
||||
private fun MutableMap<Long, Int>.decrement(key: Long, count: Int): Boolean = synchronized(this) {
|
||||
val counter = get(key)
|
||||
if (counter == null || counter <= 0) {
|
||||
return false
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.koitharu.kotatsu.tracker.domain.model.MangaTracking
|
||||
import org.koitharu.kotatsu.tracker.domain.model.MangaUpdates
|
||||
import org.koitharu.kotatsu.tracker.domain.model.TrackingLogItem
|
||||
import java.util.Date
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import javax.inject.Inject
|
||||
|
||||
private const val NO_ID = 0L
|
||||
@@ -34,7 +35,7 @@ class TrackingRepository @Inject constructor(
|
||||
private val db: MangaDatabase,
|
||||
) {
|
||||
|
||||
private var isGcCalled = false
|
||||
private var isGcCalled = AtomicBoolean(false)
|
||||
|
||||
suspend fun getNewChaptersCount(mangaId: Long): Int {
|
||||
return db.tracksDao.findNewChapters(mangaId) ?: 0
|
||||
@@ -227,9 +228,8 @@ class TrackingRepository @Inject constructor(
|
||||
}
|
||||
|
||||
private suspend fun gcIfNotCalled() {
|
||||
if (!isGcCalled) {
|
||||
if (isGcCalled.compareAndSet(false, true)) {
|
||||
gc()
|
||||
isGcCalled = true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user