From 8d4a88cebaa88389c2d4999b39ec31eba0cde3c1 Mon Sep 17 00:00:00 2001 From: Dibyendu Roy <dibyen@codeaurora.org> Date: Thu, 3 Dec 2015 12:21:53 +0530 Subject: [PATCH] FM: Fix ANR due to incorrect error handling in stopRecording stopRecording() API gets called from onRecordingStopped() callback function. As a result, when recording can't be stopped successfully in error scenarios, stopRecording() gets called in loop. This fix removes the call stopRecording() from callback function and does the required UI update. CRs-Fixed: 943288 Change-Id: I0e2ea2adeb0c603f16541d04a5a244bc1fcd51d7 --- fmapp2/src/com/caf/fmradio/FMRadio.java | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java index b025d4f..ff48847 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadio.java +++ b/fmapp2/src/com/caf/fmradio/FMRadio.java @@ -1811,15 +1811,6 @@ public class FMRadio extends Activity } private void stopRecording() { - mRecording = false; - DebugToasts("Stopped Recording", Toast.LENGTH_SHORT); - if(null != mRecordUpdateHandlerThread) { - mRecordUpdateHandlerThread.interrupt(); - } - if(null != mRecordingMsgTV) { - mRecordingMsgTV.setText(""); - setRecordingStartImage(); - } if (mService != null) { try { mService.stopRecording(); @@ -1827,7 +1818,6 @@ public class FMRadio extends Activity e.printStackTrace(); } } - invalidateOptionsMenu(); } private boolean isRecording() { @@ -3155,7 +3145,15 @@ public class FMRadio extends Activity } public void onRecordingStopped() { Log.d(LOGTAG, "mServiceCallbacks.onRecordingStopped:"); - stopRecording(); + mRecording = false; + if(null != mRecordUpdateHandlerThread) { + mRecordUpdateHandlerThread.interrupt(); + } + if(null != mRecordingMsgTV) { + mRecordingMsgTV.setText(""); + setRecordingStartImage(); + } + invalidateOptionsMenu(); } public void onRecordingStarted() { -- GitLab