FM: do not process Headset insert intent when FM off from Application
Change-Id: I8b3ca15fd2f81d2c572a577a456b85f3995341dd
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 6294037..ae85350 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -244,6 +244,7 @@
private boolean mFmA2dpDisabled;
private boolean mEventReceived = false;
+ private boolean isfmOffFromApplication = false;
public FMRadioService() {
}
@@ -702,6 +703,10 @@
// if headset is plugged out it is required to disable
// in minimal duration to avoid race conditions with
// audio policy manager switch audio to speaker.
+ if (isfmOffFromApplication) {
+ Log.d(LOGTAG, "fm is off from Application, bail out");
+ return;
+ }
mHandler.removeCallbacks(mHeadsetPluginHandler);
mHandler.post(mHeadsetPluginHandler);
} else if(mA2dpDeviceState.isA2dpStateChange(action) &&
@@ -2502,6 +2507,7 @@
{
try {
mReceiver = new FmReceiver(FMRADIO_DEVICE_FD_STRING, fmCallbacks);
+ isfmOffFromApplication = false;
}
catch (InstantiationException e)
{
@@ -2676,6 +2682,10 @@
Log.d(LOGTAG, "FM application close button pressed or antenna removed");
mSession.setActive(false);
}
+ if(off_from == FM_OFF_FROM_APPLICATION) {
+ Log.d(LOGTAG, "FM off from Application");
+ isfmOffFromApplication = true;
+ }
//stop Notification
stopNotification();