diff --git a/parsely/src/main/java/com/parsely/parselyandroid/LocalStorageRepository.kt b/parsely/src/main/java/com/parsely/parselyandroid/LocalStorageRepository.kt index 6bc9bd24..1f1f28fc 100644 --- a/parsely/src/main/java/com/parsely/parselyandroid/LocalStorageRepository.kt +++ b/parsely/src/main/java/com/parsely/parselyandroid/LocalStorageRepository.kt @@ -14,7 +14,7 @@ internal interface QueueRepository { suspend fun insertEvents(toInsert: List?>) } -internal class LocalStorageRepository(private val context: Context): QueueRepository { +internal class LocalStorageRepository(private val context: Context) : QueueRepository { private val mutex = Mutex() @@ -38,21 +38,7 @@ internal class LocalStorageRepository(private val context: Context): QueueReposi } } - override suspend fun remove(toRemove: List?>) { - val storedEvents = getStoredQueue() - - mutex.withLock { - persistObject(storedEvents - toRemove.toSet()) - } - } - - /** - * Get the stored event queue from persistent storage. - * - * @return The stored queue of events. - */ - override suspend fun getStoredQueue(): ArrayList?> = mutex.withLock { - + private fun getInternalStoredQueue(): ArrayList?> { var storedQueue: ArrayList?> = ArrayList() try { val fis = context.applicationContext.openFileInput(STORAGE_KEY) @@ -74,15 +60,26 @@ internal class LocalStorageRepository(private val context: Context): QueueReposi return storedQueue } + override suspend fun remove(toRemove: List?>) = mutex.withLock { + val storedEvents = getInternalStoredQueue() + persistObject(storedEvents - toRemove.toSet()) + } + /** - * Save the event queue to persistent storage. + * Get the stored event queue from persistent storage. + * + * @return The stored queue of events. */ - override suspend fun insertEvents(toInsert: List?>){ - val storedEvents = getStoredQueue() + override suspend fun getStoredQueue(): ArrayList?> = mutex.withLock { + getInternalStoredQueue() + } - mutex.withLock { - persistObject(ArrayList((toInsert + storedEvents).distinct())) - } + /** + * Save the event queue to persistent storage. + */ + override suspend fun insertEvents(toInsert: List?>) = mutex.withLock { + val storedEvents = getInternalStoredQueue() + persistObject(ArrayList((toInsert + storedEvents).distinct())) } companion object {