From f2b19c8b1ff0543d6a9d73abe0f33385746b2abd Mon Sep 17 00:00:00 2001 From: Kyunglyul Hyun Date: Mon, 18 May 2020 18:29:11 +0900 Subject: Send last discovery preference to provider service To ensure discovery preference is delivered to the provider service, it delivers the discovery preference whenever the connection is established. Without this CL, discovery preference may not be delivered to the service when rebindIfDisconnected is called in the middle of connecting. Bug: 151128724 Test: cts test and atest mediaroutertest Change-Id: I723298f108a0a7d3217c997be362e43764313bae --- .../android/server/media/MediaRoute2ProviderServiceProxy.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java index a435f1e16b80..53205add0b38 100644 --- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java @@ -60,7 +60,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider private Connection mActiveConnection; private boolean mConnectionReady; - private RouteDiscoveryPreference mPendingDiscoveryPreference = null; + private RouteDiscoveryPreference mLastDiscoveryPreference = null; MediaRoute2ProviderServiceProxy(@NonNull Context context, @NonNull ComponentName componentName, int userId) { @@ -98,11 +98,10 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider @Override public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { + mLastDiscoveryPreference = discoveryPreference; if (mConnectionReady) { mActiveConnection.updateDiscoveryPreference(discoveryPreference); updateBinding(); - } else { - mPendingDiscoveryPreference = discoveryPreference; } } @@ -277,9 +276,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider private void onConnectionReady(Connection connection) { if (mActiveConnection == connection) { mConnectionReady = true; - if (mPendingDiscoveryPreference != null) { - updateDiscoveryPreference(mPendingDiscoveryPreference); - mPendingDiscoveryPreference = null; + if (mLastDiscoveryPreference != null) { + updateDiscoveryPreference(mLastDiscoveryPreference); } } } -- cgit v1.2.3-59-g8ed1b