am e828b6c0: Merge "AudioService: Restore ringer-mode validation check." into lmp-mr1-dev
* commit 'e828b6c034f7330ee70d72d1af979b0a35f883d9': AudioService: Restore ringer-mode validation check.
This commit is contained in:
@@ -512,8 +512,11 @@ public class AudioManager {
|
|||||||
*/
|
*/
|
||||||
public static final int RINGER_MODE_NORMAL = 2;
|
public static final int RINGER_MODE_NORMAL = 2;
|
||||||
|
|
||||||
// maximum valid ringer mode value. Values must start from 0 and be contiguous.
|
/**
|
||||||
private static final int RINGER_MODE_MAX = RINGER_MODE_NORMAL;
|
* Maximum valid ringer mode value. Values must start from 0 and be contiguous.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final int RINGER_MODE_MAX = RINGER_MODE_NORMAL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vibrate type that corresponds to the ringer.
|
* Vibrate type that corresponds to the ringer.
|
||||||
@@ -887,7 +890,13 @@ public class AudioManager {
|
|||||||
if (ringerMode < 0 || ringerMode > RINGER_MODE_MAX) {
|
if (ringerMode < 0 || ringerMode > RINGER_MODE_MAX) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
IAudioService service = getService();
|
||||||
|
try {
|
||||||
|
return service.isValidRingerMode(ringerMode);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Dead object in isValidRingerMode", e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -843,7 +843,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
int ringerMode = ringerModeFromSettings;
|
int ringerMode = ringerModeFromSettings;
|
||||||
// sanity check in case the settings are restored from a device with incompatible
|
// sanity check in case the settings are restored from a device with incompatible
|
||||||
// ringer modes
|
// ringer modes
|
||||||
if (!AudioManager.isValidRingerMode(ringerMode)) {
|
if (!isValidRingerMode(ringerMode)) {
|
||||||
ringerMode = AudioManager.RINGER_MODE_NORMAL;
|
ringerMode = AudioManager.RINGER_MODE_NORMAL;
|
||||||
}
|
}
|
||||||
if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
|
if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
|
||||||
@@ -1733,17 +1733,22 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ensureValidRingerMode(int ringerMode) {
|
private void ensureValidRingerMode(int ringerMode) {
|
||||||
if (!AudioManager.isValidRingerMode(ringerMode)) {
|
if (!isValidRingerMode(ringerMode)) {
|
||||||
throw new IllegalArgumentException("Bad ringer mode " + ringerMode);
|
throw new IllegalArgumentException("Bad ringer mode " + ringerMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @see AudioManager#isValidRingerMode(int) */
|
||||||
|
public boolean isValidRingerMode(int ringerMode) {
|
||||||
|
return ringerMode >= 0 && ringerMode <= AudioManager.RINGER_MODE_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
/** @see AudioManager#setRingerMode(int) */
|
/** @see AudioManager#setRingerMode(int) */
|
||||||
public void setRingerMode(int ringerMode, boolean checkZen) {
|
public void setRingerMode(int ringerMode, boolean checkZen) {
|
||||||
if (mUseFixedVolume || isPlatformTelevision()) {
|
if (mUseFixedVolume || isPlatformTelevision()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ensureValidRingerMode(ringerMode);
|
||||||
if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
|
if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
|
||||||
ringerMode = AudioManager.RINGER_MODE_SILENT;
|
ringerMode = AudioManager.RINGER_MODE_SILENT;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ interface IAudioService {
|
|||||||
|
|
||||||
int getRingerMode();
|
int getRingerMode();
|
||||||
|
|
||||||
|
boolean isValidRingerMode(int ringerMode);
|
||||||
|
|
||||||
void setVibrateSetting(int vibrateType, int vibrateSetting);
|
void setVibrateSetting(int vibrateType, int vibrateSetting);
|
||||||
|
|
||||||
int getVibrateSetting(int vibrateType);
|
int getVibrateSetting(int vibrateType);
|
||||||
|
|||||||
Reference in New Issue
Block a user