1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-14 13:41:12 +00:00

Fix npe when registering the sensors.

This commit is contained in:
Fredia Huya-Kouadio
2023-07-19 16:14:45 -07:00
parent 031aa99d31
commit 867fc02551

View File

@@ -88,16 +88,16 @@ class Godot(private val context: Context) : SensorEventListener {
private val mSensorManager: SensorManager by lazy { private val mSensorManager: SensorManager by lazy {
requireActivity().getSystemService(Context.SENSOR_SERVICE) as SensorManager requireActivity().getSystemService(Context.SENSOR_SERVICE) as SensorManager
} }
private val mAccelerometer: Sensor by lazy { private val mAccelerometer: Sensor? by lazy {
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
} }
private val mGravity: Sensor by lazy { private val mGravity: Sensor? by lazy {
mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY)
} }
private val mMagnetometer: Sensor by lazy { private val mMagnetometer: Sensor? by lazy {
mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD)
} }
private val mGyroscope: Sensor by lazy { private val mGyroscope: Sensor? by lazy {
mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE)
} }
private val mClipboard: ClipboardManager by lazy { private val mClipboard: ClipboardManager by lazy {
@@ -492,10 +492,18 @@ class Godot(private val context: Context) : SensorEventListener {
} }
renderView!!.onActivityResumed() renderView!!.onActivityResumed()
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME) if (mAccelerometer != null) {
mSensorManager.registerListener(this, mGravity, SensorManager.SENSOR_DELAY_GAME) mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME)
mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME) }
mSensorManager.registerListener(this, mGyroscope, SensorManager.SENSOR_DELAY_GAME) if (mGravity != null) {
mSensorManager.registerListener(this, mGravity, SensorManager.SENSOR_DELAY_GAME)
}
if (mMagnetometer != null) {
mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME)
}
if (mGyroscope != null) {
mSensorManager.registerListener(this, mGyroscope, SensorManager.SENSOR_DELAY_GAME)
}
if (useImmersive) { if (useImmersive) {
val window = requireActivity().window val window = requireActivity().window
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or