Promotion of fm.lnx.2.1-00034.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
2028591 Ib38e4f622d57ead0c7a97a241280c9c9db57da8d Resume FM on telephony idle state
Change-Id: I7e3e05a8b015d7a1a561194db69e2f338d0e7c3e
CRs-Fixed: 2028591
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 6588571..76904eb 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -1449,33 +1449,31 @@
resolver.insert(uri, values);
}
- Runnable resumeAfterCall = new Runnable() {
- public void run() {
- if (getCallState() != TelephonyManager.CALL_STATE_IDLE)
- return;
+ private void resumeAfterCall() {
+ if (getCallState() != TelephonyManager.CALL_STATE_IDLE)
+ return;
- // start playing again
- if (!mResumeAfterCall)
- return;
+ // start playing again
+ if (!mResumeAfterCall)
+ return;
- // resume playback only if FM Radio was playing
- // when the call was answered
- if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse) {
- Log.d(LOGTAG, "Resuming after call:");
- if(!fmOn()) {
- return;
- }
- mResumeAfterCall = false;
- if (mCallbacks != null) {
- try {
- mCallbacks.onEnabled();
- } catch (RemoteException e) {
- e.printStackTrace();
- }
+ // resume playback only if FM Radio was playing
+ // when the call was answered
+ if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse) {
+ Log.d(LOGTAG, "Resuming after call:");
+ if(!fmOn()) {
+ return;
+ }
+ mResumeAfterCall = false;
+ if (mCallbacks != null) {
+ try {
+ mCallbacks.onEnabled();
+ } catch (RemoteException e) {
+ e.printStackTrace();
}
}
}
- };
+ }
private void fmActionOnCallState( int state ) {
//if Call Status is non IDLE we need to Mute FM as well stop recording if
@@ -1507,6 +1505,8 @@
mCallStatus = bTempCall;
mMuted = bTempMute;
}
+ } else if (TelephonyManager.CALL_STATE_IDLE == state) {
+ resumeAfterCall();
}
}
@@ -1625,11 +1625,7 @@
mStoppedOnFocusLoss = false;
if (mResumeAfterCall) {
Log.v(LOGTAG, "resumeAfterCall");
- if (getCallState() != TelephonyManager.CALL_STATE_IDLE) {
- mHandler.postDelayed(resumeAfterCall, 100);
- return;
- }
- mHandler.post(resumeAfterCall);
+ resumeAfterCall();
break;
}
if(false == mPlaybackInProgress)