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

Commit 4d03d22a authored by Grzegorz Kołodziejczyk's avatar Grzegorz Kołodziejczyk
Browse files

broadcast: Callback with error if broadcast start will time out

If broadcast start will time out, a callback will be called to inform
all subscribers.

Tag: #bug
Bug: 307703030
Bug: 308171251
Test: atest LeAudioServiceTest
Change-Id: I95fb21525423f02370e104f2f14acb7da7675303
parent 3ade1f68
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1092,7 +1092,7 @@ public class LeAudioService extends ProfileService {
        if (DBG) Log.d(TAG, "startBroadcast");

        /* Start timeout to recover from stucked/error start Broadcast operation */
        mDialingOutTimeoutEvent = new DialingOutTimeoutEvent();
        mDialingOutTimeoutEvent = new DialingOutTimeoutEvent(broadcastId);
        mHandler.postDelayed(mDialingOutTimeoutEvent, DIALING_OUT_TIMEOUT_MS);

        mLeAudioBroadcasterNativeInterface.startBroadcast(broadcastId);
@@ -4323,9 +4323,15 @@ public class LeAudioService extends ProfileService {
    }

    class DialingOutTimeoutEvent implements Runnable {
        Integer mBroadcastId;

        DialingOutTimeoutEvent(Integer broadcastId) {
            mBroadcastId = broadcastId;
        }

        @Override
        public void run() {
            Log.w(TAG, "Failed to start Broadcast in time");
            Log.w(TAG, "Failed to start Broadcast in time: " + mBroadcastId);

            mDialingOutTimeoutEvent = null;

@@ -4337,6 +4343,8 @@ public class LeAudioService extends ProfileService {
            if (mActiveBroadcastAudioDevice != null) {
                updateBroadcastActiveDevice(null, mActiveBroadcastAudioDevice, false);
            }

            notifyBroadcastStartFailed(mBroadcastId, BluetoothStatusCodes.ERROR_TIMEOUT);
        }
    }