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();