Coverage Summary for Class: MigrationManager (com.vsevolodganin.clicktrack.migration)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| MigrationManager |
0%
(0/3)
|
0%
(0/2)
|
0%
(0/9)
|
0%
(0/36)
|
| MigrationManager$MetroFactory |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/25)
|
| MigrationManager$MetroFactory$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/16)
|
| Total |
0%
(0/5)
|
0%
(0/2)
|
0%
(0/11)
|
0%
(0/77)
|
package com.vsevolodganin.clicktrack.migration
import com.vsevolodganin.clicktrack.common.ApplicationBuildConfig
import com.vsevolodganin.clicktrack.di.component.MainControllerScope
import com.vsevolodganin.clicktrack.storage.UserPreferencesRepository
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
@SingleIn(MainControllerScope::class)
@Inject
class MigrationManager(
private val userPreferencesRepository: UserPreferencesRepository,
private val canMigrate: Set<CanMigrate>,
private val applicationBuildConfig: ApplicationBuildConfig,
) {
fun tryMigrate() {
userPreferencesRepository.appVersionCode.edit { fromVersion ->
val toVersion = applicationBuildConfig.versionCode
if (fromVersion == toVersion) return@edit toVersion
canMigrate.forEach { it.migrate(fromVersion, toVersion) }
toVersion
}
}
}