Merge "Audio doesn't resume after video recording"
diff --git a/fmapp2/AndroidManifest.xml b/fmapp2/AndroidManifest.xml
index bc383fe..482a85e 100644
--- a/fmapp2/AndroidManifest.xml
+++ b/fmapp2/AndroidManifest.xml
@@ -57,6 +57,7 @@
             android:clearTaskOnLaunch="true"
             android:allowTaskReparenting="true"
             android:launchMode="singleTask"
+            android:configChanges="keyboardHidden|orientation|screenSize"
             android:excludeFromRecents="false" >
 
             <intent-filter>
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 6561aec..fb5ca1a 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -41,6 +41,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.BroadcastReceiver;
+import android.content.res.Configuration;
 import android.media.AudioSystem;
 import android.media.AudioManager;
 import android.media.MediaRecorder;
@@ -429,6 +430,12 @@
    }
 
    @Override
+   public void onConfigurationChanged(Configuration newConfig) {
+       Log.d(LOGTAG, "onConfigurationChanged");
+       super.onConfigurationChanged(newConfig);
+   }
+
+   @Override
    public void onRestart() {
       Log.d(LOGTAG, "FMRadio: onRestart");
       try {
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index c5b4cbf..29ded29 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -2218,6 +2218,9 @@
       {
          Log.d(LOGTAG, "audioManager.setFmRadioOn = false \n" );
          stopFM();
+         unMute();
+         audioManager.abandonAudioFocus(mAudioFocusListener);
+         //audioManager.setParameters("FMRadioOn=false");
          Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
       }
       // reset FM audio settings
@@ -2269,14 +2272,13 @@
    private boolean fmOff() {
       boolean bStatus=false;
 
-      fmOperationsOff();
-
       // This will disable the FM radio device
       if (mReceiver != null)
       {
          bStatus = mReceiver.disable();
          mReceiver = null;
       }
+      fmOperationsOff();
       stop();
       return(bStatus);
    }
@@ -2286,11 +2288,6 @@
        if (off_from == FM_OFF_FROM_APPLICATION || off_from == FM_OFF_FROM_ANTENNA) {
            Log.d(LOGTAG, "FM application close button pressed or antenna removed");
            mSession.setActive(false);
-           AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
-           if (audioManager != null)
-               audioManager.abandonAudioFocus(mAudioFocusListener);
-           else
-               Log.d(LOGTAG, "Failed to get Audio Service");
        }
        return fmOff();
    }