summaryrefslogtreecommitdiffstats
path: root/fmapp2/src/com/caf/fmradio/FMRadioService.java
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-04-22 15:36:43 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-04-22 15:36:43 -0700
commit5fda6f9b29f62b20078bc04520faf363feff6d38 (patch)
tree9fec6af10ce79a2735fc2884d3e59976f2355219 /fmapp2/src/com/caf/fmradio/FMRadioService.java
parent69e94c64b880f69ffec73e468e146fee3ef40bd9 (diff)
parentfd50fd447f34e8310c88f70e3686b8bfffa293b4 (diff)
downloadandroid_hardware_qcom_fm-5fda6f9b29f62b20078bc04520faf363feff6d38.tar.gz
android_hardware_qcom_fm-5fda6f9b29f62b20078bc04520faf363feff6d38.tar.bz2
android_hardware_qcom_fm-5fda6f9b29f62b20078bc04520faf363feff6d38.zip
Merge "FM: Fix the audio noise issue"
Diffstat (limited to 'fmapp2/src/com/caf/fmradio/FMRadioService.java')
-rw-r--r--fmapp2/src/com/caf/fmradio/FMRadioService.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 565537f..1f2f60f 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -106,6 +106,7 @@ public class FMRadioService extends Service
private boolean mSleepActive = false;
private BroadcastReceiver mRecordTimeoutListener = null;
private BroadcastReceiver mDelayedServiceStopListener = null;
+ private BroadcastReceiver mAudioBecomeNoisyListener = null;
private boolean mOverA2DP = false;
private BroadcastReceiver mFmMediaButtonListener;
private IFMRadioServiceCallbacks mCallbacks;
@@ -204,6 +205,7 @@ public class FMRadioService extends Service
// registering media button receiver seperately as we need to set
// different priority for receiving media events
registerFmMediaButtonReceiver();
+ registerAudioBecomeNoisy();
if ( false == SystemProperties.getBoolean("ro.fm.mulinst.recording.support",true)) {
mSingleRecordingInstanceSupported = true;
}
@@ -257,6 +259,10 @@ public class FMRadioService extends Service
unregisterReceiver(mFmMediaButtonListener);
mFmMediaButtonListener = null;
}
+ if (mAudioBecomeNoisyListener != null) {
+ unregisterReceiver(mAudioBecomeNoisyListener);
+ mAudioBecomeNoisyListener = null;
+ }
if (mSleepExpiredListener != null ) {
unregisterReceiver(mSleepExpiredListener);
mSleepExpiredListener = null;
@@ -505,6 +511,40 @@ public class FMRadioService extends Service
}
}
+ public void registerAudioBecomeNoisy() {
+ if (mAudioBecomeNoisyListener == null) {
+ mAudioBecomeNoisyListener = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(LOGTAG, "FMMediaButtonIntentReceiver.AUDIO_BECOMING_NOISY");
+ String intentAction = intent.getAction();
+ if (FMMediaButtonIntentReceiver.AUDIO_BECOMING_NOISY.equals(intentAction)) {
+ if (isFmOn())
+ {
+ /* Disable FM and let the UI know */
+ 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();
+ }
+ }
+ }
+ }
+ };
+ IntentFilter intentFilter = new IntentFilter(FMMediaButtonIntentReceiver.AUDIO_BECOMING_NOISY);
+ registerReceiver(mAudioBecomeNoisyListener, intentFilter);
+ }
+ }
+
public void registerMusicServiceCommandReceiver() {
if (mMusicCommandListener == null) {
mMusicCommandListener = new BroadcastReceiver() {
@@ -599,6 +639,8 @@ public class FMRadioService extends Service
/* Update the UI based on the state change of the headset/antenna*/
if(!isAntennaAvailable())
{
+ if (!isFmOn())
+ return;
/* Disable FM and let the UI know */
fmOff();
try