VancedManager/feature-home/src/main/java/com/vanced/manager/feature/home/data/datasource/PkgIngormationDataSource.kt

30 lines
953 B
Kotlin

package com.vanced.manager.feature.home.data.datasource
import android.content.pm.PackageManager
import com.vanced.manager.feature.home.data.pkg.PkgManager
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
interface PkgInformationDataSource {
@Throws(PackageManager.NameNotFoundException::class)
suspend fun getVersionCode(packageName: String): Int
@Throws(PackageManager.NameNotFoundException::class)
suspend fun getVersionName(packageName: String): String
}
class PkgInformationDataSourceImpl(
private val pkgManager: PkgManager
) : PkgInformationDataSource {
override suspend fun getVersionCode(packageName: String): Int =
withContext(Dispatchers.IO) {
pkgManager.getVersionCode(packageName)
}
override suspend fun getVersionName(packageName: String): String =
withContext(Dispatchers.IO) {
pkgManager.getVersionName(packageName)
}
}