Loading media/java/android/media/AudioService.java +16 −15 Original line number Original line Diff line number Diff line Loading @@ -1558,21 +1558,29 @@ public class AudioService extends IAudioService.Stub { private boolean checkForRingerModeChange(int oldIndex, int direction) { private boolean checkForRingerModeChange(int oldIndex, int direction) { boolean adjustVolumeIndex = true; boolean adjustVolumeIndex = true; int newRingerMode = mRingerMode; int newRingerMode = mRingerMode; int uiIndex = (oldIndex + 5) / 10; if (mRingerMode == AudioManager.RINGER_MODE_NORMAL) { if (mRingerMode == AudioManager.RINGER_MODE_NORMAL) { // audible mode, at the bottom of the scale if ((direction == AudioManager.ADJUST_LOWER) && (uiIndex <= 1)) { if ((direction == AudioManager.ADJUST_LOWER && // enter silent mode if current index is the last audible one and not repeating a mPrevVolDirection != AudioManager.ADJUST_LOWER) && // volume key down ((oldIndex + 5) / 10 == 0)) { if (mPrevVolDirection != AudioManager.ADJUST_LOWER) { // "silent mode", but which one? // "silent mode", but which one? newRingerMode = System.getInt(mContentResolver, System.VIBRATE_IN_SILENT, 1) == 1 newRingerMode = System.getInt(mContentResolver, System.VIBRATE_IN_SILENT, 1) == 1 ? AudioManager.RINGER_MODE_VIBRATE ? AudioManager.RINGER_MODE_VIBRATE : AudioManager.RINGER_MODE_SILENT; : AudioManager.RINGER_MODE_SILENT; } } if (uiIndex == 0) { adjustVolumeIndex = false; } } } else { } else { if (direction == AudioManager.ADJUST_RAISE) { if (direction == AudioManager.ADJUST_RAISE) { // exiting silent mode // exiting silent mode newRingerMode = AudioManager.RINGER_MODE_NORMAL; newRingerMode = AudioManager.RINGER_MODE_NORMAL; if (uiIndex != 0) { adjustVolumeIndex = false; } } else { } else { // prevent last audible index to reach 0 // prevent last audible index to reach 0 adjustVolumeIndex = false; adjustVolumeIndex = false; Loading @@ -1581,13 +1589,6 @@ public class AudioService extends IAudioService.Stub { if (newRingerMode != mRingerMode) { if (newRingerMode != mRingerMode) { setRingerMode(newRingerMode); setRingerMode(newRingerMode); /* * If we are changing ringer modes, do not increment/decrement the * volume index. Instead, the handler for the message above will * take care of changing the index. */ adjustVolumeIndex = false; } } mPrevVolDirection = direction; mPrevVolDirection = direction; Loading Loading
media/java/android/media/AudioService.java +16 −15 Original line number Original line Diff line number Diff line Loading @@ -1558,21 +1558,29 @@ public class AudioService extends IAudioService.Stub { private boolean checkForRingerModeChange(int oldIndex, int direction) { private boolean checkForRingerModeChange(int oldIndex, int direction) { boolean adjustVolumeIndex = true; boolean adjustVolumeIndex = true; int newRingerMode = mRingerMode; int newRingerMode = mRingerMode; int uiIndex = (oldIndex + 5) / 10; if (mRingerMode == AudioManager.RINGER_MODE_NORMAL) { if (mRingerMode == AudioManager.RINGER_MODE_NORMAL) { // audible mode, at the bottom of the scale if ((direction == AudioManager.ADJUST_LOWER) && (uiIndex <= 1)) { if ((direction == AudioManager.ADJUST_LOWER && // enter silent mode if current index is the last audible one and not repeating a mPrevVolDirection != AudioManager.ADJUST_LOWER) && // volume key down ((oldIndex + 5) / 10 == 0)) { if (mPrevVolDirection != AudioManager.ADJUST_LOWER) { // "silent mode", but which one? // "silent mode", but which one? newRingerMode = System.getInt(mContentResolver, System.VIBRATE_IN_SILENT, 1) == 1 newRingerMode = System.getInt(mContentResolver, System.VIBRATE_IN_SILENT, 1) == 1 ? AudioManager.RINGER_MODE_VIBRATE ? AudioManager.RINGER_MODE_VIBRATE : AudioManager.RINGER_MODE_SILENT; : AudioManager.RINGER_MODE_SILENT; } } if (uiIndex == 0) { adjustVolumeIndex = false; } } } else { } else { if (direction == AudioManager.ADJUST_RAISE) { if (direction == AudioManager.ADJUST_RAISE) { // exiting silent mode // exiting silent mode newRingerMode = AudioManager.RINGER_MODE_NORMAL; newRingerMode = AudioManager.RINGER_MODE_NORMAL; if (uiIndex != 0) { adjustVolumeIndex = false; } } else { } else { // prevent last audible index to reach 0 // prevent last audible index to reach 0 adjustVolumeIndex = false; adjustVolumeIndex = false; Loading @@ -1581,13 +1589,6 @@ public class AudioService extends IAudioService.Stub { if (newRingerMode != mRingerMode) { if (newRingerMode != mRingerMode) { setRingerMode(newRingerMode); setRingerMode(newRingerMode); /* * If we are changing ringer modes, do not increment/decrement the * volume index. Instead, the handler for the message above will * take care of changing the index. */ adjustVolumeIndex = false; } } mPrevVolDirection = direction; mPrevVolDirection = direction; Loading