diff --git a/src/Tizen.Multimedia.Camera/Camera/Camera.cs b/src/Tizen.Multimedia.Camera/Camera/Camera.cs index 1e73a181a45..ac513744989 100644 --- a/src/Tizen.Multimedia.Camera/Camera/Camera.cs +++ b/src/Tizen.Multimedia.Camera/Camera/Camera.cs @@ -215,20 +215,33 @@ internal void ValidateNotDisposed() } #endregion Dispose support - internal void ValidateState(params CameraState[] required) + internal void ValidateState(CameraState required) { ValidateNotDisposed(); - Debug.Assert(required.Length > 0); + var curState = _state; + if (curState != required) + { + ThrowInvalidState(curState, required); + } + } + + internal void ValidateState(CameraState required1, CameraState required2) + { + ValidateNotDisposed(); var curState = _state; - if (!required.Contains(curState)) + if (curState != required1 && curState != required2) { - throw new InvalidOperationException($"The camera is not in a valid state. " + - $"Current State : { curState }, Valid State : { string.Join(", ", required) }."); + ThrowInvalidState(curState, required1, required2); } } + [global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + private static void ThrowInvalidState(CameraState curState, params CameraState[] required) => + throw new InvalidOperationException($"The camera is not in a valid state. " + + $"Current State : { curState }, Valid State : { string.Join(", ", required) }."); + internal void SetState(CameraState state) { _state = state;