Reset FM audio settings on off.
When FM is either turned off or factory reset is done or headset is pulled
out, unmute the audio and restore audio path to system default.
CRs-Fixed: 981687
Change-Id: Ibb9f18e49fdcd9f07cea4006748bab48bd87216c
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 9c44add..909a14c 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -1679,7 +1679,6 @@
private void disableRadio() {
boolean bStatus = false;
- boolean bSpeakerPhoneOn = isSpeakerEnabled();
cancelSearch();
endSleepTimer();
@@ -1698,11 +1697,6 @@
}
enableRadioOnOffUI();
- // restore default wired headset on FM power off
- if (bSpeakerPhoneOn) {
- mService.enableSpeaker(false);
- mSpeakerButton.setImageResource(R.drawable.btn_earphone);
- }
}catch (RemoteException e) {
e.printStackTrace();
}
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 0231997..83018f5 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -2137,6 +2137,7 @@
* Turn OFF FM Operations: This disables all the current FM operations .
*/
private void fmOperationsOff() {
+ // stop recording
if (isFmRecordingOn())
{
stopRecording();
@@ -2147,14 +2148,19 @@
return;
}
}
+ // disable audio path
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if(audioManager != null)
{
Log.d(LOGTAG, "audioManager.setFmRadioOn = false \n" );
stopFM();
- //audioManager.setParameters("FMRadioOn=false");
Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
}
+ // reset FM audio settings
+ if (isSpeakerEnabled() == true)
+ enableSpeaker(false);
+ if (isMuted() == true)
+ unMute();
if (isAnalogModeEnabled()) {
SystemProperties.set("hw.fm.isAnalog","false");