diff options
| -rw-r--r-- | media/java/android/media/MediaRouter.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index d733ad9085d1..70ab8632a889 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -600,14 +600,20 @@ public class MediaRouter { @Override public void onRestoreRoute() { - // Skip restoring route if the selected route is not a system audio route, or - // MediaRouter is initializing. - if ((mSelectedRoute != mDefaultAudioVideo && mSelectedRoute != mBluetoothA2dpRoute) - || mSelectedRoute == null) { - return; - } - Log.v(TAG, "onRestoreRoute() : a2dp=" + isBluetoothA2dpOn()); - mSelectedRoute.select(); + mHandler.post(new Runnable() { + @Override + public void run() { + // Skip restoring route if the selected route is not a system audio route, + // MediaRouter is initializing, or mClient was changed. + if (Client.this != mClient || mSelectedRoute == null + || (mSelectedRoute != mDefaultAudioVideo + && mSelectedRoute != mBluetoothA2dpRoute)) { + return; + } + Log.v(TAG, "onRestoreRoute() : route=" + mSelectedRoute); + mSelectedRoute.select(); + } + }); } } } |