Implemented determining OS type
This commit is contained in:
parent
d38f7b224b
commit
eac1d1da40
|
@ -0,0 +1,19 @@
|
||||||
|
package net.dankito.utils.multiplatform.os
|
||||||
|
|
||||||
|
|
||||||
|
open class Os(open val osHelper: OsHelper = OsHelper()) {
|
||||||
|
|
||||||
|
open val osType: OsType
|
||||||
|
get() = osHelper.osType
|
||||||
|
|
||||||
|
|
||||||
|
open val isRunningOnJvm: Boolean
|
||||||
|
get() = osType == OsType.JVM
|
||||||
|
|
||||||
|
open val isRunningOnAndroid: Boolean
|
||||||
|
get() = osType == OsType.Android
|
||||||
|
|
||||||
|
open val isRunningOniOS: Boolean
|
||||||
|
get() = osType == OsType.iOS
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package net.dankito.utils.multiplatform.os
|
||||||
|
|
||||||
|
|
||||||
|
expect class OsHelper {
|
||||||
|
|
||||||
|
val osType: OsType
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package net.dankito.utils.multiplatform.os
|
||||||
|
|
||||||
|
|
||||||
|
enum class OsType {
|
||||||
|
|
||||||
|
JVM,
|
||||||
|
|
||||||
|
Android,
|
||||||
|
|
||||||
|
iOS
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package net.dankito.utils.multiplatform.os
|
||||||
|
|
||||||
|
|
||||||
|
actual class OsHelper {
|
||||||
|
|
||||||
|
actual val osType = OsType.iOS
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package net.dankito.utils.multiplatform.os
|
||||||
|
|
||||||
|
|
||||||
|
actual open class OsHelper {
|
||||||
|
|
||||||
|
actual val osType: OsType
|
||||||
|
get() {
|
||||||
|
return if (isRunningOnAndroid) {
|
||||||
|
OsType.Android
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
OsType.JVM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
open val isRunningOnAndroid: Boolean = determineIsRunningOnAndroid()
|
||||||
|
|
||||||
|
|
||||||
|
protected open fun determineIsRunningOnAndroid(): Boolean {
|
||||||
|
try {
|
||||||
|
Class.forName("android.app.Activity")
|
||||||
|
return true
|
||||||
|
} catch (ex: Exception) { }
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue