From 9d41dc40263a5f5278ad18dec204e2ae4139f8c8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 20 May 2020 15:10:21 +0200 Subject: [PATCH] Fixed possible ANR when using auto answer --- app/src/main/java/org/linphone/LinphoneManager.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index 26b2ae6c8..ecb41084d 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -90,7 +90,7 @@ public class LinphoneManager implements SensorEventListener { private final SensorManager mSensorManager; private final Sensor mProximity; private final MediaScanner mMediaScanner; - private Timer mTimer, mAutoAnswerTimer; + private Timer mTimer; private final LinphonePreferences mPrefs; private Core mCore; @@ -182,8 +182,8 @@ public class LinphoneManager implements SensorEventListener { } else if (state == State.IncomingReceived && (LinphonePreferences.instance().isAutoAnswerEnabled()) && !getCallGsmON()) { - TimerTask lTask = - new TimerTask() { + LinphoneUtils.dispatchOnUIThreadAfter( + new Runnable() { @Override public void run() { if (mCore != null) { @@ -193,9 +193,8 @@ public class LinphoneManager implements SensorEventListener { } } } - }; - mAutoAnswerTimer = new Timer("Auto answer"); - mAutoAnswerTimer.schedule(lTask, mPrefs.getAutoAnswerTime()); + }, + mPrefs.getAutoAnswerTime()); } else if (state == State.End || state == State.Error) { if (mCore.getCallsNb() == 0) { // Disabling proximity sensor @@ -391,7 +390,6 @@ public class LinphoneManager implements SensorEventListener { if (mAudioManager != null) mAudioManager.destroy(); if (mTimer != null) mTimer.cancel(); - if (mAutoAnswerTimer != null) mAutoAnswerTimer.cancel(); if (mCore != null) { destroyCore();