Merge "    Fix bug 2670395 and 2599698     When the user selects a "Silent" notification sound, the Uri encoded     path is an empty string. Setting this Uri as the data source of the     MediaPlayer used to play notifications caused the completion listener     to not be called, which with the AudioFocus logic causes the Music     app to pause and never resume. The NotificationPlayer modifications     cause the MediaPlayer for the notification to only request audio     focus when the data source is not empty.     The audio focus code in AudioService is defensively synchronized     against a unique lock, and the exception observed in bug 2670395     is explicitely caught in case another edge case wasn't caught by     this fix.     The AudioFocus handling in AudioManager is modified so only the     requestAudioFocus and abandonAudioFocus methods are meant to be     used, as registerAudioFocusListener and unregisterAudioFocusListener     provided no additional functionality over the request/abandon     methods. abandonAudioFocus() also removes the listener from the     map in AudioManager since after abandonning focus, the listener     would no longer be called." into froyo