Merge "Notify the system of all remote volume changes" into lmp-mr1-dev
This commit is contained in:
@@ -330,6 +330,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
|||||||
if (volumeBefore != mOptimisticVolume) {
|
if (volumeBefore != mOptimisticVolume) {
|
||||||
pushVolumeUpdate();
|
pushVolumeUpdate();
|
||||||
}
|
}
|
||||||
|
mService.notifyRemoteVolumeChanged(flags, this);
|
||||||
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "Adjusted optimistic volume to " + mOptimisticVolume + " max is "
|
Log.d(TAG, "Adjusted optimistic volume to " + mOptimisticVolume + " max is "
|
||||||
@@ -357,6 +358,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
|
|||||||
if (volumeBefore != mOptimisticVolume) {
|
if (volumeBefore != mOptimisticVolume) {
|
||||||
pushVolumeUpdate();
|
pushVolumeUpdate();
|
||||||
}
|
}
|
||||||
|
mService.notifyRemoteVolumeChanged(flags, this);
|
||||||
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "Set optimistic volume to " + mOptimisticVolume + " max is "
|
Log.d(TAG, "Set optimistic volume to " + mOptimisticVolume + " max is "
|
||||||
|
|||||||
@@ -143,6 +143,20 @@ public class MediaSessionService extends SystemService implements Monitor {
|
|||||||
mHandler.post(MessageHandler.MSG_SESSIONS_CHANGED, record.getUserId(), 0);
|
mHandler.post(MessageHandler.MSG_SESSIONS_CHANGED, record.getUserId(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tells the system UI that volume has changed on a remote session.
|
||||||
|
*/
|
||||||
|
public void notifyRemoteVolumeChanged(int flags, MediaSessionRecord session) {
|
||||||
|
if (mRvc == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
mRvc.remoteVolumeChanged(session.getControllerBinder(), flags);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.wtf(TAG, "Error sending volume change to system UI.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onSessionPlaystateChange(MediaSessionRecord record, int oldState, int newState) {
|
public void onSessionPlaystateChange(MediaSessionRecord record, int oldState, int newState) {
|
||||||
boolean updateSessions = false;
|
boolean updateSessions = false;
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
@@ -864,14 +878,6 @@ public class MediaSessionService extends SystemService implements Monitor {
|
|||||||
} else {
|
} else {
|
||||||
session.adjustVolume(direction, flags, getContext().getPackageName(),
|
session.adjustVolume(direction, flags, getContext().getPackageName(),
|
||||||
UserHandle.myUserId(), true);
|
UserHandle.myUserId(), true);
|
||||||
if (session.getPlaybackType() == PlaybackInfo.PLAYBACK_TYPE_REMOTE
|
|
||||||
&& mRvc != null && direction != MediaSessionManager.DIRECTION_MUTE) {
|
|
||||||
try {
|
|
||||||
mRvc.remoteVolumeChanged(session.getControllerBinder(), flags);
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.wtf(TAG, "Error sending volume change to system UI.", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user