Files
GPS2Audio/app/src/main/kotlin/de/waypointaudio/util/AppVersion.kt
T
2026-05-30 05:42:44 +00:00

44 lines
1.4 KiB
Kotlin

package de.waypointaudio.util
import android.content.Context
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Build
/**
* Liefert die aktuelle App-Version zur Laufzeit aus dem PackageManager.
* Damit muss die Anzeige bei Versions-Updates nicht mehr manuell gepflegt werden.
*/
data class AppVersionInfo(
val versionName: String,
val versionCode: Long
) {
/** Anzeige-Format, z. B. "1.5.2-version-dialog (17)". */
val display: String get() = "$versionName ($versionCode)"
}
object AppVersion {
fun get(context: Context): AppVersionInfo {
val pm = context.packageManager
val pkg = context.packageName
val info: PackageInfo = try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
pm.getPackageInfo(pkg, PackageManager.PackageInfoFlags.of(0))
} else {
@Suppress("DEPRECATION")
pm.getPackageInfo(pkg, 0)
}
} catch (_: PackageManager.NameNotFoundException) {
return AppVersionInfo(versionName = "?", versionCode = 0L)
}
val name = info.versionName ?: "?"
val code = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
info.longVersionCode
} else {
@Suppress("DEPRECATION")
info.versionCode.toLong()
}
return AppVersionInfo(versionName = name, versionCode = code)
}
}