mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Improve DelayedTrackerStore (#8109)
* Improve DelayedTrackerStore * Review changes
This commit is contained in:
		@@ -25,9 +25,9 @@ class DelayedTrackingStore(context: Context) {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun clear() {
 | 
			
		||||
    fun remove(track: Track) {
 | 
			
		||||
        preferences.edit {
 | 
			
		||||
            clear()
 | 
			
		||||
            remove(track.id.toString())
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,9 +14,8 @@ import eu.kanade.domain.track.interactor.GetTracks
 | 
			
		||||
import eu.kanade.domain.track.interactor.InsertTrack
 | 
			
		||||
import eu.kanade.domain.track.model.toDbTrack
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackManager
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.withIOContext
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import kotlinx.coroutines.Dispatchers
 | 
			
		||||
import kotlinx.coroutines.withContext
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
@@ -33,9 +32,9 @@ class DelayedTrackingUpdateJob(context: Context, workerParams: WorkerParameters)
 | 
			
		||||
        val trackManager = Injekt.get<TrackManager>()
 | 
			
		||||
        val delayedTrackingStore = Injekt.get<DelayedTrackingStore>()
 | 
			
		||||
 | 
			
		||||
        withContext(Dispatchers.IO) {
 | 
			
		||||
        withIOContext {
 | 
			
		||||
            val tracks = delayedTrackingStore.getItems().mapNotNull {
 | 
			
		||||
                val manga = getManga.await(it.mangaId) ?: return@withContext
 | 
			
		||||
                val manga = getManga.await(it.mangaId) ?: return@withIOContext
 | 
			
		||||
                getTracks.await(manga.id)
 | 
			
		||||
                    .find { track -> track.id == it.trackId }
 | 
			
		||||
                    ?.copy(lastChapterRead = it.lastChapterRead.toDouble())
 | 
			
		||||
@@ -48,12 +47,11 @@ class DelayedTrackingUpdateJob(context: Context, workerParams: WorkerParameters)
 | 
			
		||||
                        service.update(track.toDbTrack(), true)
 | 
			
		||||
                        insertTrack.await(track)
 | 
			
		||||
                    }
 | 
			
		||||
                    delayedTrackingStore.remove(track)
 | 
			
		||||
                } catch (e: Exception) {
 | 
			
		||||
                    logcat(LogPriority.ERROR, e)
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            delayedTrackingStore.clear()
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return Result.success()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user