am e7f301a0: Merge "Audio policy: Fix deprecated shouldVibrate api." into lmp-mr1-dev
* commit 'e7f301a05344376f9065ef09e3b3ef360469bcb3': Audio policy: Fix deprecated shouldVibrate api.
This commit is contained in:
@@ -1841,12 +1841,22 @@ public class AudioService extends IAudioService.Stub {
|
||||
}
|
||||
|
||||
public void setRingerModeExternal(int ringerMode, String caller) {
|
||||
setRingerMode(ringerMode, caller, true /*external*/);
|
||||
final long identity = Binder.clearCallingIdentity();
|
||||
try {
|
||||
setRingerMode(ringerMode, caller, true /*external*/);
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(identity);
|
||||
}
|
||||
}
|
||||
|
||||
public void setRingerModeInternal(int ringerMode, String caller) {
|
||||
enforceSelfOrSystemUI("setRingerModeInternal");
|
||||
setRingerMode(ringerMode, caller, false /*external*/);
|
||||
final long identity = Binder.clearCallingIdentity();
|
||||
try {
|
||||
setRingerMode(ringerMode, caller, false /*external*/);
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(identity);
|
||||
}
|
||||
}
|
||||
|
||||
private void setRingerMode(int ringerMode, String caller, boolean external) {
|
||||
@@ -1860,26 +1870,28 @@ public class AudioService extends IAudioService.Stub {
|
||||
if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
|
||||
ringerMode = AudioManager.RINGER_MODE_SILENT;
|
||||
}
|
||||
final int ringerModeInternal = getRingerModeInternal();
|
||||
final int ringerModeExternal = getRingerModeExternal();
|
||||
if (external) {
|
||||
setRingerModeExt(ringerMode);
|
||||
if (mRingerModeDelegate != null) {
|
||||
ringerMode = mRingerModeDelegate.onSetRingerModeExternal(ringerModeExternal,
|
||||
ringerMode, caller, ringerModeInternal);
|
||||
synchronized (mSettingsLock) {
|
||||
final int ringerModeInternal = getRingerModeInternal();
|
||||
final int ringerModeExternal = getRingerModeExternal();
|
||||
if (external) {
|
||||
setRingerModeExt(ringerMode);
|
||||
if (mRingerModeDelegate != null) {
|
||||
ringerMode = mRingerModeDelegate.onSetRingerModeExternal(ringerModeExternal,
|
||||
ringerMode, caller, ringerModeInternal);
|
||||
}
|
||||
if (ringerMode != ringerModeInternal) {
|
||||
setRingerModeInt(ringerMode, true /*persist*/);
|
||||
}
|
||||
} else /*internal*/ {
|
||||
if (ringerMode != ringerModeInternal) {
|
||||
setRingerModeInt(ringerMode, true /*persist*/);
|
||||
}
|
||||
if (mRingerModeDelegate != null) {
|
||||
ringerMode = mRingerModeDelegate.onSetRingerModeInternal(ringerModeInternal,
|
||||
ringerMode, caller, ringerModeExternal);
|
||||
}
|
||||
setRingerModeExt(ringerMode);
|
||||
}
|
||||
if (ringerMode != ringerModeInternal) {
|
||||
setRingerModeInt(ringerMode, true /*persist*/);
|
||||
}
|
||||
} else /*internal*/ {
|
||||
if (ringerMode != ringerModeInternal) {
|
||||
setRingerModeInt(ringerMode, true /*persist*/);
|
||||
}
|
||||
if (mRingerModeDelegate != null) {
|
||||
ringerMode = mRingerModeDelegate.onSetRingerModeInternal(ringerModeInternal,
|
||||
ringerMode, caller, ringerModeExternal);
|
||||
}
|
||||
setRingerModeExt(ringerMode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1968,10 +1980,10 @@ public class AudioService extends IAudioService.Stub {
|
||||
switch (getVibrateSetting(vibrateType)) {
|
||||
|
||||
case AudioManager.VIBRATE_SETTING_ON:
|
||||
return getRingerModeInternal() != AudioManager.RINGER_MODE_SILENT;
|
||||
return getRingerModeExternal() != AudioManager.RINGER_MODE_SILENT;
|
||||
|
||||
case AudioManager.VIBRATE_SETTING_ONLY_SILENT:
|
||||
return getRingerModeInternal() == AudioManager.RINGER_MODE_VIBRATE;
|
||||
return getRingerModeExternal() == AudioManager.RINGER_MODE_VIBRATE;
|
||||
|
||||
case AudioManager.VIBRATE_SETTING_OFF:
|
||||
// return false, even for incoming calls
|
||||
|
||||
@@ -927,7 +927,7 @@ public class NotificationManagerService extends SystemService {
|
||||
Settings.Global.DEVICE_PROVISIONED, 0)) {
|
||||
mDisableNotificationEffects = true;
|
||||
}
|
||||
mZenModeHelper.updateZenMode();
|
||||
mZenModeHelper.readZenModeFromSetting();
|
||||
|
||||
mUserProfiles.updateCache(getContext());
|
||||
listenForCallState();
|
||||
|
||||
@@ -221,21 +221,26 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
}
|
||||
|
||||
public void setZenMode(int zenMode, String reason) {
|
||||
ZenLog.traceSetZenMode(zenMode, reason);
|
||||
Global.putInt(mContext.getContentResolver(), Global.ZEN_MODE, zenMode);
|
||||
setZenMode(zenMode, reason, true);
|
||||
}
|
||||
|
||||
public void updateZenMode() {
|
||||
final int oldMode = mZenMode;
|
||||
private void setZenMode(int zenMode, String reason, boolean setRingerMode) {
|
||||
ZenLog.traceSetZenMode(zenMode, reason);
|
||||
if (mZenMode == zenMode) return;
|
||||
ZenLog.traceUpdateZenMode(mZenMode, zenMode);
|
||||
mZenMode = zenMode;
|
||||
Global.putInt(mContext.getContentResolver(), Global.ZEN_MODE, mZenMode);
|
||||
if (setRingerMode) {
|
||||
applyZenToRingerMode();
|
||||
}
|
||||
applyRestrictions();
|
||||
mHandler.postDispatchOnZenModeChanged();
|
||||
}
|
||||
|
||||
public void readZenModeFromSetting() {
|
||||
final int newMode = Global.getInt(mContext.getContentResolver(),
|
||||
Global.ZEN_MODE, Global.ZEN_MODE_OFF);
|
||||
if (oldMode != newMode) {
|
||||
ZenLog.traceUpdateZenMode(oldMode, newMode);
|
||||
}
|
||||
mZenMode = newMode;
|
||||
applyRestrictions();
|
||||
onZenUpdated(oldMode, newMode);
|
||||
dispatchOnZenModeChanged();
|
||||
setZenMode(newMode, "setting");
|
||||
}
|
||||
|
||||
private void applyRestrictions() {
|
||||
@@ -297,18 +302,16 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
dispatchOnConfigChanged();
|
||||
final String val = Integer.toString(mConfig.hashCode());
|
||||
Global.putString(mContext.getContentResolver(), Global.ZEN_MODE_CONFIG_ETAG, val);
|
||||
updateZenMode();
|
||||
applyRestrictions();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onZenUpdated(int oldZen, int newZen) {
|
||||
private void applyZenToRingerMode() {
|
||||
if (mAudioManager == null) return;
|
||||
if (oldZen == newZen) return;
|
||||
|
||||
// force the ringer mode into compliance
|
||||
final int ringerModeInternal = mAudioManager.getRingerModeInternal();
|
||||
int newRingerModeInternal = ringerModeInternal;
|
||||
switch (newZen) {
|
||||
switch (mZenMode) {
|
||||
case Global.ZEN_MODE_NO_INTERRUPTIONS:
|
||||
if (ringerModeInternal != AudioManager.RINGER_MODE_SILENT) {
|
||||
mPreviousRingerMode = ringerModeInternal;
|
||||
@@ -337,7 +340,7 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
int ringerModeExternalOut = ringerModeNew;
|
||||
|
||||
int newZen = -1;
|
||||
switch(ringerModeNew) {
|
||||
switch (ringerModeNew) {
|
||||
case AudioManager.RINGER_MODE_SILENT:
|
||||
if (isChange) {
|
||||
if (mZenMode != Global.ZEN_MODE_NO_INTERRUPTIONS) {
|
||||
@@ -356,7 +359,7 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
break;
|
||||
}
|
||||
if (newZen != -1) {
|
||||
mHandler.postSetZenMode(newZen, "ringerModeInternal");
|
||||
setZenMode(newZen, "ringerModeInternal", false /*setRingerMode*/);
|
||||
}
|
||||
|
||||
if (isChange || newZen != -1 || ringerModeExternal != ringerModeExternalOut) {
|
||||
@@ -374,7 +377,7 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
final boolean isVibrate = ringerModeInternal == AudioManager.RINGER_MODE_VIBRATE;
|
||||
|
||||
int newZen = -1;
|
||||
switch(ringerModeNew) {
|
||||
switch (ringerModeNew) {
|
||||
case AudioManager.RINGER_MODE_SILENT:
|
||||
if (isChange) {
|
||||
if (mZenMode == Global.ZEN_MODE_OFF) {
|
||||
@@ -394,7 +397,7 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
break;
|
||||
}
|
||||
if (newZen != -1) {
|
||||
mHandler.postSetZenMode(newZen, "ringerModeExternal");
|
||||
setZenMode(newZen, "ringerModeExternal", false /*setRingerMode*/);
|
||||
}
|
||||
|
||||
ZenLog.traceSetRingerModeExternal(ringerModeOld, ringerModeNew, caller, ringerModeInternal,
|
||||
@@ -516,27 +519,28 @@ public class ZenModeHelper implements AudioManagerInternal.RingerModeDelegate {
|
||||
|
||||
public void update(Uri uri) {
|
||||
if (ZEN_MODE.equals(uri)) {
|
||||
updateZenMode();
|
||||
readZenModeFromSetting();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class H extends Handler {
|
||||
private static final int MSG_SET_ZEN = 1;
|
||||
private static final int MSG_DISPATCH = 1;
|
||||
|
||||
private H(Looper looper) {
|
||||
super(looper);
|
||||
}
|
||||
|
||||
private void postSetZenMode(int zen, String reason) {
|
||||
obtainMessage(MSG_SET_ZEN, zen, 0, reason).sendToTarget();
|
||||
private void postDispatchOnZenModeChanged() {
|
||||
removeMessages(MSG_DISPATCH);
|
||||
sendEmptyMessage(MSG_DISPATCH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch(msg.what) {
|
||||
case MSG_SET_ZEN:
|
||||
setZenMode(msg.arg1, (String) msg.obj);
|
||||
switch (msg.what) {
|
||||
case MSG_DISPATCH:
|
||||
dispatchOnZenModeChanged();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user