Notification muting conditional to exclusive audio focus request

Summary of feature:
Do not mute notifications when speech recognition recording is
  active, but when an app has requested audio focus with
  AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE.

Implementation:
Move definition of AUDIOFOCUS_NONE to AudioManager where other
  audio focus codes are defined.
Add support for querying the current audio focus type.
When audio focus is requested as GAIN_TRANSIENT_EXCLUSIVE, make
  the corresponding loss by LOSS_TRANSIENT.
Before playing a notification, check whether GAIN_TRANSIENT_EXCLUSIVE
  has been requested.

Bug 8251963

Change-Id: I41edc77326b70639d2fdcb4642c53109995b72a8
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index bdf6129..3ac05fd 100644
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -1873,9 +1873,9 @@
                             }
                             mSoundNotification = r;
                             // do not play notifications if stream volume is 0 (typically because
-                            // ringer mode is silent) or if speech recognition is active.
+                            // ringer mode is silent) or if there is a user of exclusive audio focus
                             if ((audioManager.getStreamVolume(audioStreamType) != 0)
-                                    && !audioManager.isSpeechRecognitionActive()) {
+                                    && !audioManager.isAudioFocusExclusive()) {
                                 final long identity = Binder.clearCallingIdentity();
                                 try {
                                     final IRingtonePlayer player = mAudioService.getRingtonePlayer();