From 6d42131e371957e7c2fe0ae722f22b6b09801b77 Mon Sep 17 00:00:00 2001
From: kexiao <kexiao@codeaurora.org>
Date: Mon, 21 Dec 2015 16:04:00 +0800
Subject: [PATCH] FM: stop AudioTrack before switching output device

When FM sound comes out from speaker, turn off
FM then the sound come out from headset for 0.5s.
Make sure the AudioTrack is stopped before
switching output device.

CRs-Fixed: 940232
Change-Id: I55da27408371cad4af90a7ec3dc7e8a52736096c
---
 fmapp2/src/com/caf/fmradio/FMRadio.java        |  3 ---
 fmapp2/src/com/caf/fmradio/FMRadioService.java | 10 +++++-----
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 5cfd5a6..b025d4f 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -1675,9 +1675,6 @@ public class FMRadio extends Activity
       }
       if(mService != null) {
          try {
-            if(bSpeakerPhoneOn) {
-               mService.enableSpeaker(false);
-            }
             bStatus = mService.fmOff();
             enableRadioOnOffUI();
             if (bStatus == false) {
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 149c248..65e42bb 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -2108,11 +2108,6 @@ public class FMRadioService extends Service
    * Turn OFF FM Operations: This disables all the current FM operations             .
    */
    private void fmOperationsOff() {
-      if ( mSpeakerPhoneOn)
-      {
-          mSpeakerPhoneOn = false;
-          AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
-      }
       if (isFmRecordingOn())
       {
           stopRecording();
@@ -2161,6 +2156,11 @@ public class FMRadioService extends Service
               SystemProperties.set("hw.fm.isAnalog","false");
               misAnalogPathEnabled = false;
       }
+
+      if ( mSpeakerPhoneOn) {
+          mSpeakerPhoneOn = false;
+          AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+      }
    }
 
   /*
-- 
GitLab