Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2b19c8b authored by Kyunglyul Hyun's avatar Kyunglyul Hyun
Browse files

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
parent a4403c2d
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -60,7 +60,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
    private Connection mActiveConnection;
    private Connection mActiveConnection;
    private boolean mConnectionReady;
    private boolean mConnectionReady;


    private RouteDiscoveryPreference mPendingDiscoveryPreference = null;
    private RouteDiscoveryPreference mLastDiscoveryPreference = null;


    MediaRoute2ProviderServiceProxy(@NonNull Context context, @NonNull ComponentName componentName,
    MediaRoute2ProviderServiceProxy(@NonNull Context context, @NonNull ComponentName componentName,
            int userId) {
            int userId) {
@@ -98,11 +98,10 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider


    @Override
    @Override
    public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
    public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
        mLastDiscoveryPreference = discoveryPreference;
        if (mConnectionReady) {
        if (mConnectionReady) {
            mActiveConnection.updateDiscoveryPreference(discoveryPreference);
            mActiveConnection.updateDiscoveryPreference(discoveryPreference);
            updateBinding();
            updateBinding();
        } else {
            mPendingDiscoveryPreference = discoveryPreference;
        }
        }
    }
    }


@@ -277,9 +276,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
    private void onConnectionReady(Connection connection) {
    private void onConnectionReady(Connection connection) {
        if (mActiveConnection == connection) {
        if (mActiveConnection == connection) {
            mConnectionReady = true;
            mConnectionReady = true;
            if (mPendingDiscoveryPreference != null) {
            if (mLastDiscoveryPreference != null) {
                updateDiscoveryPreference(mPendingDiscoveryPreference);
                updateDiscoveryPreference(mLastDiscoveryPreference);
                mPendingDiscoveryPreference = null;
            }
            }
        }
        }
    }
    }