Skip to content

Commit

Permalink
[MediaController] Add new API to check Response request (Samsung#5672)
Browse files Browse the repository at this point in the history
* [MediaController] Add new API to check Response request
  • Loading branch information
hsgwon authored Jan 2, 2024
1 parent 31a0c37 commit cac41f2
Showing 1 changed file with 39 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -59,10 +60,33 @@ internal void SetRequestInformation(string receiverId)
/// <param name="requestId">The request Id for each command.</param>
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.");
}
}

/// <summary>
/// Indicates if the response is needed.
/// </summary>
/// <remarks>If false, the receiver should not respond to the received command.</remarks>
/// <since_tizen> 12 </since_tizen>
public bool IsResponseNeeded => NeedToResponse;

/// <summary>
/// Indicates if the response is needed.
/// </summary>
/// <remarks>
/// This internal API is retained for backward compatibility but is not recommended for new development.
/// Please use <see cref="IsResponseNeeded"/> instead.<br/>
/// If false, the receiver should not respond to the received command.
/// </remarks>
[EditorBrowsable(EditorBrowsableState.Never)]
public bool NeedToResponse => _requestId != null;

/// <summary>
/// Requests command to server.
/// </summary>
Expand All @@ -83,13 +107,18 @@ internal void SetResponseInformation(string receiverId, string requestId)
protected virtual void OnResponseCompleted() { }

/// <summary>
/// Responses command to the client.
/// Responds to the clients command.
/// </summary>
/// <param name="serverHandle">The server handle.</param>
/// <param name="result">The result of each command.</param>
/// <param name="bundle">The extra data.</param>
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)
Expand All @@ -114,13 +143,18 @@ internal void Response(IntPtr serverHandle, int result, Bundle bundle)
}

/// <summary>
/// Responses command to the server.
/// Responds to the clients command.
/// </summary>
/// <param name="clientHandle">The client handle.</param>
/// <param name="result">The result of each command.</param>
/// <param name="bundle">The extra data.</param>
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)
Expand Down Expand Up @@ -645,7 +679,7 @@ public SearchCommand(MediaControlSearchCondition condition)
NativeClient.CreateSearchHandle(out _searchHandle).ThrowIfError("Failed to create search handle.");

try
{
{
if (condition.Bundle != null)
{
NativeClient.SetSearchConditionBundle(_searchHandle, condition.ContentType, condition.Category,
Expand Down

0 comments on commit cac41f2

Please sign in to comment.