You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
805 B
Kotlin
21 lines
805 B
Kotlin
package me.eater.hefbrug.collector.impl
|
|
|
|
import me.eater.hefbrug.collector.AbstractCollector
|
|
import me.eater.hefbrug.executor.ExecutionContext
|
|
import me.eater.hefbrug.definition.impl.PackageDefinition
|
|
import me.eater.hefbrug.state.ExistenceStatus
|
|
import me.eater.hefbrug.state.impl.PackageState
|
|
|
|
class PackageCollector(context: ExecutionContext) : AbstractCollector<PackageState, PackageDefinition>(context) {
|
|
override suspend fun collect(definition: PackageDefinition): PackageState {
|
|
val pm = context.getPackageManager()
|
|
|
|
return PackageState(definition.id).apply {
|
|
name = definition.state.name
|
|
status = if (pm.isInstalled(definition.state.name))
|
|
ExistenceStatus.Present
|
|
else
|
|
ExistenceStatus.Absent
|
|
}
|
|
}
|
|
} |