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

Commit 2db44c58 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "Update IRemoteControlDisplay when it registers."

parents 3b21427b db8a3616
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -3084,7 +3084,7 @@ public class AudioService extends IAudioService.Stub {
                mRcDisplay.setCurrentClientId(
                        newClientGeneration, newClientEventReceiver, clearing);
            } catch (RemoteException e) {
                Log.e(TAG, "Dead display in onRcDisplayUpdate() "+e);
                Log.e(TAG, "Dead display in setNewRcClientOnDisplays_syncRcsCurrc() "+e);
                // if we had a display before, stop monitoring its death
                rcDisplay_stopDeathMonitor_syncRcStack();
                mRcDisplay = null;
@@ -3103,7 +3103,7 @@ public class AudioService extends IAudioService.Stub {
                try {
                    se.mRcClient.setCurrentClientGenerationId(newClientGeneration);
                } catch (RemoteException e) {
                    Log.w(TAG, "Dead client in onRcDisplayUpdate()"+e);
                    Log.w(TAG, "Dead client in setNewRcClientGenerationOnClients_syncRcsCurrc()"+e);
                    stackIterator.remove();
                    se.unlinkToRcClientDeath();
                }
@@ -3160,7 +3160,7 @@ public class AudioService extends IAudioService.Stub {
                            rcse.mReceiverComponent /*event receiver*/,
                            false /*clearing*/);

                    // ask the current client that it needs to send info
                    // tell the current client that it needs to send info
                    try {
                        mCurrentRcClient.onInformationRequested(mCurrentRcClientGen,
                                flags, mArtworkExpectedWidth, mArtworkExpectedHeight);
@@ -3457,6 +3457,21 @@ public class AudioService extends IAudioService.Stub {
                    }
                }
            }

            // we have a new display, tell the current client that it needs to send info
            // (following lock order: mRCStack then mCurrentRcLock)
            synchronized(mCurrentRcLock) {
                if (mCurrentRcClient != null) {
                    // tell the current client that it needs to send info
                    try {
                        mCurrentRcClient.onInformationRequested(mCurrentRcClientGen,
                                RC_INFO_ALL, mArtworkExpectedWidth, mArtworkExpectedHeight);
                    } catch (RemoteException e) {
                        Log.e(TAG, "Current valid remote client is dead: "+e);
                        mCurrentRcClient = null;
                    }
                }
            }
        }
    }