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

Commit b1876887 authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Implement SystemMediaRoute2Provider2#release

Releases system media routing (aka mirroring) resources associated with
the given session. This is relevant for the "Stop Casting" button on the
Output Switcher.

Bug: b/396396416
Test: CtsMediaRouterTestCases
Flag: com.android.media.flags.enable_mirroring_in_media_router_2
Change-Id: I69dc6f4f316aa3b3841e7f6b8f5ddce5e7c2643b
parent 25c8e167
Loading
Loading
Loading
Loading
+21 −0
Original line number Original line Diff line number Diff line
@@ -315,6 +315,27 @@ import java.util.stream.Stream;
        notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_ROUTE_NOT_AVAILABLE);
        notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_ROUTE_NOT_AVAILABLE);
    }
    }


    @Override
    public void releaseSession(long requestId, String sessionOriginalId) {
        if (SYSTEM_SESSION_ID.equals(sessionOriginalId)) {
            super.releaseSession(requestId, sessionOriginalId);
            return;
        }
        synchronized (mLock) {
            var sessionRecord = mSessionOriginalIdToSessionRecord.get(sessionOriginalId);
            if (sessionRecord != null) {
                sessionRecord.removeSelfFromSessionMaps();
                var proxyRecord = sessionRecord.getProxyRecord();
                if (proxyRecord != null) {
                    proxyRecord.releaseSession(requestId, sessionRecord.getServiceSessionId());
                }
                updateSessionInfo();
                return;
            }
        }
        notifyRequestFailed(requestId, MediaRoute2ProviderService.REASON_REJECTED);
    }

    /**
    /**
     * Returns the uid that corresponds to the given name and user handle, or {@link
     * Returns the uid that corresponds to the given name and user handle, or {@link
     * Process#INVALID_UID} if a uid couldn't be found.
     * Process#INVALID_UID} if a uid couldn't be found.