Fixed crash if proximity sensor isn't available
This commit is contained in:
parent
11a83b71eb
commit
e974335a06
1 changed files with 18 additions and 7 deletions
|
@ -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,13 +58,18 @@ abstract class ProximitySensorActivity : GenericActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
|
try {
|
||||||
proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)
|
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
|
||||||
proximityWakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager)
|
proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)
|
||||||
.newWakeLock(
|
proximityWakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager)
|
||||||
PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
|
.newWakeLock(
|
||||||
"$packageName;proximity_sensor"
|
PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
|
||||||
)
|
"$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")
|
||||||
|
|
Loading…
Reference in a new issue