am afd01086
: Merge "Further volume improvements." into ics-mr1
* commit 'afd01086795c7c1f6950a709180b2361625b8b6a': Further volume improvements.
This commit is contained in:
@ -21,7 +21,6 @@ import static android.media.AudioManager.RINGER_MODE_SILENT;
|
||||
import static android.media.AudioManager.RINGER_MODE_VIBRATE;
|
||||
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.app.KeyguardManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.PendingIntent.CanceledException;
|
||||
import android.bluetooth.BluetoothA2dp;
|
||||
@ -320,8 +319,6 @@ public class AudioService extends IAudioService.Stub {
|
||||
private static final int NOTIFICATION_VOLUME_DELAY_MS = 5000;
|
||||
// previous volume adjustment direction received by checkForRingerModeChange()
|
||||
private int mPrevVolDirection = AudioManager.ADJUST_SAME;
|
||||
// Keyguard manager proxy
|
||||
private KeyguardManager mKeyguardManager;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Construction
|
||||
@ -506,10 +503,9 @@ public class AudioService extends IAudioService.Stub {
|
||||
streamType = getActiveStreamType(suggestedStreamType);
|
||||
}
|
||||
|
||||
// Play sounds on STREAM_RING only and if lock screen is not on.
|
||||
// Play sounds on STREAM_RING only.
|
||||
if ((flags & AudioManager.FLAG_PLAY_SOUND) != 0 &&
|
||||
((STREAM_VOLUME_ALIAS[streamType] != AudioSystem.STREAM_RING) ||
|
||||
(mKeyguardManager != null && mKeyguardManager.isKeyguardLocked()))) {
|
||||
((STREAM_VOLUME_ALIAS[streamType] != AudioSystem.STREAM_RING))) {
|
||||
flags &= ~AudioManager.FLAG_PLAY_SOUND;
|
||||
}
|
||||
|
||||
@ -2669,8 +2665,6 @@ public class AudioService extends IAudioService.Stub {
|
||||
sendMsg(mAudioHandler, MSG_LOAD_SOUND_EFFECTS, SHARED_MSG, SENDMSG_NOOP,
|
||||
0, 0, null, 0);
|
||||
|
||||
mKeyguardManager =
|
||||
(KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);
|
||||
mScoConnectionState = AudioManager.SCO_AUDIO_STATE_ERROR;
|
||||
resetBluetoothSco();
|
||||
getBluetoothHeadset();
|
||||
|
@ -56,6 +56,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
|
||||
|
||||
private static final String TAG = "GlobalActions";
|
||||
|
||||
private static final boolean SHOW_SILENT_TOGGLE = false;
|
||||
|
||||
private final Context mContext;
|
||||
private final AudioManager mAudioManager;
|
||||
|
||||
@ -187,29 +189,35 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
|
||||
}
|
||||
};
|
||||
|
||||
mItems = Lists.newArrayList(
|
||||
// silent mode
|
||||
mSilentModeToggle,
|
||||
// next: airplane mode
|
||||
mAirplaneModeOn,
|
||||
// last: power off
|
||||
new SinglePressAction(
|
||||
com.android.internal.R.drawable.ic_lock_power_off,
|
||||
R.string.global_action_power_off) {
|
||||
mItems = new ArrayList<Action>();
|
||||
|
||||
public void onPress() {
|
||||
// shutdown by making sure radio and power are handled accordingly.
|
||||
ShutdownThread.shutdown(mContext, true);
|
||||
}
|
||||
// silent mode
|
||||
if (SHOW_SILENT_TOGGLE) {
|
||||
mItems.add(mSilentModeToggle);
|
||||
}
|
||||
|
||||
public boolean showDuringKeyguard() {
|
||||
return true;
|
||||
}
|
||||
// next: airplane mode
|
||||
mItems.add(mAirplaneModeOn);
|
||||
|
||||
public boolean showBeforeProvisioning() {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
// last: power off
|
||||
mItems.add(
|
||||
new SinglePressAction(
|
||||
com.android.internal.R.drawable.ic_lock_power_off,
|
||||
R.string.global_action_power_off) {
|
||||
|
||||
public void onPress() {
|
||||
// shutdown by making sure radio and power are handled accordingly.
|
||||
ShutdownThread.shutdown(mContext, true);
|
||||
}
|
||||
|
||||
public boolean showDuringKeyguard() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean showBeforeProvisioning() {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
mAdapter = new MyAdapter();
|
||||
|
||||
|
@ -46,6 +46,10 @@ public abstract class KeyguardViewBase extends FrameLayout {
|
||||
private KeyguardViewCallback mCallback;
|
||||
private AudioManager mAudioManager;
|
||||
private TelephonyManager mTelephonyManager = null;
|
||||
// Whether the volume keys should be handled by keyguard. If true, then
|
||||
// they will be handled here for specific media types such as music, otherwise
|
||||
// the audio service will bring up the volume dialog.
|
||||
private static final boolean KEYGUARD_MANAGES_VOLUME = false;
|
||||
|
||||
// This is a faster way to draw the background on devices without hardware acceleration
|
||||
Drawable mBackgroundDrawable = new Drawable() {
|
||||
@ -203,24 +207,28 @@ public abstract class KeyguardViewBase extends FrameLayout {
|
||||
case KeyEvent.KEYCODE_VOLUME_UP:
|
||||
case KeyEvent.KEYCODE_VOLUME_DOWN:
|
||||
case KeyEvent.KEYCODE_VOLUME_MUTE: {
|
||||
synchronized (this) {
|
||||
if (mAudioManager == null) {
|
||||
mAudioManager = (AudioManager) getContext().getSystemService(
|
||||
Context.AUDIO_SERVICE);
|
||||
if (KEYGUARD_MANAGES_VOLUME) {
|
||||
synchronized (this) {
|
||||
if (mAudioManager == null) {
|
||||
mAudioManager = (AudioManager) getContext().getSystemService(
|
||||
Context.AUDIO_SERVICE);
|
||||
}
|
||||
}
|
||||
// Volume buttons should only function for music.
|
||||
if (mAudioManager.isMusicActive()) {
|
||||
// TODO: Actually handle MUTE.
|
||||
mAudioManager.adjustStreamVolume(
|
||||
AudioManager.STREAM_MUSIC,
|
||||
keyCode == KeyEvent.KEYCODE_VOLUME_UP
|
||||
? AudioManager.ADJUST_RAISE
|
||||
: AudioManager.ADJUST_LOWER,
|
||||
0);
|
||||
}
|
||||
// Don't execute default volume behavior
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
// Volume buttons should only function for music.
|
||||
if (mAudioManager.isMusicActive()) {
|
||||
// TODO: Actually handle MUTE.
|
||||
mAudioManager.adjustStreamVolume(
|
||||
AudioManager.STREAM_MUSIC,
|
||||
keyCode == KeyEvent.KEYCODE_VOLUME_UP
|
||||
? AudioManager.ADJUST_RAISE
|
||||
: AudioManager.ADJUST_LOWER,
|
||||
0);
|
||||
}
|
||||
// Don't execute default volume behavior
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (event.getAction() == KeyEvent.ACTION_UP) {
|
||||
|
Reference in New Issue
Block a user