From: Haesu Gwon Date: Thu, 2 Nov 2023 05:28:49 +0000 (+0900) Subject: [MediaController] Fix CustomCommand crash issue (#5671) X-Git-Tag: submit/tizen_8.0/20231106.124429~1^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16128339631ef8fffe20a6e12358f67aff8fdda3;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [MediaController] Fix CustomCommand crash issue (#5671) --- diff --git a/src/Tizen.Multimedia.Remoting/MediaController/MediaControlCommand.cs b/src/Tizen.Multimedia.Remoting/MediaController/MediaControlCommand.cs index 39ec1528b..b97198529 100644 --- a/src/Tizen.Multimedia.Remoting/MediaController/MediaControlCommand.cs +++ b/src/Tizen.Multimedia.Remoting/MediaController/MediaControlCommand.cs @@ -17,6 +17,7 @@ using Tizen.Applications; using System; using System.Collections.Generic; +using System.ComponentModel; using NativeClient = Interop.MediaControllerClient; using NativeServer = Interop.MediaControllerServer; using NativeClientHandle = Interop.MediaControllerClientHandle; @@ -59,10 +60,22 @@ namespace Tizen.Multimedia.Remoting /// The request Id for each command. internal void SetResponseInformation(string receiverId, string requestId) { - ReceiverId = receiverId ?? throw new ArgumentNullException(nameof(receiverId)); ; - _requestId = requestId ?? throw new ArgumentNullException(nameof(requestId)); ; + ReceiverId = receiverId ?? throw new ArgumentNullException(nameof(receiverId)); + _requestId = requestId; + + if (_requestId == null) + { + Log.Info(GetType().FullName, "request_id is null. Response() should not be called."); + } } + /// + /// Gets the status of response. + /// + /// If false, the receiver should not response for the received command. + [EditorBrowsable(EditorBrowsableState.Never)] + public bool NeedToResponse => _requestId != null; + /// /// Requests command to server. /// @@ -90,6 +103,11 @@ namespace Tizen.Multimedia.Remoting /// The extra data. internal void Response(IntPtr serverHandle, int result, Bundle bundle) { + if (NeedToResponse == false) + { + throw new InvalidOperationException("The receiver should not call this, if NeedToResponse is false."); + } + try { if (bundle != null) @@ -121,6 +139,11 @@ namespace Tizen.Multimedia.Remoting /// The extra data. internal void Response(NativeClientHandle clientHandle, int result, Bundle bundle) { + if (NeedToResponse == false) + { + throw new InvalidOperationException("The receiver should not call this, if NeedToResponse is false."); + } + try { if (bundle != null) @@ -645,7 +668,7 @@ namespace Tizen.Multimedia.Remoting NativeClient.CreateSearchHandle(out _searchHandle).ThrowIfError("Failed to create search handle."); try - { + { if (condition.Bundle != null) { NativeClient.SetSearchConditionBundle(_searchHandle, condition.ContentType, condition.Category,