OSDN Git Service

AudioService: add fix for corrupted settings
authorEric Laurent <elaurent@google.com>
Wed, 24 Oct 2012 03:14:27 +0000 (20:14 -0700)
committerEric Laurent <elaurent@google.com>
Wed, 24 Oct 2012 03:14:27 +0000 (20:14 -0700)
Added correction of MODE_RINGER_STREAMS_AFFECTED setting in
case it is inconsistent when read from the database: ringtone,
notification and system streams are always affected by ringer mode.
A corruption of this setting persists accross reboots and propagates via
backup/restore causing devices to play notification and ringtones in silent mode.

Bug 7384750.

Change-Id: I23170413d01e6a8e34ef514f1516d7b9ab8bc656

media/java/android/media/AudioService.java

index dd320a0..aa0d8c3 100644 (file)
@@ -670,6 +670,12 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
                     ((1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_NOTIFICATION)|
                      (1 << AudioSystem.STREAM_SYSTEM)|(1 << AudioSystem.STREAM_SYSTEM_ENFORCED)),
                      UserHandle.USER_CURRENT);
+
+            // ringtone, notification and system streams are always affected by ringer mode
+            mRingerModeAffectedStreams |= (1 << AudioSystem.STREAM_RING)|
+                                            (1 << AudioSystem.STREAM_NOTIFICATION)|
+                                            (1 << AudioSystem.STREAM_SYSTEM);
+
             if (mVoiceCapable) {
                 mRingerModeAffectedStreams &= ~(1 << AudioSystem.STREAM_MUSIC);
             } else {