Fixed crash if proximity sensor isn't available

This commit is contained in:
Sylvain Berfini 2020-04-24 15:06:04 +02:00
parent 11a83b71eb
commit e974335a06

View file

@ -34,6 +34,7 @@ abstract class ProximitySensorActivity : GenericActivity() {
private lateinit var sensorManager: SensorManager private lateinit var sensorManager: SensorManager
private lateinit var proximitySensor: Sensor private lateinit var proximitySensor: Sensor
private lateinit var proximityWakeLock: PowerManager.WakeLock private lateinit var proximityWakeLock: PowerManager.WakeLock
private var proximitySensorFound = false
private val proximityListener: SensorEventListener = object : SensorEventListener { private val proximityListener: SensorEventListener = object : SensorEventListener {
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) { } override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) { }
@ -57,6 +58,7 @@ abstract class ProximitySensorActivity : GenericActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
try {
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY) proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)
proximityWakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager) proximityWakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager)
@ -64,6 +66,10 @@ abstract class ProximitySensorActivity : GenericActivity() {
PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
"$packageName;proximity_sensor" "$packageName;proximity_sensor"
) )
proximitySensorFound = true
} catch (ise: IllegalStateException) {
Log.e("[Call Activity] Failed to get proximity sensor: $ise")
}
} }
override fun onResume() { override fun onResume() {
@ -85,6 +91,11 @@ abstract class ProximitySensorActivity : GenericActivity() {
} }
protected fun enableProximitySensor(enable: Boolean) { protected fun enableProximitySensor(enable: Boolean) {
if (!proximitySensorFound) {
Log.w("[Call Activity] Couldn't find proximity sensor in this device, skipping")
return
}
if (enable) { if (enable) {
if (!proximitySensorEnabled) { if (!proximitySensorEnabled) {
Log.i("[Call Activity] Enabling proximity sensor listener") Log.i("[Call Activity] Enabling proximity sensor listener")