From 1314b05014f3f52dd4cc32440af15ab70fbd28fb Mon Sep 17 00:00:00 2001
From: Rupesh Tatiya <rtatiya@codeaurora.org>
Date: Thu, 25 Feb 2016 13:09:30 +0530
Subject: [PATCH] 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
---
 fmapp2/src/com/caf/fmradio/FMRadio.java        | 6 ------
 fmapp2/src/com/caf/fmradio/FMRadioService.java | 8 +++++++-
 2 files changed, 7 insertions(+), 7 deletions(-)

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 @@ public class FMRadio extends Activity
 
    private void disableRadio() {
       boolean bStatus = false;
-      boolean bSpeakerPhoneOn = isSpeakerEnabled();
 
       cancelSearch();
       endSleepTimer();
@@ -1698,11 +1697,6 @@ public class FMRadio extends Activity
             }
 
             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 @@ public class FMRadioService extends Service
    * Turn OFF FM Operations: This disables all the current FM operations             .
    */
    private void fmOperationsOff() {
+      // stop recording
       if (isFmRecordingOn())
       {
           stopRecording();
@@ -2147,14 +2148,19 @@ public class FMRadioService extends Service
                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");
-- 
GitLab