diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java index a5e1d13afd9a9c98f6c46b31c3736300ba4415ba..80f800cc979dc072d8269341caae67e40e1f561f 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadioService.java +++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java @@ -979,13 +979,28 @@ public class FMRadioService extends Service && (key_action == KeyEvent.ACTION_DOWN)) { Log.d(LOGTAG, "SessionCallback: MEDIA_PLAY"); if (isAntennaAvailable() && mServiceInUse) { - fmOn(); - try { - if (mCallbacks != null ) { - mCallbacks.onEnabled(); + if (isFmOn()){ + //FM should be off when Headset hook pressed. + fmOff(); + try { + /* Notify the UI/Activity, only if the service is "bound" + * by an activity and if Callbacks are registered + * */ + if ((mServiceInUse) && (mCallbacks != null) ) { + mCallbacks.onDisabled(); + } + } catch (RemoteException e) { + e.printStackTrace(); + } + } else { + fmOn(); + try { + if (mCallbacks != null ) { + mCallbacks.onEnabled(); + } + } catch (RemoteException e) { + e.printStackTrace(); } - } catch (RemoteException e) { - e.printStackTrace(); } return true; }