summaryrefslogtreecommitdiffstats
path: root/platform/android/java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/java')
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/Godot.kt35
1 files changed, 15 insertions, 20 deletions
diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt
index 250680a25b..ce53aeebcb 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt
+++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt
@@ -85,6 +85,9 @@ class Godot(private val context: Context) : SensorEventListener {
private val TAG = Godot::class.java.simpleName
}
+ private val windowManager: WindowManager by lazy {
+ requireActivity().getSystemService(Context.WINDOW_SERVICE) as WindowManager
+ }
private val pluginRegistry: GodotPluginRegistry by lazy {
GodotPluginRegistry.getPluginRegistry()
}
@@ -818,11 +821,8 @@ class Godot(private val context: Context) : SensorEventListener {
if (values == null || values.size != 3) {
return null
}
- val display =
- (requireActivity().getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
- val displayRotation = display.rotation
val rotatedValues = FloatArray(3)
- when (displayRotation) {
+ when (windowManager.defaultDisplay.rotation) {
Surface.ROTATION_0 -> {
rotatedValues[0] = values[0]
rotatedValues[1] = values[1]
@@ -851,40 +851,35 @@ class Godot(private val context: Context) : SensorEventListener {
if (renderView == null) {
return
}
+
+ val rotatedValues = getRotatedValues(event.values)
+
when (event.sensor.type) {
Sensor.TYPE_ACCELEROMETER -> {
- getRotatedValues(event.values)?.let { rotatedValues ->
+ rotatedValues?.let {
renderView?.queueOnRenderThread {
- GodotLib.accelerometer(
- -rotatedValues[0], -rotatedValues[1], -rotatedValues[2]
- )
+ GodotLib.accelerometer(-it[0], -it[1], -it[2])
}
}
}
Sensor.TYPE_GRAVITY -> {
- getRotatedValues(event.values)?.let { rotatedValues ->
+ rotatedValues?.let {
renderView?.queueOnRenderThread {
- GodotLib.gravity(
- -rotatedValues[0], -rotatedValues[1], -rotatedValues[2]
- )
+ GodotLib.gravity(-it[0], -it[1], -it[2])
}
}
}
Sensor.TYPE_MAGNETIC_FIELD -> {
- getRotatedValues(event.values)?.let { rotatedValues ->
+ rotatedValues?.let {
renderView?.queueOnRenderThread {
- GodotLib.magnetometer(
- -rotatedValues[0], -rotatedValues[1], -rotatedValues[2]
- )
+ GodotLib.magnetometer(-it[0], -it[1], -it[2])
}
}
}
Sensor.TYPE_GYROSCOPE -> {
- getRotatedValues(event.values)?.let { rotatedValues ->
+ rotatedValues?.let {
renderView?.queueOnRenderThread {
- GodotLib.gyroscope(
- rotatedValues[0], rotatedValues[1], rotatedValues[2]
- )
+ GodotLib.gyroscope(it[0], it[1], it[2])
}
}
}